@goldstack/template-hetzner-vps-cli 0.1.15 → 0.1.17
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/src/sshDeploy.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.sshDeploy = exports.build = void 0;
|
|
4
|
-
const
|
|
4
|
+
const utils_log_1 = require("@goldstack/utils-log");
|
|
5
5
|
const utils_sh_1 = require("@goldstack/utils-sh");
|
|
6
6
|
const fs_1 = require("fs");
|
|
7
7
|
const promises_1 = require("fs/promises");
|
|
@@ -37,12 +37,12 @@ const build = async (deployment) => {
|
|
|
37
37
|
for (const [key, value] of Object.entries(deploymentCredentials)) {
|
|
38
38
|
const secretFilePath = (0, path_1.join)(secretsStagingDir, `${key}.txt`);
|
|
39
39
|
(0, fs_1.writeFileSync)(secretFilePath, value);
|
|
40
|
-
(0,
|
|
40
|
+
(0, utils_log_1.info)(`Extracted secret for key: ${key}`);
|
|
41
41
|
}
|
|
42
42
|
}
|
|
43
43
|
}
|
|
44
44
|
// Create the zip file
|
|
45
|
-
(0,
|
|
45
|
+
(0, utils_log_1.info)(`Creating zip from ${stagingDir}...`);
|
|
46
46
|
await (0, utils_sh_1.zip)({
|
|
47
47
|
directory: stagingDir,
|
|
48
48
|
target: zipPath,
|
|
@@ -51,14 +51,14 @@ const build = async (deployment) => {
|
|
|
51
51
|
const stats = await (0, promises_1.stat)(zipPath);
|
|
52
52
|
const fileSizeInBytes = stats.size;
|
|
53
53
|
const fileSizeInMegabytes = (fileSizeInBytes / 1024).toFixed(2);
|
|
54
|
-
(0,
|
|
55
|
-
(0,
|
|
54
|
+
(0, utils_log_1.info)(`Zip file size: ${fileSizeInMegabytes} kB`);
|
|
55
|
+
(0, utils_log_1.info)('Build completed successfully.');
|
|
56
56
|
return {
|
|
57
57
|
zipPath,
|
|
58
58
|
};
|
|
59
59
|
}
|
|
60
60
|
catch (error) {
|
|
61
|
-
|
|
61
|
+
error(`Error during build: ${error}`);
|
|
62
62
|
throw error;
|
|
63
63
|
}
|
|
64
64
|
};
|
|
@@ -79,7 +79,7 @@ const sshDeploy = async (deployment) => {
|
|
|
79
79
|
const deploymentsInfo = JSON.parse((0, utils_sh_1.read)('src/state/deployments.json'));
|
|
80
80
|
const deploymentState = deploymentsInfo.find((e) => e.name === deployment.name);
|
|
81
81
|
if (!deploymentState) {
|
|
82
|
-
(0,
|
|
82
|
+
(0, utils_log_1.error)('Cannot build ' +
|
|
83
83
|
deployment.name +
|
|
84
84
|
' since infrastructure not provisioned yet.');
|
|
85
85
|
throw new Error(`No deployment state found for ${deployment.name}`);
|
|
@@ -88,15 +88,15 @@ const sshDeploy = async (deployment) => {
|
|
|
88
88
|
// Ensure build was completed separately and get the zip path and host
|
|
89
89
|
const { zipPath } = await (0, exports.build)(deployment);
|
|
90
90
|
// Step 2: Upload the zip file via SCP
|
|
91
|
-
(0,
|
|
91
|
+
(0, utils_log_1.info)('Uploading zip file...');
|
|
92
92
|
scpUpload(zipPath, '/home/goldstack', host);
|
|
93
93
|
// Step 5: Run deploy.sh to stop the app, unzip the file, unpack secrets, and start the app
|
|
94
|
-
(0,
|
|
94
|
+
(0, utils_log_1.info)('Running deploy.sh...');
|
|
95
95
|
sshExec(host, 'bash /home/goldstack/deploy.sh');
|
|
96
|
-
(0,
|
|
96
|
+
(0, utils_log_1.info)('Deployment completed successfully.');
|
|
97
97
|
}
|
|
98
98
|
catch (error) {
|
|
99
|
-
|
|
99
|
+
error(`Error during deployment: ${error}`);
|
|
100
100
|
throw error;
|
|
101
101
|
}
|
|
102
102
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sshDeploy.js","sourceRoot":"","sources":["../../src/sshDeploy.ts"],"names":[],"mappings":";;;AACA,
|
|
1
|
+
{"version":3,"file":"sshDeploy.js","sourceRoot":"","sources":["../../src/sshDeploy.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,7 +11,7 @@ const utils_terraform_aws_1 = require("@goldstack/utils-terraform-aws");
|
|
|
11
11
|
const utils_terraform_hetzner_1 = require("@goldstack/utils-terraform-hetzner");
|
|
12
12
|
const utils_package_config_1 = require("@goldstack/utils-package-config");
|
|
13
13
|
const yargs_1 = __importDefault(require("yargs"));
|
|
14
|
-
const
|
|
14
|
+
const utils_log_1 = require("@goldstack/utils-log");
|
|
15
15
|
const sshDeploy_1 = require("./sshDeploy");
|
|
16
16
|
const buildZip = async () => {
|
|
17
17
|
const args = process.argv.slice(2); // Skip the first two default args (node and script path)
|
|
@@ -39,7 +39,7 @@ const run = async (args) => {
|
|
|
39
39
|
const command = argv._[0];
|
|
40
40
|
const [, , , ...opArgs] = args;
|
|
41
41
|
if (command === 'deploy') {
|
|
42
|
-
(0,
|
|
42
|
+
(0, utils_log_1.info)('Starting deployment to Hetzner VPS.');
|
|
43
43
|
const deployment = packageConfig.getDeployment(opArgs[0]);
|
|
44
44
|
await (0, sshDeploy_1.build)(deployment);
|
|
45
45
|
await (0, sshDeploy_1.sshDeploy)(deployment);
|
|
@@ -48,7 +48,7 @@ const run = async (args) => {
|
|
|
48
48
|
if (command === 'infra') {
|
|
49
49
|
const deployment = packageConfig.getDeployment(opArgs[1]);
|
|
50
50
|
const infrastructureOp = opArgs[0];
|
|
51
|
-
(0,
|
|
51
|
+
(0, utils_log_1.info)(`Running infrastructure operation ${infrastructureOp} for ${deployment.name}`);
|
|
52
52
|
// use remote managed state from Terraform
|
|
53
53
|
await (0, utils_terraform_aws_1.terraformAwsCli)(['create-state', opArgs[1]]);
|
|
54
54
|
if (infrastructureOp === 'destroy-state') {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"templateHetznerVPSCli.js","sourceRoot":"","sources":["../../src/templateHetznerVPSCli.ts"],"names":[],"mappings":";;;;;;AAAA,4DAAyE;AACzE,oDAA+C;AAE/C,gEAA2D;AAC3D,wEAGwC;AACxC,gFAAyE;AACzE,0EAAgE;AAKhE,kDAA0B;AAE1B,
|
|
1
|
+
{"version":3,"file":"templateHetznerVPSCli.js","sourceRoot":"","sources":["../../src/templateHetznerVPSCli.ts"],"names":[],"mappings":";;;;;;AAAA,4DAAyE;AACzE,oDAA+C;AAE/C,gEAA2D;AAC3D,wEAGwC;AACxC,gFAAyE;AACzE,0EAAgE;AAKhE,kDAA0B;AAE1B,oDAA4C;AAC5C,2CAA+C;AAExC,MAAM,QAAQ,GAAG,KAAK,IAAmB,EAAE;IAChD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,yDAAyD;IAC7F,MAAM,cAAc,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,iEAAiE;IAEjG,MAAM,aAAa,GAAG,IAAI,oCAAa,CAGrC;QACA,WAAW,EAAE,IAAI;KAClB,CAAC,CAAC;IACH,MAAM,UAAU,GAAG,aAAa,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;IAC/D,MAAM,IAAA,iBAAK,EAAC,UAAU,CAAC,CAAC;AAC1B,CAAC,CAAC;AAZW,QAAA,QAAQ,YAYnB;AAEK,MAAM,GAAG,GAAG,KAAK,EAAE,IAAc,EAAiB,EAAE;IACzD,MAAM,IAAA,mBAAO,EAAC,KAAK,IAAI,EAAE;QACvB,MAAM,IAAI,GAAG,MAAM,IAAA,wBAAQ,EAAC;YAC1B,KAAK,EAAL,eAAK;YACL,cAAc,EAAE,IAAA,mCAAmB,GAAE;YACrC,aAAa,EAAE,IAAA,+BAAa,GAAE;SAC/B,CAAC;aACC,IAAI,EAAE;aACN,KAAK,EAAE,CAAC;QAEX,MAAM,aAAa,GAAG,IAAI,oCAAa,CAGrC;YACA,WAAW,EAAE,IAAI;SAClB,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,aAAa,CAAC,SAAS,EAAE,CAAC;QACzC,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1B,MAAM,CAAC,EAAE,AAAD,EAAG,AAAD,EAAG,GAAG,MAAM,CAAC,GAAG,IAAI,CAAC;QAE/B,IAAI,OAAO,KAAK,QAAQ,EAAE;YACxB,IAAA,gBAAI,EAAC,qCAAqC,CAAC,CAAC;YAC5C,MAAM,UAAU,GAAG,aAAa,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YAC1D,MAAM,IAAA,iBAAK,EAAC,UAAU,CAAC,CAAC;YACxB,MAAM,IAAA,qBAAS,EAAC,UAAU,CAAC,CAAC;YAC5B,OAAO;SACR;QAED,IAAI,OAAO,KAAK,OAAO,EAAE;YACvB,MAAM,UAAU,GAAG,aAAa,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YAC1D,MAAM,gBAAgB,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YACnC,IAAA,gBAAI,EACF,oCAAoC,gBAAgB,QAAQ,UAAU,CAAC,IAAI,EAAE,CAC9E,CAAC;YACF,0CAA0C;YAC1C,MAAM,IAAA,qCAAe,EAAC,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAEnD,IAAI,gBAAgB,KAAK,eAAe,EAAE;gBACxC,MAAM,IAAA,qCAAe,EAAC,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACpD,OAAO;aACR;YAED,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,IAAA,8CAAwB,EAAC,MAAM,CAAC,CAAC;YAC/D,MAAM,IAAA,6CAAmB,EAAC,MAAM,EAAE,WAAW,CAAC,CAAC;YAE/C,OAAO;SACR;QAED,MAAM,IAAI,KAAK,CAAC,mBAAmB,GAAG,OAAO,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAlDW,QAAA,GAAG,OAkDd"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@goldstack/template-hetzner-vps-cli",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.17",
|
|
4
4
|
"description": "Utilities for packages that allows provisioning a Hetzner server with Docker",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"goldstack",
|
|
@@ -44,16 +44,17 @@
|
|
|
44
44
|
"@aws-sdk/client-iam": "^3.645.0",
|
|
45
45
|
"@aws-sdk/client-s3": "3.620.0",
|
|
46
46
|
"@aws-sdk/s3-request-presigner": "^3.645.0",
|
|
47
|
-
"@goldstack/infra-aws": "0.4.
|
|
48
|
-
"@goldstack/template-hetzner-vps": "0.1.
|
|
49
|
-
"@goldstack/utils-cli": "0.3.
|
|
50
|
-
"@goldstack/utils-
|
|
51
|
-
"@goldstack/utils-package
|
|
52
|
-
"@goldstack/utils-
|
|
53
|
-
"@goldstack/utils-
|
|
54
|
-
"@goldstack/utils-
|
|
55
|
-
"@goldstack/utils-terraform
|
|
56
|
-
"@goldstack/utils-terraform-
|
|
47
|
+
"@goldstack/infra-aws": "0.4.24",
|
|
48
|
+
"@goldstack/template-hetzner-vps": "0.1.15",
|
|
49
|
+
"@goldstack/utils-cli": "0.3.12",
|
|
50
|
+
"@goldstack/utils-log": "0.3.14",
|
|
51
|
+
"@goldstack/utils-package": "0.4.15",
|
|
52
|
+
"@goldstack/utils-package-config": "0.4.15",
|
|
53
|
+
"@goldstack/utils-s3-deployment": "0.5.26",
|
|
54
|
+
"@goldstack/utils-sh": "0.5.14",
|
|
55
|
+
"@goldstack/utils-terraform": "0.4.31",
|
|
56
|
+
"@goldstack/utils-terraform-aws": "0.4.34",
|
|
57
|
+
"@goldstack/utils-terraform-hetzner": "0.1.14",
|
|
57
58
|
"source-map-support": "^0.5.21",
|
|
58
59
|
"yargs": "^17.5.1"
|
|
59
60
|
},
|