anycloud 0.0.19 → 0.0.20
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.
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/dist/cli/commands/ssh.js
CHANGED
|
@@ -15,14 +15,17 @@ export function createSshCommand() {
|
|
|
15
15
|
return new Command('ssh')
|
|
16
16
|
.description('🔌 SSH into a deployment container')
|
|
17
17
|
.argument('[id]', 'Deployment ID (optional - will prompt to select if not provided)')
|
|
18
|
+
.option('--vm', 'SSH to VM only (skip docker exec into container)')
|
|
18
19
|
.addHelpText('after', `
|
|
19
20
|
Examples:
|
|
20
21
|
$ anycloud ssh
|
|
21
22
|
$ anycloud ssh job-abc123-def456
|
|
23
|
+
$ anycloud ssh --vm # SSH to VM directly (for debugging)
|
|
22
24
|
|
|
23
25
|
Opens an interactive shell inside the container running on the VM.
|
|
26
|
+
Use --vm to SSH directly to the VM without entering the container.
|
|
24
27
|
`)
|
|
25
|
-
.action(async (id) => {
|
|
28
|
+
.action(async (id, options) => {
|
|
26
29
|
try {
|
|
27
30
|
let deploymentId = id;
|
|
28
31
|
// Get GitHub token
|
|
@@ -53,7 +56,7 @@ Opens an interactive shell inside the container running on the VM.
|
|
|
53
56
|
const emoji = stateEmoji[deployment.state] || '❓';
|
|
54
57
|
return {
|
|
55
58
|
title: `${deployment.id} (${deployment.state})`,
|
|
56
|
-
value: deployment.id,
|
|
59
|
+
value: { id: deployment.id, state: deployment.state },
|
|
57
60
|
description: emoji,
|
|
58
61
|
};
|
|
59
62
|
}),
|
|
@@ -61,7 +64,28 @@ Opens an interactive shell inside the container running on the VM.
|
|
|
61
64
|
if (!selection.deployment) {
|
|
62
65
|
process.exit(0);
|
|
63
66
|
}
|
|
64
|
-
|
|
67
|
+
const selectedDeployment = selection.deployment;
|
|
68
|
+
// Check if deployment is in a state where SSH is not possible
|
|
69
|
+
if (selectedDeployment.state === 'provisioning') {
|
|
70
|
+
printError(`Deployment is still provisioning.\n` +
|
|
71
|
+
' Please wait for VMs to be ready before connecting via SSH.\n' +
|
|
72
|
+
' Use "anycloud status" to check deployment progress.');
|
|
73
|
+
process.exit(1);
|
|
74
|
+
}
|
|
75
|
+
// Block container SSH during starting (container may not exist yet)
|
|
76
|
+
if (selectedDeployment.state === 'starting' && !options?.vm) {
|
|
77
|
+
printError(`Deployment is still starting (container may not be ready).\n` +
|
|
78
|
+
' Use "anycloud ssh --vm" to SSH directly to the VM.\n' +
|
|
79
|
+
' Or wait for the deployment to be running.');
|
|
80
|
+
process.exit(1);
|
|
81
|
+
}
|
|
82
|
+
if (selectedDeployment.state === 'terminated' ||
|
|
83
|
+
selectedDeployment.state === 'terminating') {
|
|
84
|
+
printError(`Deployment is ${selectedDeployment.state}.\n` +
|
|
85
|
+
' Cannot SSH into a terminated deployment.');
|
|
86
|
+
process.exit(1);
|
|
87
|
+
}
|
|
88
|
+
deploymentId = selectedDeployment.id;
|
|
65
89
|
}
|
|
66
90
|
}
|
|
67
91
|
// Load SSH key for this deployment
|
|
@@ -107,10 +131,13 @@ Opens an interactive shell inside the container running on the VM.
|
|
|
107
131
|
// Write SSH key to temp file
|
|
108
132
|
const keyFile = join(tmpdir(), `anycloud-ssh-${deploymentId}-${Date.now()}`);
|
|
109
133
|
writeFileSync(keyFile, sshPrivateKey, { mode: 0o600 });
|
|
110
|
-
|
|
134
|
+
const vmOnly = options?.vm ?? false;
|
|
135
|
+
printInfo(vmOnly
|
|
136
|
+
? `Connecting to VM ${vmIp}...`
|
|
137
|
+
: `Connecting to container on ${vmIp}...`);
|
|
111
138
|
console.log('');
|
|
112
139
|
// Spawn SSH process
|
|
113
|
-
const
|
|
140
|
+
const sshArgs = [
|
|
114
141
|
'-i',
|
|
115
142
|
keyFile,
|
|
116
143
|
'-p',
|
|
@@ -123,8 +150,12 @@ Opens an interactive shell inside the container running on the VM.
|
|
|
123
150
|
'LogLevel=ERROR',
|
|
124
151
|
'-t',
|
|
125
152
|
`root@${vmIp}`,
|
|
126
|
-
|
|
127
|
-
|
|
153
|
+
];
|
|
154
|
+
// Add docker exec command unless --vm flag is set
|
|
155
|
+
if (!vmOnly) {
|
|
156
|
+
sshArgs.push(`docker exec -it anycloud-${deploymentId} bash`);
|
|
157
|
+
}
|
|
158
|
+
const sshProcess = spawn('ssh', sshArgs, { stdio: 'inherit' });
|
|
128
159
|
// Clean up key file when SSH exits
|
|
129
160
|
sshProcess.on('close', (code) => {
|
|
130
161
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ssh.js","sourceRoot":"","sources":["../../../src/cli/commands/ssh.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC;AAC5B,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EACL,mBAAmB,EACnB,eAAe,EACf,UAAU,GACX,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,4BAA4B,EAAE,MAAM,uBAAuB,CAAC;AACrE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAC1E,OAAO,EACL,gBAAgB,EAChB,cAAc,GACf,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,WAAW,MAAM,uBAAuB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAEtE,MAAM,UAAU,gBAAgB;IAC9B,OAAO,IAAI,OAAO,CAAC,KAAK,CAAC;SACtB,WAAW,CAAC,oCAAoC,CAAC;SACjD,QAAQ,CACP,MAAM,EACN,kEAAkE,CACnE;SACA,WAAW,CACV,OAAO,EACP
|
|
1
|
+
{"version":3,"file":"ssh.js","sourceRoot":"","sources":["../../../src/cli/commands/ssh.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "anycloud",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.20",
|
|
4
4
|
"description": "Deploy containerized jobs and servers to any cloud provider",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "UNLICENSED",
|
|
@@ -85,6 +85,8 @@
|
|
|
85
85
|
"uuid": "^11.0.5"
|
|
86
86
|
},
|
|
87
87
|
"devDependencies": {
|
|
88
|
+
"@types/better-sqlite3": "^7.6.12",
|
|
89
|
+
"better-sqlite3": "^11.7.0",
|
|
88
90
|
"@cloudflare/vitest-pool-workers": "^0.9.6",
|
|
89
91
|
"@octokit/types": "^6.13.0",
|
|
90
92
|
"@types/dockerode": "^3.3.0",
|