quicklify 1.2.0 → 1.2.1
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/README.md +3 -3
- package/README.tr.md +1 -1
- package/SECURITY.md +1 -1
- package/dist/commands/add.d.ts.map +1 -1
- package/dist/commands/add.js +7 -9
- package/dist/commands/add.js.map +1 -1
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +16 -30
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +14 -378
- package/dist/commands/init.js.map +1 -1
- package/dist/constants.d.ts +28 -0
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +32 -1
- package/dist/constants.js.map +1 -1
- package/dist/core/backup.d.ts +2 -2
- package/dist/core/backup.d.ts.map +1 -1
- package/dist/core/backup.js +25 -6
- package/dist/core/backup.js.map +1 -1
- package/dist/core/deploy.d.ts +4 -0
- package/dist/core/deploy.d.ts.map +1 -0
- package/dist/core/deploy.js +360 -0
- package/dist/core/deploy.js.map +1 -0
- package/dist/core/manage.d.ts.map +1 -1
- package/dist/core/manage.js +3 -3
- package/dist/core/manage.js.map +1 -1
- package/dist/core/provision.js +2 -2
- package/dist/core/provision.js.map +1 -1
- package/dist/core/tokens.d.ts.map +1 -1
- package/dist/core/tokens.js +5 -8
- package/dist/core/tokens.js.map +1 -1
- package/dist/mcp/tools/serverInfo.d.ts +2 -1
- package/dist/mcp/tools/serverInfo.d.ts.map +1 -1
- package/dist/mcp/tools/serverInfo.js +2 -1
- package/dist/mcp/tools/serverInfo.js.map +1 -1
- package/dist/mcp/tools/serverManage.d.ts.map +1 -1
- package/dist/mcp/tools/serverManage.js +2 -1
- package/dist/mcp/tools/serverManage.js.map +1 -1
- package/dist/mcp/tools/serverProvision.d.ts +2 -1
- package/dist/mcp/tools/serverProvision.d.ts.map +1 -1
- package/dist/mcp/tools/serverProvision.js +2 -1
- package/dist/mcp/tools/serverProvision.js.map +1 -1
- package/dist/providers/base.d.ts +7 -0
- package/dist/providers/base.d.ts.map +1 -1
- package/dist/providers/base.js +56 -1
- package/dist/providers/base.js.map +1 -1
- package/dist/providers/digitalocean.d.ts +1 -1
- package/dist/providers/digitalocean.d.ts.map +1 -1
- package/dist/providers/digitalocean.js +1 -9
- package/dist/providers/digitalocean.js.map +1 -1
- package/dist/providers/hetzner.d.ts +1 -1
- package/dist/providers/hetzner.d.ts.map +1 -1
- package/dist/providers/hetzner.js +1 -9
- package/dist/providers/hetzner.js.map +1 -1
- package/dist/providers/linode.d.ts +1 -1
- package/dist/providers/linode.d.ts.map +1 -1
- package/dist/providers/linode.js +1 -9
- package/dist/providers/linode.js.map +1 -1
- package/dist/providers/vultr.d.ts +1 -1
- package/dist/providers/vultr.d.ts.map +1 -1
- package/dist/providers/vultr.js +1 -9
- package/dist/providers/vultr.js.map +1 -1
- package/dist/utils/defaults.d.ts.map +1 -1
- package/dist/utils/defaults.js +3 -2
- package/dist/utils/defaults.js.map +1 -1
- package/dist/utils/prompts.d.ts.map +1 -1
- package/dist/utils/prompts.js +5 -6
- package/dist/utils/prompts.js.map +1 -1
- package/dist/utils/serverSelect.d.ts.map +1 -1
- package/dist/utils/serverSelect.js +2 -7
- package/dist/utils/serverSelect.js.map +1 -1
- package/dist/utils/yamlConfig.d.ts.map +1 -1
- package/dist/utils/yamlConfig.js +4 -3
- package/dist/utils/yamlConfig.js.map +1 -1
- package/package.json +4 -4
|
@@ -0,0 +1,360 @@
|
|
|
1
|
+
import { spawnSync } from "child_process";
|
|
2
|
+
import { getCoolifyCloudInit, getBareCloudInit } from "../utils/cloudInit.js";
|
|
3
|
+
import { logger, createSpinner } from "../utils/logger.js";
|
|
4
|
+
import { getErrorMessage, mapProviderError } from "../utils/errorMapper.js";
|
|
5
|
+
import { openBrowser } from "../utils/openBrowser.js";
|
|
6
|
+
import { assertValidIp, sanitizedEnv, sshExec } from "../utils/ssh.js";
|
|
7
|
+
import { findLocalSshKey, generateSshKey, getSshKeyName } from "../utils/sshKey.js";
|
|
8
|
+
import { saveServer } from "../utils/config.js";
|
|
9
|
+
import { waitForCoolify } from "../utils/healthCheck.js";
|
|
10
|
+
import { BACK_SIGNAL, getServerNameConfig, getLocationConfig, getServerTypeConfig, } from "../utils/prompts.js";
|
|
11
|
+
import { firewallSetup } from "../commands/firewall.js";
|
|
12
|
+
import { secureSetup } from "../commands/secure.js";
|
|
13
|
+
import { IP_WAIT, COOLIFY_MIN_WAIT } from "../constants.js";
|
|
14
|
+
export async function uploadSshKeyToProvider(provider) {
|
|
15
|
+
let publicKey = findLocalSshKey();
|
|
16
|
+
if (!publicKey) {
|
|
17
|
+
logger.info("No SSH key found. Generating one...");
|
|
18
|
+
publicKey = generateSshKey();
|
|
19
|
+
if (publicKey) {
|
|
20
|
+
logger.success("SSH key generated (~/.ssh/id_ed25519)");
|
|
21
|
+
}
|
|
22
|
+
else {
|
|
23
|
+
logger.warning("Could not generate SSH key — falling back to password auth");
|
|
24
|
+
logger.info("Server will require password change on first SSH login");
|
|
25
|
+
logger.warning("Run 'quicklify secure setup' after deployment to harden SSH access");
|
|
26
|
+
return [];
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
const spinner = createSpinner("Uploading SSH key to provider...");
|
|
30
|
+
spinner.start();
|
|
31
|
+
try {
|
|
32
|
+
const keyId = await provider.uploadSshKey(getSshKeyName(), publicKey);
|
|
33
|
+
spinner.succeed("SSH key uploaded — password-free access enabled");
|
|
34
|
+
return [keyId];
|
|
35
|
+
}
|
|
36
|
+
catch (error) {
|
|
37
|
+
spinner.fail("SSH key upload failed — falling back to password auth");
|
|
38
|
+
logger.warning(getErrorMessage(error));
|
|
39
|
+
logger.warning("Run 'quicklify secure setup' after deployment to harden SSH access");
|
|
40
|
+
return [];
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
export async function deployServer(providerChoice, providerWithToken, region, serverSize, serverName, fullSetup, noOpen, mode) {
|
|
44
|
+
try {
|
|
45
|
+
// Upload SSH key before creating server
|
|
46
|
+
const sshKeyIds = await uploadSshKeyToProvider(providerWithToken);
|
|
47
|
+
const isBare = mode === "bare";
|
|
48
|
+
const cloudInit = isBare ? getBareCloudInit(serverName) : getCoolifyCloudInit(serverName);
|
|
49
|
+
let server;
|
|
50
|
+
let retries = 0;
|
|
51
|
+
const maxRetries = 2;
|
|
52
|
+
const failedTypes = [];
|
|
53
|
+
const failedLocations = [];
|
|
54
|
+
while (!server && retries <= maxRetries) {
|
|
55
|
+
const serverSpinner = createSpinner("Creating VPS server...");
|
|
56
|
+
serverSpinner.start();
|
|
57
|
+
try {
|
|
58
|
+
server = await providerWithToken.createServer({
|
|
59
|
+
name: serverName,
|
|
60
|
+
region,
|
|
61
|
+
size: serverSize,
|
|
62
|
+
cloudInit,
|
|
63
|
+
sshKeyIds,
|
|
64
|
+
});
|
|
65
|
+
serverSpinner.succeed(`Server created (ID: ${server.id})`);
|
|
66
|
+
}
|
|
67
|
+
catch (createError) {
|
|
68
|
+
serverSpinner.fail("Server creation failed");
|
|
69
|
+
const errorMsg = getErrorMessage(createError);
|
|
70
|
+
if (errorMsg.includes("already") && errorMsg.includes("used")) {
|
|
71
|
+
logger.warning(`Server name "${serverName}" is already in use`);
|
|
72
|
+
logger.info("Please choose a different name:");
|
|
73
|
+
let newName = BACK_SIGNAL;
|
|
74
|
+
while (newName === BACK_SIGNAL) {
|
|
75
|
+
newName = await getServerNameConfig();
|
|
76
|
+
}
|
|
77
|
+
serverName = newName;
|
|
78
|
+
retries++;
|
|
79
|
+
}
|
|
80
|
+
else if (errorMsg.includes("location disabled")) {
|
|
81
|
+
failedLocations.push(region);
|
|
82
|
+
logger.warning(`Location "${region}" is currently disabled for new servers`);
|
|
83
|
+
logger.info("Please select a different region and server type:");
|
|
84
|
+
let pickedSize = false;
|
|
85
|
+
while (!pickedSize) {
|
|
86
|
+
let newRegion = BACK_SIGNAL;
|
|
87
|
+
while (newRegion === BACK_SIGNAL) {
|
|
88
|
+
newRegion = await getLocationConfig(providerWithToken, failedLocations);
|
|
89
|
+
}
|
|
90
|
+
region = newRegion;
|
|
91
|
+
const newSize = await getServerTypeConfig(providerWithToken, region, [], mode);
|
|
92
|
+
if (newSize === BACK_SIGNAL)
|
|
93
|
+
continue;
|
|
94
|
+
serverSize = newSize;
|
|
95
|
+
pickedSize = true;
|
|
96
|
+
}
|
|
97
|
+
retries++;
|
|
98
|
+
}
|
|
99
|
+
else if (errorMsg.includes("unavailable") ||
|
|
100
|
+
errorMsg.includes("not available") ||
|
|
101
|
+
errorMsg.includes("sold out") ||
|
|
102
|
+
errorMsg.includes("unsupported")) {
|
|
103
|
+
if (retries < maxRetries) {
|
|
104
|
+
failedTypes.push(serverSize);
|
|
105
|
+
logger.warning(`Server type "${serverSize}" is not available in this location`);
|
|
106
|
+
logger.info("Please select a different server type:");
|
|
107
|
+
let newSize = BACK_SIGNAL;
|
|
108
|
+
while (newSize === BACK_SIGNAL) {
|
|
109
|
+
newSize = await getServerTypeConfig(providerWithToken, region, failedTypes, mode);
|
|
110
|
+
}
|
|
111
|
+
serverSize = newSize;
|
|
112
|
+
retries++;
|
|
113
|
+
}
|
|
114
|
+
else {
|
|
115
|
+
throw createError;
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
else {
|
|
119
|
+
throw createError;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
/* istanbul ignore next */
|
|
124
|
+
if (!server) {
|
|
125
|
+
logger.error("Could not create server after multiple attempts");
|
|
126
|
+
process.exit(1);
|
|
127
|
+
}
|
|
128
|
+
// Wait for server to be running
|
|
129
|
+
const statusSpinner = createSpinner("Waiting for server to boot...");
|
|
130
|
+
statusSpinner.start();
|
|
131
|
+
let status = await providerWithToken.getServerStatus(server.id);
|
|
132
|
+
let attempts = 0;
|
|
133
|
+
const maxAttempts = 30;
|
|
134
|
+
while (status !== "running" && attempts < maxAttempts) {
|
|
135
|
+
await new Promise((resolve) => setTimeout(resolve, 1000));
|
|
136
|
+
status = await providerWithToken.getServerStatus(server.id);
|
|
137
|
+
attempts++;
|
|
138
|
+
}
|
|
139
|
+
if (status !== "running") {
|
|
140
|
+
statusSpinner.fail("Server failed to start");
|
|
141
|
+
logger.error("Please check your cloud provider dashboard");
|
|
142
|
+
return;
|
|
143
|
+
}
|
|
144
|
+
statusSpinner.succeed("Server is running");
|
|
145
|
+
// Refresh server details to get final IP (DO/Vultr/Linode assign IP after boot)
|
|
146
|
+
if (server.ip === "pending" || server.ip === "0.0.0.0" || server.ip === "") {
|
|
147
|
+
const ipConfig = IP_WAIT[providerChoice] || { attempts: 10, interval: 3000 };
|
|
148
|
+
const ipSpinner = createSpinner("Waiting for IP address assignment...");
|
|
149
|
+
ipSpinner.start();
|
|
150
|
+
let refreshAttempts = 0;
|
|
151
|
+
while (refreshAttempts < ipConfig.attempts) {
|
|
152
|
+
const details = await providerWithToken.getServerDetails(server.id);
|
|
153
|
+
if (details.ip && details.ip !== "0.0.0.0" && details.ip !== "pending" && details.ip !== "") {
|
|
154
|
+
try {
|
|
155
|
+
assertValidIp(details.ip);
|
|
156
|
+
server.ip = details.ip;
|
|
157
|
+
break;
|
|
158
|
+
}
|
|
159
|
+
catch {
|
|
160
|
+
// Invalid IP format from API — skip and retry
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
refreshAttempts++;
|
|
164
|
+
await new Promise((resolve) => setTimeout(resolve, ipConfig.interval));
|
|
165
|
+
}
|
|
166
|
+
if (server.ip === "pending" || server.ip === "0.0.0.0" || server.ip === "") {
|
|
167
|
+
ipSpinner.fail("Could not obtain server IP address");
|
|
168
|
+
logger.warning("The server was created but IP assignment timed out.");
|
|
169
|
+
logger.info(`Check IP later with: quicklify status ${server.id}`);
|
|
170
|
+
}
|
|
171
|
+
else {
|
|
172
|
+
ipSpinner.succeed(`IP address assigned: ${server.ip}`);
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
// Health check polling instead of blind wait (skip if no valid IP or bare mode)
|
|
176
|
+
const hasValidIp = server.ip !== "0.0.0.0" && server.ip !== "pending" && server.ip !== "";
|
|
177
|
+
const minWait = COOLIFY_MIN_WAIT[providerChoice] || 60000;
|
|
178
|
+
const ready = !isBare && hasValidIp ? await waitForCoolify(server.ip, minWait) : false;
|
|
179
|
+
// Save server record to config
|
|
180
|
+
saveServer({
|
|
181
|
+
id: server.id,
|
|
182
|
+
name: serverName,
|
|
183
|
+
provider: providerChoice,
|
|
184
|
+
ip: server.ip,
|
|
185
|
+
region,
|
|
186
|
+
size: serverSize,
|
|
187
|
+
createdAt: new Date().toISOString(),
|
|
188
|
+
...(isBare ? { mode: "bare" } : { mode: "coolify" }),
|
|
189
|
+
});
|
|
190
|
+
// Bare mode: cloud-init wait + optional full setup + show SSH info
|
|
191
|
+
if (isBare) {
|
|
192
|
+
// Wait for SSH + cloud-init to finish (BUG-5)
|
|
193
|
+
if (hasValidIp) {
|
|
194
|
+
const cloudInitSpinner = createSpinner("Waiting for server to accept SSH...");
|
|
195
|
+
cloudInitSpinner.start();
|
|
196
|
+
// Step 1: Wait for SSH to become available (retry up to 60 attempts, 5s apart = 5 min max)
|
|
197
|
+
let sshReady = false;
|
|
198
|
+
for (let attempt = 1; attempt <= 60; attempt++) {
|
|
199
|
+
try {
|
|
200
|
+
await sshExec(server.ip, "echo ok");
|
|
201
|
+
sshReady = true;
|
|
202
|
+
break;
|
|
203
|
+
}
|
|
204
|
+
catch {
|
|
205
|
+
cloudInitSpinner.text = `Waiting for server to accept SSH... (attempt ${attempt}/60)`;
|
|
206
|
+
await new Promise((r) => setTimeout(r, 5000));
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
if (sshReady) {
|
|
210
|
+
// Step 2: Wait for cloud-init to finish
|
|
211
|
+
cloudInitSpinner.text = "SSH ready — waiting for cloud-init to finish...";
|
|
212
|
+
try {
|
|
213
|
+
const ciResult = await sshExec(server.ip, "cloud-init status --wait");
|
|
214
|
+
if (ciResult.code === 0) {
|
|
215
|
+
cloudInitSpinner.succeed("Cloud-init completed");
|
|
216
|
+
}
|
|
217
|
+
else {
|
|
218
|
+
cloudInitSpinner.warn("Cloud-init may not have finished — continuing anyway");
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
catch {
|
|
222
|
+
cloudInitSpinner.warn("Could not check cloud-init status — continuing anyway");
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
else {
|
|
226
|
+
cloudInitSpinner.warn("SSH not available after 5 min — continuing anyway");
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
// Full setup: firewall + secure (BUG-1)
|
|
230
|
+
if (fullSetup && hasValidIp) {
|
|
231
|
+
try {
|
|
232
|
+
assertValidIp(server.ip); // Defense-in-depth: IP validated before ssh-keygen
|
|
233
|
+
spawnSync("ssh-keygen", ["-R", server.ip], { stdio: "ignore", env: sanitizedEnv() });
|
|
234
|
+
}
|
|
235
|
+
catch {
|
|
236
|
+
// ssh-keygen not available or no entry — harmless
|
|
237
|
+
}
|
|
238
|
+
logger.title("Running full setup (firewall + security)...");
|
|
239
|
+
try {
|
|
240
|
+
await firewallSetup(server.ip, serverName, false, true);
|
|
241
|
+
}
|
|
242
|
+
catch (error) {
|
|
243
|
+
logger.warning(`Firewall setup failed: ${getErrorMessage(error)}`);
|
|
244
|
+
}
|
|
245
|
+
try {
|
|
246
|
+
await secureSetup(server.ip, serverName, undefined, false, true);
|
|
247
|
+
}
|
|
248
|
+
catch (error) {
|
|
249
|
+
logger.warning(`Security setup failed: ${getErrorMessage(error)}`);
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
else if (fullSetup && !hasValidIp) {
|
|
253
|
+
logger.warning("Skipping full setup: server IP not available.");
|
|
254
|
+
}
|
|
255
|
+
// Show bare server info
|
|
256
|
+
logger.title("Bare Server Ready!");
|
|
257
|
+
console.log();
|
|
258
|
+
logger.success(`Bare server ready!`);
|
|
259
|
+
logger.info(`SSH: ssh root@${server.ip}`);
|
|
260
|
+
logger.info(`IP: ${server.ip}`);
|
|
261
|
+
logger.info("Mode: bare (no platform installed)");
|
|
262
|
+
console.log();
|
|
263
|
+
if (!fullSetup) {
|
|
264
|
+
logger.info(" Secure your server:");
|
|
265
|
+
logger.step(` quicklify firewall setup ${serverName}`);
|
|
266
|
+
logger.step(` quicklify secure setup ${serverName}`);
|
|
267
|
+
console.log();
|
|
268
|
+
}
|
|
269
|
+
logger.info(" Server saved to local config. Use 'quicklify list' to see all servers.");
|
|
270
|
+
console.log();
|
|
271
|
+
return;
|
|
272
|
+
}
|
|
273
|
+
// Full setup: auto-configure firewall + SSH hardening
|
|
274
|
+
if (fullSetup && ready) {
|
|
275
|
+
// Clear stale known_hosts entry (cloud providers reuse IPs)
|
|
276
|
+
try {
|
|
277
|
+
assertValidIp(server.ip); // Defense-in-depth: IP validated before ssh-keygen
|
|
278
|
+
spawnSync("ssh-keygen", ["-R", server.ip], { stdio: "ignore", env: sanitizedEnv() });
|
|
279
|
+
}
|
|
280
|
+
catch {
|
|
281
|
+
// ssh-keygen not available or no entry — harmless
|
|
282
|
+
}
|
|
283
|
+
logger.title("Running full setup (firewall + security)...");
|
|
284
|
+
try {
|
|
285
|
+
await firewallSetup(server.ip, serverName, false);
|
|
286
|
+
}
|
|
287
|
+
catch (error) {
|
|
288
|
+
logger.warning(`Firewall setup failed: ${getErrorMessage(error)}`);
|
|
289
|
+
}
|
|
290
|
+
try {
|
|
291
|
+
await secureSetup(server.ip, serverName, undefined, false, true);
|
|
292
|
+
}
|
|
293
|
+
catch (error) {
|
|
294
|
+
logger.warning(`Security setup failed: ${getErrorMessage(error)}`);
|
|
295
|
+
}
|
|
296
|
+
}
|
|
297
|
+
else if (fullSetup && !ready) {
|
|
298
|
+
logger.warning("Skipping full setup: Coolify is not ready yet.");
|
|
299
|
+
logger.info("Run manually later: quicklify firewall setup && quicklify secure setup");
|
|
300
|
+
}
|
|
301
|
+
// Success message
|
|
302
|
+
logger.title("Deployment Successful!");
|
|
303
|
+
console.log();
|
|
304
|
+
logger.success(`Server IP: ${server.ip}`);
|
|
305
|
+
logger.success(`Access Coolify: http://${server.ip}:8000`);
|
|
306
|
+
console.log();
|
|
307
|
+
if (ready) {
|
|
308
|
+
logger.info("Coolify is ready! Open the URL above to get started.");
|
|
309
|
+
if (!noOpen && hasValidIp) {
|
|
310
|
+
openBrowser(`http://${server.ip}:8000`);
|
|
311
|
+
}
|
|
312
|
+
}
|
|
313
|
+
else {
|
|
314
|
+
logger.warning("Coolify did not respond yet. Please check in a few minutes.");
|
|
315
|
+
logger.info(`You can check status later with: quicklify status ${server.ip}`);
|
|
316
|
+
}
|
|
317
|
+
// Onboarding: next steps
|
|
318
|
+
console.log();
|
|
319
|
+
logger.title("What's Next?");
|
|
320
|
+
if (!fullSetup) {
|
|
321
|
+
logger.info(" 1. Secure your server:");
|
|
322
|
+
logger.step(` quicklify firewall setup ${serverName}`);
|
|
323
|
+
logger.step(` quicklify secure setup ${serverName}`);
|
|
324
|
+
console.log();
|
|
325
|
+
logger.info(" 2. Add a domain with SSL:");
|
|
326
|
+
logger.step(` quicklify domain add ${serverName} --domain example.com`);
|
|
327
|
+
console.log();
|
|
328
|
+
logger.info(" 3. Create your first backup:");
|
|
329
|
+
logger.step(` quicklify backup ${serverName}`);
|
|
330
|
+
console.log();
|
|
331
|
+
logger.info(" Tip: Do steps 1-3 automatically next time:");
|
|
332
|
+
logger.step(" quicklify init --full-setup");
|
|
333
|
+
}
|
|
334
|
+
else {
|
|
335
|
+
logger.info(" 1. Add a domain with SSL:");
|
|
336
|
+
logger.step(` quicklify domain add ${serverName} --domain example.com`);
|
|
337
|
+
console.log();
|
|
338
|
+
logger.info(" 2. Create your first backup:");
|
|
339
|
+
logger.step(` quicklify backup ${serverName}`);
|
|
340
|
+
}
|
|
341
|
+
console.log();
|
|
342
|
+
logger.info(" Check your environment anytime:");
|
|
343
|
+
logger.step(" quicklify doctor");
|
|
344
|
+
console.log();
|
|
345
|
+
logger.info(" Server saved to local config. Use 'quicklify list' to see all servers.");
|
|
346
|
+
console.log();
|
|
347
|
+
logger.info(" Docs: https://github.com/omrfc/quicklify");
|
|
348
|
+
console.log(" \u2b50 Love Quicklify? Give us a star: https://github.com/omrfc/quicklify \u2b50");
|
|
349
|
+
console.log();
|
|
350
|
+
}
|
|
351
|
+
catch (error) {
|
|
352
|
+
logger.error(`Deployment failed: ${getErrorMessage(error)}`);
|
|
353
|
+
const hint = mapProviderError(error, providerChoice);
|
|
354
|
+
if (hint) {
|
|
355
|
+
logger.info(hint);
|
|
356
|
+
}
|
|
357
|
+
process.exit(1);
|
|
358
|
+
}
|
|
359
|
+
}
|
|
360
|
+
//# sourceMappingURL=deploy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deploy.js","sourceRoot":"","sources":["../../src/core/deploy.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manage.d.ts","sourceRoot":"","sources":["../../src/core/manage.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"manage.d.ts","sourceRoot":"","sources":["../../src/core/manage.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAKlE,wBAAgB,UAAU,IAAI,OAAO,CAEpC;AAID,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEzD;AAED,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAa3D;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAS9D;AAID,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,UAAU,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAsB,eAAe,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC,CAuGvF;AAID,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,kBAAkB,CAYpE;AAID,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,YAAY,EAAE,OAAO,CAAC;IACtB,YAAY,EAAE,OAAO,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,wBAAsB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAiEpF;AAID,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,wBAAsB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAoC7E"}
|
package/dist/core/manage.js
CHANGED
|
@@ -3,14 +3,14 @@ import { createProviderWithToken } from "../utils/providerFactory.js";
|
|
|
3
3
|
import { sshExec, checkSshAvailable } from "../utils/ssh.js";
|
|
4
4
|
import { getErrorMessage, mapProviderError } from "../utils/errorMapper.js";
|
|
5
5
|
import { getProviderToken } from "./tokens.js";
|
|
6
|
+
import { SUPPORTED_PROVIDERS, invalidProviderError } from "../constants.js";
|
|
6
7
|
// ─── SAFE_MODE ────────────────────────────────────────────────────────────────
|
|
7
8
|
export function isSafeMode() {
|
|
8
9
|
return process.env.QUICKLIFY_SAFE_MODE === "true";
|
|
9
10
|
}
|
|
10
11
|
// ─── Validation ───────────────────────────────────────────────────────────────
|
|
11
|
-
const VALID_PROVIDERS = ["hetzner", "digitalocean", "vultr", "linode"];
|
|
12
12
|
export function isValidProvider(provider) {
|
|
13
|
-
return
|
|
13
|
+
return SUPPORTED_PROVIDERS.includes(provider);
|
|
14
14
|
}
|
|
15
15
|
export function validateIpAddress(ip) {
|
|
16
16
|
if (!ip)
|
|
@@ -43,7 +43,7 @@ export async function addServerRecord(params) {
|
|
|
43
43
|
if (!isValidProvider(params.provider)) {
|
|
44
44
|
return {
|
|
45
45
|
success: false,
|
|
46
|
-
error:
|
|
46
|
+
error: invalidProviderError(params.provider),
|
|
47
47
|
};
|
|
48
48
|
}
|
|
49
49
|
// Get token from explicit param or env
|
package/dist/core/manage.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manage.js","sourceRoot":"","sources":["../../src/core/manage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACtF,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AACtE,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC5E,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"manage.js","sourceRoot":"","sources":["../../src/core/manage.ts"],"names":[],"mappings":"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"}
|
package/dist/core/provision.js
CHANGED
|
@@ -7,7 +7,7 @@ import { saveServer } from "../utils/config.js";
|
|
|
7
7
|
import { getTemplateDefaults } from "../utils/templates.js";
|
|
8
8
|
import { getErrorMessage, mapProviderError } from "../utils/errorMapper.js";
|
|
9
9
|
import { assertValidIp } from "../utils/ssh.js";
|
|
10
|
-
import { IP_WAIT, BOOT_MAX_ATTEMPTS, BOOT_INTERVAL } from "../constants.js";
|
|
10
|
+
import { IP_WAIT, BOOT_MAX_ATTEMPTS, BOOT_INTERVAL, invalidProviderError } from "../constants.js";
|
|
11
11
|
// ─── Helpers ─────────────────────────────────────────────────────────────────
|
|
12
12
|
function sleep(ms) {
|
|
13
13
|
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
@@ -41,7 +41,7 @@ export async function provisionServer(config) {
|
|
|
41
41
|
if (!isValidProvider(config.provider)) {
|
|
42
42
|
return {
|
|
43
43
|
success: false,
|
|
44
|
-
error:
|
|
44
|
+
error: invalidProviderError(config.provider),
|
|
45
45
|
};
|
|
46
46
|
}
|
|
47
47
|
// 2. Validate name
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provision.js","sourceRoot":"","sources":["../../src/core/provision.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AACtE,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9E,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACpF,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC5E,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGhD,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"provision.js","sourceRoot":"","sources":["../../src/core/provision.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tokens.d.ts","sourceRoot":"","sources":["../../src/core/tokens.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"tokens.d.ts","sourceRoot":"","sources":["../../src/core/tokens.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGtD,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAKrE;AAED,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,YAAY,EAAE,GACtB,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAYrB"}
|
package/dist/core/tokens.js
CHANGED
|
@@ -1,12 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
hetzner: "HETZNER_TOKEN",
|
|
3
|
-
digitalocean: "DIGITALOCEAN_TOKEN",
|
|
4
|
-
vultr: "VULTR_TOKEN",
|
|
5
|
-
linode: "LINODE_TOKEN",
|
|
6
|
-
};
|
|
1
|
+
import { PROVIDER_ENV_KEYS } from "../constants.js";
|
|
7
2
|
export function getProviderToken(provider) {
|
|
8
|
-
const envKey =
|
|
9
|
-
|
|
3
|
+
const envKey = PROVIDER_ENV_KEYS[provider];
|
|
4
|
+
const raw = envKey ? process.env[envKey] : undefined;
|
|
5
|
+
const trimmed = raw?.trim();
|
|
6
|
+
return trimmed || undefined;
|
|
10
7
|
}
|
|
11
8
|
export function collectProviderTokensFromEnv(servers) {
|
|
12
9
|
const tokenMap = new Map();
|
package/dist/core/tokens.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tokens.js","sourceRoot":"","sources":["../../src/core/tokens.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"tokens.js","sourceRoot":"","sources":["../../src/core/tokens.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEpD,MAAM,UAAU,gBAAgB,CAAC,QAAgB;IAC/C,MAAM,MAAM,GAAG,iBAAiB,CAAC,QAA0C,CAAC,CAAC;IAC7E,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACrD,MAAM,OAAO,GAAG,GAAG,EAAE,IAAI,EAAE,CAAC;IAC5B,OAAO,OAAO,IAAI,SAAS,CAAC;AAC9B,CAAC;AAED,MAAM,UAAU,4BAA4B,CAC1C,OAAuB;IAEvB,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC3C,MAAM,SAAS,GAAG;QAChB,GAAG,IAAI,GAAG,CACR,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAC1E;KACF,CAAC;IACF,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QACjC,MAAM,KAAK,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QACzC,IAAI,KAAK;YAAE,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAC3C,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
import type { ServerMode } from "../../types/index.js";
|
|
3
|
+
import type { SupportedProvider } from "../../constants.js";
|
|
3
4
|
export declare const serverInfoSchema: {
|
|
4
5
|
action: z.ZodEnum<{
|
|
5
6
|
list: "list";
|
|
@@ -23,7 +24,7 @@ export declare const serverInfoSchema: {
|
|
|
23
24
|
export declare function handleServerInfo(params: {
|
|
24
25
|
action: "list" | "status" | "health" | "sizes";
|
|
25
26
|
server?: string;
|
|
26
|
-
provider?:
|
|
27
|
+
provider?: SupportedProvider;
|
|
27
28
|
region?: string;
|
|
28
29
|
mode?: ServerMode;
|
|
29
30
|
}): Promise<{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serverInfo.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/serverInfo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AASxB,OAAO,KAAK,EAAgB,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAGrE,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;CAgB5B,CAAC;AAqGF,wBAAsB,gBAAgB,CAAC,MAAM,EAAE;IAC7C,MAAM,EAAE,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC;IAC/C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,
|
|
1
|
+
{"version":3,"file":"serverInfo.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/serverInfo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AASxB,OAAO,KAAK,EAAgB,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAGrE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAE5D,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;CAgB5B,CAAC;AAqGF,wBAAsB,gBAAgB,CAAC,MAAM,EAAE;IAC7C,MAAM,EAAE,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC;IAC/C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,iBAAiB,CAAC;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,UAAU,CAAC;CACnB,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,CA8NjF"}
|
|
@@ -7,10 +7,11 @@ import { isBareServer } from "../../utils/modeGuard.js";
|
|
|
7
7
|
import { sshExec } from "../../utils/ssh.js";
|
|
8
8
|
import { createProviderWithToken } from "../../utils/providerFactory.js";
|
|
9
9
|
import { mcpSuccess, mcpError } from "../utils.js";
|
|
10
|
+
import { SUPPORTED_PROVIDERS } from "../../constants.js";
|
|
10
11
|
export const serverInfoSchema = {
|
|
11
12
|
action: z.enum(["list", "status", "health", "sizes"]).describe("Action to perform: 'list' all servers, 'status' check server/cloud status, 'health' check Coolify reachability (or SSH reachability for bare servers), 'sizes' list available server types with prices for a provider+region"),
|
|
12
13
|
server: z.string().optional().describe("Server name or IP. Required for single-server status/health. Omit for all servers."),
|
|
13
|
-
provider: z.enum(
|
|
14
|
+
provider: z.enum(SUPPORTED_PROVIDERS).optional().describe("Cloud provider (required for 'sizes' action)"),
|
|
14
15
|
region: z.string().optional().describe("Region/location ID (required for 'sizes' action, e.g. 'nbg1' for Hetzner, 'fra1' for DigitalOcean)"),
|
|
15
16
|
mode: z.enum(["coolify", "bare"]).optional().describe("Server mode filter for 'sizes' action. Coolify requires min 2GB RAM. Default: coolify"),
|
|
16
17
|
};
|