| interface AddOptions { | ||
| provider?: string; | ||
| ip?: string; | ||
| name?: string; | ||
| skipVerify?: boolean; | ||
| } | ||
| export declare function addCommand(options?: AddOptions): Promise<void>; | ||
| export {}; | ||
| //# sourceMappingURL=add.d.ts.map |
| {"version":3,"file":"add.d.ts","sourceRoot":"","sources":["../../src/commands/add.ts"],"names":[],"mappings":"AAUA,UAAU,UAAU;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,wBAAsB,UAAU,CAAC,OAAO,GAAE,UAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAyJxE"} |
| import inquirer from "inquirer"; | ||
| import ora from "ora"; | ||
| import chalk from "chalk"; | ||
| import { getServers, saveServer } from "../utils/config.js"; | ||
| import { promptApiToken } from "../utils/serverSelect.js"; | ||
| import { createProviderWithToken } from "../utils/providerFactory.js"; | ||
| import { sshExec, checkSshAvailable } from "../utils/ssh.js"; | ||
| import { logger } from "../utils/logger.js"; | ||
| export async function addCommand(options = {}) { | ||
| // Step 1: Select provider | ||
| let providerName = options.provider; | ||
| if (!providerName) { | ||
| const { provider } = await inquirer.prompt([ | ||
| { | ||
| type: "list", | ||
| name: "provider", | ||
| message: "Select cloud provider:", | ||
| choices: [ | ||
| { name: "Hetzner Cloud", value: "hetzner" }, | ||
| { name: "DigitalOcean", value: "digitalocean" }, | ||
| { name: "Vultr", value: "vultr" }, | ||
| { name: "Linode (Akamai)", value: "linode" }, | ||
| ], | ||
| }, | ||
| ]); | ||
| providerName = provider; | ||
| } | ||
| const validProviders = ["hetzner", "digitalocean", "vultr", "linode"]; | ||
| if (!validProviders.includes(providerName)) { | ||
| logger.error(`Invalid provider: ${providerName}. Use: ${validProviders.join(", ")}`); | ||
| process.exit(1); | ||
| return; | ||
| } | ||
| // Step 2: Get API token | ||
| const token = await promptApiToken(providerName); | ||
| const provider = createProviderWithToken(providerName, token); | ||
| // Step 3: Validate token | ||
| const spinner = ora("Validating API token...").start(); | ||
| const valid = await provider.validateToken(token); | ||
| if (!valid) { | ||
| spinner.fail("Invalid API token"); | ||
| process.exit(1); | ||
| return; | ||
| } | ||
| spinner.succeed("Token validated"); | ||
| // Step 4: Get server IP | ||
| let serverIp = options.ip; | ||
| if (!serverIp) { | ||
| const { ip } = await inquirer.prompt([ | ||
| { | ||
| type: "input", | ||
| name: "ip", | ||
| message: "Enter server IP address:", | ||
| validate: (input) => { | ||
| const trimmed = input.trim(); | ||
| if (!trimmed) | ||
| return "IP address is required"; | ||
| if (!/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/.test(trimmed)) { | ||
| return "Invalid IP address format"; | ||
| } | ||
| const octets = trimmed.split(".").map(Number); | ||
| if (octets.some((o) => o < 0 || o > 255)) { | ||
| return "Invalid IP address (octets must be 0-255)"; | ||
| } | ||
| return true; | ||
| }, | ||
| }, | ||
| ]); | ||
| serverIp = ip.trim(); | ||
| } | ||
| // Step 5: Check for duplicate | ||
| const existingServers = getServers(); | ||
| const duplicate = existingServers.find((s) => s.ip === serverIp); | ||
| if (duplicate) { | ||
| logger.error(`Server with IP ${serverIp} already exists: ${duplicate.name}`); | ||
| process.exit(1); | ||
| return; | ||
| } | ||
| // Step 6: Get server name | ||
| let serverName = options.name; | ||
| if (!serverName) { | ||
| const { name } = await inquirer.prompt([ | ||
| { | ||
| type: "input", | ||
| name: "name", | ||
| message: "Server name:", | ||
| default: "coolify-server", | ||
| validate: (input) => { | ||
| const trimmed = input.trim(); | ||
| if (!trimmed) | ||
| return "Server name is required"; | ||
| if (trimmed.length < 3 || trimmed.length > 63) { | ||
| return "Server name must be 3-63 characters"; | ||
| } | ||
| if (!/^[a-z][a-z0-9-]*[a-z0-9]$/.test(trimmed)) { | ||
| return "Must start with a letter, end with letter/number, only lowercase letters, numbers, hyphens"; | ||
| } | ||
| return true; | ||
| }, | ||
| }, | ||
| ]); | ||
| serverName = name.trim(); | ||
| } | ||
| // Step 7: Verify Coolify is installed (unless --skip-verify) | ||
| if (!options.skipVerify) { | ||
| if (!checkSshAvailable()) { | ||
| logger.warning("SSH not available. Use --skip-verify to skip Coolify verification."); | ||
| process.exit(1); | ||
| return; | ||
| } | ||
| const verifySpinner = ora("Verifying Coolify installation...").start(); | ||
| try { | ||
| const result = await sshExec(serverIp, "curl -s -o /dev/null -w '%{http_code}' http://localhost:8000/api/health"); | ||
| if (result.code === 0 && result.stdout.trim().includes("200")) { | ||
| verifySpinner.succeed("Coolify is running"); | ||
| } | ||
| else { | ||
| // Fallback: check docker containers | ||
| const dockerResult = await sshExec(serverIp, "docker ps --format '{{.Names}}' 2>/dev/null | grep -q coolify && echo OK"); | ||
| if (dockerResult.code === 0 && dockerResult.stdout.trim().includes("OK")) { | ||
| verifySpinner.succeed("Coolify containers detected"); | ||
| } | ||
| else { | ||
| verifySpinner.warn("Coolify not detected. Server added anyway."); | ||
| } | ||
| } | ||
| } | ||
| catch { | ||
| verifySpinner.warn("Could not verify Coolify. Server added anyway."); | ||
| } | ||
| } | ||
| // Step 8: Save to config | ||
| const record = { | ||
| id: `manual-${Date.now()}`, | ||
| name: serverName, | ||
| provider: providerName, | ||
| ip: serverIp, | ||
| region: "unknown", | ||
| size: "unknown", | ||
| createdAt: new Date().toISOString(), | ||
| }; | ||
| saveServer(record); | ||
| console.log(); | ||
| console.log(chalk.green("Server added successfully!")); | ||
| console.log(` Name: ${record.name}`); | ||
| console.log(` IP: ${record.ip}`); | ||
| console.log(` Provider: ${provider.displayName}`); | ||
| console.log(); | ||
| console.log("All commands now work for this server (status, update, backup, etc.)"); | ||
| } | ||
| //# sourceMappingURL=add.js.map |
| {"version":3,"file":"add.js","sourceRoot":"","sources":["../../src/commands/add.ts"],"names":[],"mappings":"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"} |
| interface MaintainOptions { | ||
| skipReboot?: boolean; | ||
| all?: boolean; | ||
| dryRun?: boolean; | ||
| } | ||
| export declare function maintainCommand(query?: string, options?: MaintainOptions): Promise<void>; | ||
| export {}; | ||
| //# sourceMappingURL=maintain.d.ts.map |
| {"version":3,"file":"maintain.d.ts","sourceRoot":"","sources":["../../src/commands/maintain.ts"],"names":[],"mappings":"AAUA,UAAU,eAAe;IACvB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAyQD,wBAAsB,eAAe,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAuB9F"} |
| import axios from "axios"; | ||
| import { getServers } from "../utils/config.js"; | ||
| import { resolveServer, promptApiToken, collectProviderTokens } from "../utils/serverSelect.js"; | ||
| import { createProviderWithToken } from "../utils/providerFactory.js"; | ||
| import { checkSshAvailable, sshExec } from "../utils/ssh.js"; | ||
| import { logger, createSpinner } from "../utils/logger.js"; | ||
| const COOLIFY_UPDATE_CMD = "curl -fsSL https://cdn.coollabs.io/coolify/install.sh | bash"; | ||
| async function checkCoolifyHealth(ip) { | ||
| try { | ||
| await axios.get(`http://${ip}:8000`, { | ||
| timeout: 5000, | ||
| validateStatus: () => true, | ||
| }); | ||
| return true; | ||
| } | ||
| catch { | ||
| return false; | ||
| } | ||
| } | ||
| async function pollCoolifyHealth(ip, maxAttempts, intervalMs) { | ||
| for (let attempt = 1; attempt <= maxAttempts; attempt++) { | ||
| const healthy = await checkCoolifyHealth(ip); | ||
| if (healthy) | ||
| return true; | ||
| if (attempt < maxAttempts) { | ||
| await new Promise((resolve) => setTimeout(resolve, intervalMs)); | ||
| } | ||
| } | ||
| return false; | ||
| } | ||
| function showDryRun(server, skipReboot) { | ||
| logger.title("Dry Run: Maintenance Steps"); | ||
| logger.step(`Target: ${server.name} (${server.ip})`); | ||
| console.log(); | ||
| logger.step("Step 0: Snapshot warning (recommend manual snapshot via provider dashboard)"); | ||
| logger.step("Step 1: Check server status via provider API"); | ||
| logger.step("Step 2: Update Coolify via SSH (curl install script)"); | ||
| logger.step("Step 3: Health check β poll http://<ip>:8000"); | ||
| if (skipReboot) { | ||
| logger.step("Step 4: Reboot β SKIPPED (--skip-reboot)"); | ||
| logger.step("Step 5: Final check β SKIPPED (no reboot)"); | ||
| } | ||
| else { | ||
| logger.step("Step 4: Reboot server via provider API"); | ||
| logger.step("Step 5: Final check β server + Coolify running"); | ||
| } | ||
| console.log(); | ||
| logger.info("No changes applied (dry run)."); | ||
| } | ||
| async function maintainSingleServer(server, apiToken, options) { | ||
| const result = { | ||
| serverName: server.name, | ||
| statusCheck: false, | ||
| update: false, | ||
| healthCheck: false, | ||
| reboot: options.skipReboot ? "skipped" : false, | ||
| finalCheck: options.skipReboot ? "skipped" : false, | ||
| }; | ||
| logger.title(`Maintenance: ${server.name} (${server.ip})`); | ||
| const provider = createProviderWithToken(server.provider, apiToken); | ||
| // Step 0: Snapshot warning | ||
| logger.warning("We recommend taking a snapshot via your provider dashboard before maintenance."); | ||
| console.log(); | ||
| // Step 1: Status check | ||
| const statusSpinner = createSpinner("Step 1: Checking server status..."); | ||
| statusSpinner.start(); | ||
| if (server.id.startsWith("manual-")) { | ||
| statusSpinner.succeed("Step 1: Manually added server β assuming running"); | ||
| result.statusCheck = true; | ||
| } | ||
| else { | ||
| try { | ||
| const serverStatus = await provider.getServerStatus(server.id); | ||
| if (serverStatus !== "running") { | ||
| statusSpinner.fail(`Server is not running (status: ${serverStatus}). Maintenance aborted.`); | ||
| return result; | ||
| } | ||
| statusSpinner.succeed("Step 1: Server is running"); | ||
| result.statusCheck = true; | ||
| } | ||
| catch (error) { | ||
| statusSpinner.fail("Step 1: Failed to check server status"); | ||
| logger.error(error instanceof Error ? error.message : String(error)); | ||
| return result; | ||
| } | ||
| } | ||
| // Step 2: Coolify update | ||
| const updateSpinner = createSpinner("Step 2: Updating Coolify..."); | ||
| updateSpinner.start(); | ||
| try { | ||
| const updateResult = await sshExec(server.ip, COOLIFY_UPDATE_CMD); | ||
| if (updateResult.code !== 0) { | ||
| updateSpinner.fail(`Step 2: Update failed (exit code ${updateResult.code})`); | ||
| if (updateResult.stderr) | ||
| logger.error(updateResult.stderr.trim()); | ||
| return result; | ||
| } | ||
| updateSpinner.succeed("Step 2: Coolify updated"); | ||
| result.update = true; | ||
| } | ||
| catch (error) { | ||
| updateSpinner.fail("Step 2: Update failed"); | ||
| logger.error(error instanceof Error ? error.message : String(error)); | ||
| return result; | ||
| } | ||
| // Step 3: Health check after update | ||
| const healthSpinner = createSpinner("Step 3: Checking Coolify health..."); | ||
| healthSpinner.start(); | ||
| const healthOk = await pollCoolifyHealth(server.ip, 12, 5000); | ||
| if (!healthOk) { | ||
| healthSpinner.fail("Step 3: Coolify did not respond after update"); | ||
| return result; | ||
| } | ||
| healthSpinner.succeed("Step 3: Coolify is healthy"); | ||
| result.healthCheck = true; | ||
| // Step 4: Reboot (optional) | ||
| if (!options.skipReboot) { | ||
| if (server.id.startsWith("manual-")) { | ||
| const rebootSpinner = createSpinner("Step 4: Rebooting server..."); | ||
| rebootSpinner.start(); | ||
| rebootSpinner.warn("Step 4: Cannot reboot manually added server via API β skipped"); | ||
| result.reboot = "skipped"; | ||
| result.finalCheck = "skipped"; | ||
| return result; | ||
| } | ||
| const rebootSpinner = createSpinner("Step 4: Rebooting server..."); | ||
| rebootSpinner.start(); | ||
| try { | ||
| await provider.rebootServer(server.id); | ||
| rebootSpinner.succeed("Step 4: Reboot initiated"); | ||
| result.reboot = true; | ||
| } | ||
| catch (error) { | ||
| rebootSpinner.fail("Step 4: Reboot failed"); | ||
| logger.error(error instanceof Error ? error.message : String(error)); | ||
| return result; | ||
| } | ||
| // Step 5: Final check after reboot | ||
| const finalSpinner = createSpinner("Step 5: Waiting for server to come back online..."); | ||
| finalSpinner.start(); | ||
| // Wait for reboot to initiate | ||
| await new Promise((resolve) => setTimeout(resolve, 10000)); | ||
| // Poll provider API for server status | ||
| try { | ||
| let serverBack = false; | ||
| for (let attempt = 1; attempt <= 30; attempt++) { | ||
| try { | ||
| const status = await provider.getServerStatus(server.id); | ||
| if (status === "running") { | ||
| serverBack = true; | ||
| break; | ||
| } | ||
| } | ||
| catch { | ||
| // Server may be temporarily unreachable during reboot | ||
| } | ||
| await new Promise((resolve) => setTimeout(resolve, 2000)); | ||
| finalSpinner.text = `Step 5: Waiting for server... (${attempt}/30)`; | ||
| } | ||
| if (!serverBack) { | ||
| finalSpinner.warn("Step 5: Server did not come back in time"); | ||
| return result; | ||
| } | ||
| // Check Coolify health after reboot | ||
| const coolifyBack = await pollCoolifyHealth(server.ip, 12, 5000); | ||
| if (coolifyBack) { | ||
| finalSpinner.succeed("Step 5: Server and Coolify are running"); | ||
| result.finalCheck = true; | ||
| } | ||
| else { | ||
| finalSpinner.warn("Step 5: Server is running but Coolify did not respond"); | ||
| } | ||
| } | ||
| catch (error) { | ||
| finalSpinner.fail("Step 5: Final check failed"); | ||
| logger.error(error instanceof Error ? error.message : String(error)); | ||
| return result; | ||
| } | ||
| } | ||
| return result; | ||
| } | ||
| function showReport(results) { | ||
| console.log(); | ||
| logger.title("Maintenance Report"); | ||
| for (const r of results) { | ||
| const steps = [ | ||
| r.statusCheck ? "status OK" : "status FAIL", | ||
| r.update ? "update OK" : "update FAIL", | ||
| r.healthCheck ? "health OK" : "health FAIL", | ||
| r.reboot === "skipped" ? "reboot SKIP" : r.reboot ? "reboot OK" : "reboot FAIL", | ||
| r.finalCheck === "skipped" ? "final SKIP" : r.finalCheck ? "final OK" : "final FAIL", | ||
| ]; | ||
| const allPassed = r.statusCheck && | ||
| r.update && | ||
| r.healthCheck && | ||
| (r.reboot === "skipped" || r.reboot === true) && | ||
| (r.finalCheck === "skipped" || r.finalCheck === true); | ||
| if (allPassed) { | ||
| logger.success(`${r.serverName}: ${steps.join(", ")}`); | ||
| } | ||
| else { | ||
| logger.error(`${r.serverName}: ${steps.join(", ")}`); | ||
| } | ||
| } | ||
| } | ||
| async function maintainAll(options) { | ||
| if (!checkSshAvailable()) { | ||
| logger.error("SSH client not found. Required for maintenance."); | ||
| return; | ||
| } | ||
| const servers = getServers(); | ||
| if (servers.length === 0) { | ||
| logger.info("No servers found. Deploy one with: quicklify init"); | ||
| return; | ||
| } | ||
| const tokenMap = await collectProviderTokens(servers); | ||
| const results = []; | ||
| for (const server of servers) { | ||
| const token = tokenMap.get(server.provider); | ||
| if (options.dryRun) { | ||
| showDryRun(server, !!options.skipReboot); | ||
| continue; | ||
| } | ||
| const result = await maintainSingleServer(server, token, options); | ||
| results.push(result); | ||
| console.log(); | ||
| } | ||
| if (!options.dryRun && results.length > 0) { | ||
| showReport(results); | ||
| } | ||
| } | ||
| export async function maintainCommand(query, options) { | ||
| if (options?.all) { | ||
| return maintainAll(options); | ||
| } | ||
| if (!checkSshAvailable()) { | ||
| logger.error("SSH client not found. Required for maintenance."); | ||
| logger.info("Windows: Settings > Apps > Optional Features > OpenSSH Client"); | ||
| logger.info("Linux/macOS: SSH is usually pre-installed."); | ||
| return; | ||
| } | ||
| const server = await resolveServer(query, "Select a server to maintain:"); | ||
| if (!server) | ||
| return; | ||
| if (options?.dryRun) { | ||
| showDryRun(server, !!options.skipReboot); | ||
| return; | ||
| } | ||
| const apiToken = await promptApiToken(server.provider); | ||
| const result = await maintainSingleServer(server, apiToken, options ?? {}); | ||
| showReport([result]); | ||
| } | ||
| //# sourceMappingURL=maintain.js.map |
| {"version":3,"file":"maintain.js","sourceRoot":"","sources":["../../src/commands/maintain.ts"],"names":[],"mappings":"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"} |
| export declare function removeCommand(query?: string): Promise<void>; | ||
| //# sourceMappingURL=remove.d.ts.map |
| {"version":3,"file":"remove.d.ts","sourceRoot":"","sources":["../../src/commands/remove.ts"],"names":[],"mappings":"AAKA,wBAAsB,aAAa,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAuBjE"} |
| import inquirer from "inquirer"; | ||
| import { removeServer } from "../utils/config.js"; | ||
| import { resolveServer } from "../utils/serverSelect.js"; | ||
| import { logger } from "../utils/logger.js"; | ||
| export async function removeCommand(query) { | ||
| const server = await resolveServer(query, "Select a server to remove:"); | ||
| if (!server) | ||
| return; | ||
| const { confirm } = await inquirer.prompt([ | ||
| { | ||
| type: "confirm", | ||
| name: "confirm", | ||
| message: `Remove "${server.name}" (${server.ip}) from local config? (Server will NOT be destroyed)`, | ||
| default: false, | ||
| }, | ||
| ]); | ||
| if (!confirm) { | ||
| logger.info("Remove cancelled."); | ||
| return; | ||
| } | ||
| removeServer(server.id); | ||
| logger.success(`"${server.name}" removed from local config.`); | ||
| logger.info("The cloud server is still running. Use 'destroy' to also delete it from the provider."); | ||
| } | ||
| //# sourceMappingURL=remove.js.map |
| {"version":3,"file":"remove.js","sourceRoot":"","sources":["../../src/commands/remove.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE5C,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,KAAc;IAChD,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,KAAK,EAAE,4BAA4B,CAAC,CAAC;IACxE,IAAI,CAAC,MAAM;QAAE,OAAO;IAEpB,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC;QACxC;YACE,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,WAAW,MAAM,CAAC,IAAI,MAAM,MAAM,CAAC,EAAE,qDAAqD;YACnG,OAAO,EAAE,KAAK;SACf;KACF,CAAC,CAAC;IAEH,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QACjC,OAAO;IACT,CAAC;IAED,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACxB,MAAM,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,IAAI,8BAA8B,CAAC,CAAC;IAC9D,MAAM,CAAC,IAAI,CACT,uFAAuF,CACxF,CAAC;AACJ,CAAC"} |
| import type { CloudProvider } from "./base.js"; | ||
| import type { Region, ServerSize, ServerConfig, ServerResult } from "../types/index.js"; | ||
| export declare class LinodeProvider implements CloudProvider { | ||
| name: string; | ||
| displayName: string; | ||
| private apiToken; | ||
| private baseUrl; | ||
| constructor(apiToken: string); | ||
| validateToken(token: string): Promise<boolean>; | ||
| uploadSshKey(name: string, publicKey: string): Promise<string>; | ||
| createServer(config: ServerConfig): Promise<ServerResult>; | ||
| getServerDetails(serverId: string): Promise<ServerResult>; | ||
| getServerStatus(serverId: string): Promise<string>; | ||
| destroyServer(serverId: string): Promise<void>; | ||
| rebootServer(serverId: string): Promise<void>; | ||
| getRegions(): Region[]; | ||
| getServerSizes(): ServerSize[]; | ||
| getAvailableLocations(): Promise<Region[]>; | ||
| getAvailableServerTypes(_location: string): Promise<ServerSize[]>; | ||
| } | ||
| //# sourceMappingURL=linode.d.ts.map |
| {"version":3,"file":"linode.d.ts","sourceRoot":"","sources":["../../src/providers/linode.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAuBxF,qBAAa,cAAe,YAAW,aAAa;IAClD,IAAI,SAAY;IAChB,WAAW,SAAqB;IAChC,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,OAAO,CAA+B;gBAElC,QAAQ,EAAE,MAAM;IAItB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAW9C,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IA+B9D,YAAY,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;IAqDzD,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAYzD,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAclD,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAiB9C,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAwBnD,UAAU,IAAI,MAAM,EAAE;IAStB,cAAc,IAAI,UAAU,EAAE;IAQxB,qBAAqB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAiB1C,uBAAuB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;CA2BxE"} |
| import crypto from "crypto"; | ||
| import axios from "axios"; | ||
| export class LinodeProvider { | ||
| name = "linode"; | ||
| displayName = "Linode (Akamai)"; | ||
| apiToken; | ||
| baseUrl = "https://api.linode.com/v4"; | ||
| constructor(apiToken) { | ||
| this.apiToken = apiToken; | ||
| } | ||
| async validateToken(token) { | ||
| try { | ||
| await axios.get(`${this.baseUrl}/profile`, { | ||
| headers: { Authorization: `Bearer ${token}` }, | ||
| }); | ||
| return true; | ||
| } | ||
| catch { | ||
| return false; | ||
| } | ||
| } | ||
| async uploadSshKey(name, publicKey) { | ||
| try { | ||
| const response = await axios.post(`${this.baseUrl}/profile/sshkeys`, { label: name, ssh_key: publicKey }, { | ||
| headers: { | ||
| Authorization: `Bearer ${this.apiToken}`, | ||
| "Content-Type": "application/json", | ||
| }, | ||
| }); | ||
| return response.data.id.toString(); | ||
| } | ||
| catch (error) { | ||
| // Key already exists β find by matching public key | ||
| if (axios.isAxiosError(error) && error.response?.status === 400) { | ||
| const listResponse = await axios.get(`${this.baseUrl}/profile/sshkeys`, { | ||
| headers: { Authorization: `Bearer ${this.apiToken}` }, | ||
| }); | ||
| const existing = listResponse.data.data.find((k) => k.ssh_key.trim() === publicKey.trim()); | ||
| if (existing) | ||
| return existing.id.toString(); | ||
| } | ||
| throw new Error(`Failed to upload SSH key: ${error instanceof Error ? error.message : String(error)}`, { cause: error }); | ||
| } | ||
| } | ||
| async createServer(config) { | ||
| try { | ||
| // Ensure all character classes for Linode password strength: upper + lower + digit + special | ||
| const rootPass = `Ql1!${crypto.randomBytes(21).toString("base64").slice(0, 28)}`; | ||
| const body = { | ||
| label: config.name, | ||
| type: config.size, | ||
| region: config.region, | ||
| image: "linode/ubuntu22.04", | ||
| root_pass: rootPass, | ||
| metadata: { user_data: Buffer.from(config.cloudInit).toString("base64") }, | ||
| }; | ||
| if (config.sshKeyIds?.length) { | ||
| // Linode uses authorized_users (profile usernames) to inject SSH keys. | ||
| // Fetch profile username; if it fails, cloud-init handles SSH key injection as fallback. | ||
| try { | ||
| const profileRes = await axios.get(`${this.baseUrl}/profile`, { | ||
| headers: { Authorization: `Bearer ${this.apiToken}` }, | ||
| }); | ||
| const username = profileRes.data?.username; | ||
| if (typeof username === "string" && username.length > 0) { | ||
| body.authorized_users = [username]; | ||
| } | ||
| } | ||
| catch { | ||
| // Profile fetch failed; cloud-init will handle SSH key setup | ||
| } | ||
| } | ||
| const response = await axios.post(`${this.baseUrl}/linode/instances`, body, { | ||
| headers: { | ||
| Authorization: `Bearer ${this.apiToken}`, | ||
| "Content-Type": "application/json", | ||
| }, | ||
| }); | ||
| const instance = response.data; | ||
| return { | ||
| id: instance.id.toString(), | ||
| ip: instance.ipv4?.[0] || "pending", | ||
| status: instance.status === "provisioning" ? "initializing" : instance.status, | ||
| }; | ||
| } | ||
| catch (error) { | ||
| if (axios.isAxiosError(error)) { | ||
| const reasons = error.response?.data?.errors?.map((e) => e.reason).join(", "); | ||
| throw new Error(`Failed to create server: ${reasons || error.message}`, { cause: error }); | ||
| } | ||
| throw new Error(`Failed to create server: ${error instanceof Error ? error.message : String(error)}`, { cause: error }); | ||
| } | ||
| } | ||
| async getServerDetails(serverId) { | ||
| const response = await axios.get(`${this.baseUrl}/linode/instances/${serverId}`, { | ||
| headers: { Authorization: `Bearer ${this.apiToken}` }, | ||
| }); | ||
| const instance = response.data; | ||
| return { | ||
| id: instance.id.toString(), | ||
| ip: instance.ipv4?.[0] || "pending", | ||
| status: instance.status === "running" ? "running" : instance.status, | ||
| }; | ||
| } | ||
| async getServerStatus(serverId) { | ||
| try { | ||
| const response = await axios.get(`${this.baseUrl}/linode/instances/${serverId}`, { | ||
| headers: { Authorization: `Bearer ${this.apiToken}` }, | ||
| }); | ||
| return response.data.status; | ||
| } | ||
| catch (error) { | ||
| throw new Error(`Failed to get server status: ${error instanceof Error ? error.message : String(error)}`, { cause: error }); | ||
| } | ||
| } | ||
| async destroyServer(serverId) { | ||
| try { | ||
| await axios.delete(`${this.baseUrl}/linode/instances/${serverId}`, { | ||
| headers: { Authorization: `Bearer ${this.apiToken}` }, | ||
| }); | ||
| } | ||
| catch (error) { | ||
| if (axios.isAxiosError(error)) { | ||
| const reasons = error.response?.data?.errors?.map((e) => e.reason).join(", "); | ||
| throw new Error(`Failed to destroy server: ${reasons || error.message}`, { cause: error }); | ||
| } | ||
| throw new Error(`Failed to destroy server: ${error instanceof Error ? error.message : String(error)}`, { cause: error }); | ||
| } | ||
| } | ||
| async rebootServer(serverId) { | ||
| try { | ||
| await axios.post(`${this.baseUrl}/linode/instances/${serverId}/reboot`, {}, { | ||
| headers: { | ||
| Authorization: `Bearer ${this.apiToken}`, | ||
| "Content-Type": "application/json", | ||
| }, | ||
| }); | ||
| } | ||
| catch (error) { | ||
| if (axios.isAxiosError(error)) { | ||
| const reasons = error.response?.data?.errors?.map((e) => e.reason).join(", "); | ||
| throw new Error(`Failed to reboot server: ${reasons || error.message}`, { cause: error }); | ||
| } | ||
| throw new Error(`Failed to reboot server: ${error instanceof Error ? error.message : String(error)}`, { cause: error }); | ||
| } | ||
| } | ||
| getRegions() { | ||
| return [ | ||
| { id: "us-east", name: "Newark, NJ", location: "USA" }, | ||
| { id: "eu-west", name: "London", location: "UK" }, | ||
| { id: "eu-central", name: "Frankfurt", location: "Germany" }, | ||
| { id: "ap-south", name: "Singapore", location: "Singapore" }, | ||
| ]; | ||
| } | ||
| getServerSizes() { | ||
| return [ | ||
| { id: "g6-standard-2", name: "Linode 4GB", vcpu: 2, ram: 4, disk: 80, price: "$12/mo" }, | ||
| { id: "g6-standard-4", name: "Linode 8GB", vcpu: 4, ram: 8, disk: 160, price: "$24/mo" }, | ||
| { id: "g6-standard-6", name: "Linode 16GB", vcpu: 6, ram: 16, disk: 320, price: "$48/mo" }, | ||
| ]; | ||
| } | ||
| async getAvailableLocations() { | ||
| try { | ||
| const response = await axios.get(`${this.baseUrl}/regions`, { | ||
| headers: { Authorization: `Bearer ${this.apiToken}` }, | ||
| }); | ||
| return response.data.data | ||
| .filter((r) => r.status === "ok" && r.capabilities.includes("Linodes")) | ||
| .map((r) => ({ | ||
| id: r.id, | ||
| name: r.label, | ||
| location: r.country, | ||
| })); | ||
| } | ||
| catch { | ||
| return this.getRegions(); | ||
| } | ||
| } | ||
| async getAvailableServerTypes(_location) { | ||
| try { | ||
| const response = await axios.get(`${this.baseUrl}/linode/types`, { | ||
| headers: { Authorization: `Bearer ${this.apiToken}` }, | ||
| }); | ||
| const MIN_RAM_MB = 4096; // Coolify requires at least 2GB, recommend 4GB | ||
| const types = response.data.data.filter((t) => t.memory >= MIN_RAM_MB && t.id.startsWith("g6-standard")); | ||
| if (types.length === 0) { | ||
| return this.getServerSizes(); | ||
| } | ||
| return types.map((t) => ({ | ||
| id: t.id, | ||
| name: t.label, | ||
| vcpu: t.vcpus, | ||
| ram: Math.round(t.memory / 1024), | ||
| disk: Math.round(t.disk / 1024), | ||
| price: `$${t.price.monthly.toFixed(2)}/mo`, | ||
| })); | ||
| } | ||
| catch { | ||
| return this.getServerSizes(); | ||
| } | ||
| } | ||
| } | ||
| //# sourceMappingURL=linode.js.map |
| {"version":3,"file":"linode.js","sourceRoot":"","sources":["../../src/providers/linode.ts"],"names":[],"mappings":"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"} |
| import type { CloudProvider } from "./base.js"; | ||
| import type { Region, ServerSize, ServerConfig, ServerResult } from "../types/index.js"; | ||
| export declare class VultrProvider implements CloudProvider { | ||
| name: string; | ||
| displayName: string; | ||
| private apiToken; | ||
| private baseUrl; | ||
| constructor(apiToken: string); | ||
| validateToken(token: string): Promise<boolean>; | ||
| uploadSshKey(name: string, publicKey: string): Promise<string>; | ||
| createServer(config: ServerConfig): Promise<ServerResult>; | ||
| getServerDetails(serverId: string): Promise<ServerResult>; | ||
| getServerStatus(serverId: string): Promise<string>; | ||
| destroyServer(serverId: string): Promise<void>; | ||
| rebootServer(serverId: string): Promise<void>; | ||
| getRegions(): Region[]; | ||
| getServerSizes(): ServerSize[]; | ||
| getAvailableLocations(): Promise<Region[]>; | ||
| getAvailableServerTypes(location: string): Promise<ServerSize[]>; | ||
| } | ||
| //# sourceMappingURL=vultr.d.ts.map |
| {"version":3,"file":"vultr.d.ts","sourceRoot":"","sources":["../../src/providers/vultr.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAuBxF,qBAAa,aAAc,YAAW,aAAa;IACjD,IAAI,SAAW;IACf,WAAW,SAAW;IACtB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,OAAO,CAA8B;gBAEjC,QAAQ,EAAE,MAAM;IAItB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAW9C,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IA+B9D,YAAY,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;IAuCzD,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAYzD,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAclD,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAmB9C,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA0BnD,UAAU,IAAI,MAAM,EAAE;IAStB,cAAc,IAAI,UAAU,EAAE;IAQxB,qBAAqB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAiB1C,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;CA2BvE"} |
| import axios from "axios"; | ||
| export class VultrProvider { | ||
| name = "vultr"; | ||
| displayName = "Vultr"; | ||
| apiToken; | ||
| baseUrl = "https://api.vultr.com/v2"; | ||
| constructor(apiToken) { | ||
| this.apiToken = apiToken; | ||
| } | ||
| async validateToken(token) { | ||
| try { | ||
| await axios.get(`${this.baseUrl}/account`, { | ||
| headers: { Authorization: `Bearer ${token}` }, | ||
| }); | ||
| return true; | ||
| } | ||
| catch { | ||
| return false; | ||
| } | ||
| } | ||
| async uploadSshKey(name, publicKey) { | ||
| try { | ||
| const response = await axios.post(`${this.baseUrl}/ssh-keys`, { name, ssh_key: publicKey }, { | ||
| headers: { | ||
| Authorization: `Bearer ${this.apiToken}`, | ||
| "Content-Type": "application/json", | ||
| }, | ||
| }); | ||
| return response.data.ssh_key.id; | ||
| } | ||
| catch (error) { | ||
| // Key already exists -> find by matching public key | ||
| if (axios.isAxiosError(error) && error.response?.status === 409) { | ||
| const listResponse = await axios.get(`${this.baseUrl}/ssh-keys`, { | ||
| headers: { Authorization: `Bearer ${this.apiToken}` }, | ||
| }); | ||
| const existing = listResponse.data.ssh_keys.find((k) => k.ssh_key.trim() === publicKey.trim()); | ||
| if (existing) | ||
| return existing.id; | ||
| } | ||
| throw new Error(`Failed to upload SSH key: ${error instanceof Error ? error.message : String(error)}`, { cause: error }); | ||
| } | ||
| } | ||
| async createServer(config) { | ||
| try { | ||
| const body = { | ||
| label: config.name, | ||
| plan: config.size, | ||
| region: config.region, | ||
| os_id: 2284, // Ubuntu 24.04 | ||
| user_data: Buffer.from(config.cloudInit).toString("base64"), | ||
| }; | ||
| if (config.sshKeyIds?.length) { | ||
| body.sshkey_id = config.sshKeyIds; | ||
| } | ||
| const response = await axios.post(`${this.baseUrl}/instances`, body, { | ||
| headers: { | ||
| Authorization: `Bearer ${this.apiToken}`, | ||
| "Content-Type": "application/json", | ||
| }, | ||
| }); | ||
| const instance = response.data.instance; | ||
| return { | ||
| id: instance.id, | ||
| ip: instance.main_ip || "pending", | ||
| status: instance.power_status, | ||
| }; | ||
| } | ||
| catch (error) { | ||
| if (axios.isAxiosError(error)) { | ||
| throw new Error(`Failed to create server: ${error.response?.data?.error || error.message}`, { cause: error }); | ||
| } | ||
| throw new Error(`Failed to create server: ${error instanceof Error ? error.message : String(error)}`, { cause: error }); | ||
| } | ||
| } | ||
| async getServerDetails(serverId) { | ||
| const response = await axios.get(`${this.baseUrl}/instances/${serverId}`, { | ||
| headers: { Authorization: `Bearer ${this.apiToken}` }, | ||
| }); | ||
| const instance = response.data.instance; | ||
| return { | ||
| id: instance.id, | ||
| ip: instance.main_ip, | ||
| status: instance.power_status === "running" ? "running" : instance.power_status, | ||
| }; | ||
| } | ||
| async getServerStatus(serverId) { | ||
| try { | ||
| const response = await axios.get(`${this.baseUrl}/instances/${serverId}`, { | ||
| headers: { Authorization: `Bearer ${this.apiToken}` }, | ||
| }); | ||
| return response.data.instance.power_status; | ||
| } | ||
| catch (error) { | ||
| throw new Error(`Failed to get server status: ${error instanceof Error ? error.message : String(error)}`, { cause: error }); | ||
| } | ||
| } | ||
| async destroyServer(serverId) { | ||
| try { | ||
| await axios.delete(`${this.baseUrl}/instances/${serverId}`, { | ||
| headers: { Authorization: `Bearer ${this.apiToken}` }, | ||
| }); | ||
| } | ||
| catch (error) { | ||
| if (axios.isAxiosError(error)) { | ||
| throw new Error(`Failed to destroy server: ${error.response?.data?.error || error.message}`, { cause: error }); | ||
| } | ||
| throw new Error(`Failed to destroy server: ${error instanceof Error ? error.message : String(error)}`, { cause: error }); | ||
| } | ||
| } | ||
| async rebootServer(serverId) { | ||
| try { | ||
| await axios.post(`${this.baseUrl}/instances/${serverId}/reboot`, {}, { | ||
| headers: { | ||
| Authorization: `Bearer ${this.apiToken}`, | ||
| "Content-Type": "application/json", | ||
| }, | ||
| }); | ||
| } | ||
| catch (error) { | ||
| if (axios.isAxiosError(error)) { | ||
| throw new Error(`Failed to reboot server: ${error.response?.data?.error || error.message}`, { cause: error }); | ||
| } | ||
| throw new Error(`Failed to reboot server: ${error instanceof Error ? error.message : String(error)}`, { cause: error }); | ||
| } | ||
| } | ||
| getRegions() { | ||
| return [ | ||
| { id: "ewr", name: "New Jersey", location: "USA" }, | ||
| { id: "ord", name: "Chicago", location: "USA" }, | ||
| { id: "ams", name: "Amsterdam", location: "Netherlands" }, | ||
| { id: "fra", name: "Frankfurt", location: "Germany" }, | ||
| ]; | ||
| } | ||
| getServerSizes() { | ||
| return [ | ||
| { id: "vc2-1c-2gb", name: "VC2-1C-2GB", vcpu: 1, ram: 2, disk: 55, price: "$10/mo" }, | ||
| { id: "vc2-2c-4gb", name: "VC2-2C-4GB", vcpu: 2, ram: 4, disk: 80, price: "$20/mo" }, | ||
| { id: "vc2-4c-8gb", name: "VC2-4C-8GB", vcpu: 4, ram: 8, disk: 160, price: "$40/mo" }, | ||
| ]; | ||
| } | ||
| async getAvailableLocations() { | ||
| try { | ||
| const response = await axios.get(`${this.baseUrl}/regions`, { | ||
| headers: { Authorization: `Bearer ${this.apiToken}` }, | ||
| }); | ||
| return response.data.regions | ||
| .filter((r) => r.options && r.options.length > 0) | ||
| .map((r) => ({ | ||
| id: r.id, | ||
| name: r.city, | ||
| location: r.country, | ||
| })); | ||
| } | ||
| catch { | ||
| return this.getRegions(); | ||
| } | ||
| } | ||
| async getAvailableServerTypes(location) { | ||
| try { | ||
| const response = await axios.get(`${this.baseUrl}/plans`, { | ||
| headers: { Authorization: `Bearer ${this.apiToken}` }, | ||
| }); | ||
| const MIN_RAM_MB = 2048; // Coolify requires at least 2GB RAM | ||
| const plans = response.data.plans.filter((p) => p.type === "vc2" && p.ram >= MIN_RAM_MB && p.locations.includes(location)); | ||
| if (plans.length === 0) { | ||
| return this.getServerSizes(); | ||
| } | ||
| return plans.map((p) => ({ | ||
| id: p.id, | ||
| name: p.id.toUpperCase(), | ||
| vcpu: p.vcpu_count, | ||
| ram: p.ram / 1024, | ||
| disk: p.disk, | ||
| price: `$${p.monthly_cost.toFixed(2)}/mo`, | ||
| })); | ||
| } | ||
| catch { | ||
| return this.getServerSizes(); | ||
| } | ||
| } | ||
| } | ||
| //# sourceMappingURL=vultr.js.map |
| {"version":3,"file":"vultr.js","sourceRoot":"","sources":["../../src/providers/vultr.ts"],"names":[],"mappings":"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"} |
+800
| # quicklify | ||
| > [English](README.md) | TΓΌrkΓ§e | ||
|  | ||
| [](https://codecov.io/gh/omrfc/quicklify) | ||
|  | ||
|  | ||
|  | ||
|  | ||
| [](https://socket.dev/npm/package/quicklify) | ||
| > Coolify'i tek bir komutla bulut VPS'e deploy edin | ||
| ## π Quicklify Nedir? | ||
| Quicklify, [Coolify](https://coolify.io/) kurulumunu bulut VPS saΔlayΔ±cΔ±larΔ±nda otomatikleΕtiren bir CLI aracΔ±dΔ±r. Coolify, Vercel/Netlify/Heroku'ya aΓ§Δ±k kaynaklΔ±, kendi sunucunuzda barΔ±ndΔ±rΔ±lan bir alternatiftir β Quicklify ise Coolify'i VPS'inize tek bir komutla kurar. | ||
| **Quicklify Olmadan:** | ||
| ``` | ||
| VPS'i manuel oluΕtur (5 dk) | ||
| Sunucuya SSH ile baΔlan (2 dk) | ||
| Docker kur (10 dk) | ||
| GΓΌvenlik duvarΔ±nΔ± yapΔ±landΔ±r (5 dk) | ||
| Coolify'i kur (10 dk) | ||
| Toplam: ~30 dakika + manuel iΕ | ||
| ``` | ||
| **Quicklify ile:** | ||
| ```bash | ||
| npx quicklify init | ||
| # Hetzner: ~4 dk | DigitalOcean: ~6 dk | Vultr: ~5 dk | Linode: ~6 dk | ||
| # SΔ±fΔ±r manuel iΕ β¨ | ||
| ``` | ||
| ## β¨ Γzellikler | ||
| - π― **Tek Komut Deploy** - VPS + Coolify tek bir komutla | ||
| - π° **Maliyet Tasarrufu** - $50-200/ay (Vercel/Netlify) β β¬3.79/ay | ||
| - π **VarsayΔ±lan GΓΌvenlik** - Otomatik gΓΌvenlik yapΔ±landΔ±rmasΔ± | ||
| - π **Γoklu Bulut** - Hetzner Cloud, DigitalOcean, Vultr, Linode | ||
| - π» **ΕΔ±k CLI** - DoΔrulama destekli interaktif arayΓΌz | ||
| - π¨ **ARM64 DesteΔi** - Uygun fiyatlΔ± ARM sunucu desteΔi | ||
| - β‘ **HΔ±zlΔ± Kurulum** - Hetzner ~4 dk, DigitalOcean ~6 dk, Vultr ~5 dk, Linode ~6 dk | ||
| - β¨ **Dinamik Sunucu Tipleri** - SeΓ§ilen konum iΓ§in yalnΔ±zca uyumlu tipler gΓΆsterilir | ||
| - π₯ **Otomatik GΓΌvenlik DuvarΔ±** - 8000, 22, 80, 443 portlarΔ± otomatik yapΔ±landΔ±rΔ±lΔ±r | ||
| - π **SSH Gerektirmez** - Kurulumdan sonra doΔrudan tarayΔ±cΔ±da aΓ§Δ±lΔ±r | ||
| - π **Sunucu YΓΆnetimi** - Listeleme, durum kontrolΓΌ, silme, yeniden baΕlatma, yedekleme, geri yΓΌkleme komutlarΔ± | ||
| - π§ **VarsayΔ±lan Ayarlar** - Tekrarlayan sorularΔ± atlamak iΓ§in varsayΔ±lanlarΔ± belirleyin | ||
| - π **SSH EriΕimi** - Sunuculara baΔlanΔ±n veya uzaktan komut Γ§alΔ±ΕtΔ±rΔ±n | ||
| - π **Coolify GΓΌncelleme** - Coolify'i tek komutla gΓΌncelleyin | ||
| - π₯ **SaΔlΔ±k KontrolΓΌ YoklamasΔ±** - Coolify'in ne zaman hazΔ±r olduΔunu algΔ±lar (artΔ±k kΓΆrlemesine bekleme yok) | ||
| - π **Sunucu Δ°zleme** - CPU/RAM/Disk kullanΔ±mΔ± ve Docker konteyner durumu | ||
| - π **Log GΓΆrΓΌntΓΌleyici** - Coolify, Docker veya sistem loglarΔ±nΔ± takip moduyla gΓΆrΓΌntΓΌleyin | ||
| - π©Ί **Ortam Doktoru** - Yerel kurulum sorunlarΔ±nΔ± teΕhis edin | ||
| - π« **Toplu SaΔlΔ±k KontrolΓΌ** - TΓΌm sunucularΔ± aynΔ± anda kontrol edin | ||
| - π₯ **GΓΌvenlik DuvarΔ± YΓΆnetimi** - UFW kurulumu, port ekleme/kaldΔ±rma, korumalΔ± port gΓΌvenliΔi | ||
| - π **Domain YΓΆnetimi** - Domain baΔlama, DNS kontrolΓΌ, Coolify ΓΌzerinden otomatik SSL | ||
| - π‘οΈ **SSH GΓΌΓ§lendirme** - Εifre giriΕini devre dΔ±ΕΔ± bΔ±rakma, fail2ban, gΓΌvenlik denetimi ve puan | ||
| - π§ͺ **Kuru ΓalΔ±ΕtΔ±rma Modu** - GΓΌvenlik duvarΔ±/domain/gΓΌvenlik/yedekleme/geri yΓΌkleme komutlarΔ±nΔ± Γ§alΔ±ΕtΔ±rmadan ΓΆnce ΓΆnizleyin | ||
| - πΎ **Yedekleme & Geri YΓΌkleme** - VeritabanΔ± + yapΔ±landΔ±rma yedeklemesi SCP ile indirme, Γ§ift onaylΔ± geri yΓΌkleme | ||
| - π¦ **DΔ±Εa/Δ°Γ§e Aktarma** - Sunucu listesini makineler arasΔ±nda JSON olarak aktarΔ±n | ||
| - β‘ **Tam Kurulum** - `--full-setup` bayraΔΔ± deploy sonrasΔ± gΓΌvenlik duvarΔ± + SSH gΓΌΓ§lendirmesini otomatik yapΔ±landΔ±rΔ±r | ||
| - π **YAML YapΔ±landΔ±rma** - `quicklify init --config quicklify.yml` ile tek komutluk deploy | ||
| - π **Εablonlar** - `--template starter|production|dev` ile saΔlayΔ±cΔ±ya ΓΆzel varsayΔ±lanlar | ||
| - π€ **EtkileΕimsiz Mod** - `--provider --token --region --size --name` bayraklarΔ±yla CI/CD uyumlu | ||
| - β **Mevcut Sunucu Ekleme** - `quicklify add` ile mevcut Coolify sunucularΔ±nΔ± kaydedin | ||
| - π **Toplu Δ°Εlemler** - `--all` bayraΔΔ± ile status, update, backup komutlarΔ±nΔ± tΓΌm sunucularda Γ§alΔ±ΕtΔ±rΔ±n | ||
| - π **Otomatik Yeniden BaΕlatma** - `status --autostart` sunucu Γ§alΔ±ΕΔ±yor ama Coolify kapalΔ±ysa yeniden baΕlatΔ±r | ||
| - π§ **Tam BakΔ±m** - `quicklify maintain` ile status, update, health check, reboot sΔ±ralΔ± Γ§alΔ±ΕΔ±r | ||
| ## π― Quicklify ile Neler Yapabilirsiniz? | ||
| ### Dakikalar Δ°Γ§inde Coolify Sunucusu Kurun | ||
| ```bash | ||
| npx quicklify init # Δ°nteraktif kurulum | ||
| npx quicklify init --provider hetzner --full-setup # Otomatik gΓΌvenlik duvarΔ± + SSH gΓΌΓ§lendirme | ||
| npx quicklify init --template production # Γretime hazΔ±r varsayΔ±lanlar | ||
| npx quicklify init --config quicklify.yml # YAML dosyasΔ±ndan yapΔ±landΔ±rma | ||
| ``` | ||
| ### SunucularΔ±nΔ±zΔ± YΓΆnetin | ||
| ```bash | ||
| quicklify list # TΓΌm kayΔ±tlΔ± sunucularΔ± listele | ||
| quicklify status sunucum # Sunucu + Coolify durumunu kontrol et | ||
| quicklify status --all # TΓΌm sunucularΔ± aynΔ± anda kontrol et | ||
| quicklify ssh sunucum # Sunucuya SSH ile baΔlan | ||
| quicklify ssh sunucum -c "uptime" # Uzaktan komut Γ§alΔ±ΕtΔ±r | ||
| ``` | ||
| ### Her Εeyi GΓΌncel & SaΔlΔ±klΔ± Tutun | ||
| ```bash | ||
| quicklify update sunucum # Coolify'i son sΓΌrΓΌme gΓΌncelle | ||
| quicklify restart sunucum # Sunucuyu yeniden baΕlat | ||
| quicklify maintain sunucum # Tam bakΔ±m: durum β gΓΌncelle β saΔlΔ±k β yeniden baΕlat | ||
| quicklify maintain --all # TΓΌm sunucularΔ± sΔ±rayla bakΔ±mdan geΓ§ir | ||
| quicklify health # TΓΌm sunucular iΓ§in hΔ±zlΔ± saΔlΔ±k kontrolΓΌ | ||
| ``` | ||
| ### Yedekleme & Geri YΓΌkleme | ||
| ```bash | ||
| quicklify backup sunucum # VeritabanΔ± + yapΔ±landΔ±rma dosyalarΔ±nΔ± yedekle | ||
| quicklify backup --all # TΓΌm sunucularΔ± yedekle | ||
| quicklify restore sunucum # Yedekten geri yΓΌkle | ||
| quicklify export servers.json # Sunucu listesini dΔ±Εa aktar | ||
| quicklify import servers.json # BaΕka makinede iΓ§e aktar | ||
| ``` | ||
| ### GΓΌvenlik & AΔ | ||
| ```bash | ||
| quicklify firewall setup sunucum # UFW'yi Coolify portlarΔ±yla yapΔ±landΔ±r | ||
| quicklify domain add sunucum --domain coolify.example.com # Domain baΔla + SSL | ||
| quicklify secure setup sunucum # SSH gΓΌΓ§lendirme + fail2ban | ||
| quicklify secure audit sunucum # GΓΌvenlik denetimi ve puanlama (0-4) | ||
| ``` | ||
| ### Δ°zleme & TeΕhis | ||
| ```bash | ||
| quicklify monitor sunucum # CanlΔ± CPU/RAM/Disk kullanΔ±mΔ± | ||
| quicklify logs sunucum -f # Coolify loglarΔ±nΔ± gerΓ§ek zamanlΔ± takip et | ||
| quicklify doctor # Yerel ortamΔ± kontrol et | ||
| quicklify status sunucum --autostart # Coolify kapalΔ±ysa otomatik yeniden baΕlat | ||
| ``` | ||
| ## π¦ Kurulum | ||
| ### npx ile (Γnerilen) | ||
| ```bash | ||
| npx quicklify init | ||
| ``` | ||
| ### Global Kurulum | ||
| ```bash | ||
| npm install -g quicklify | ||
| quicklify init | ||
| ``` | ||
| ## π¬ HΔ±zlΔ± BaΕlangΔ±Γ§ | ||
| ### AdΔ±m 1: API Token AlΔ±n | ||
| **Hetzner Cloud:** | ||
| 1. [Hetzner Konsolu](https://console.hetzner.cloud/)'nu ziyaret edin | ||
| 2. Projenizi seΓ§in | ||
| 3. Security β API Tokens bΓΆlΓΌmΓΌne gidin | ||
| 4. "Generate API Token" butonuna tΔ±klayΔ±n | ||
| 5. Δ°zinleri **Read & Write** olarak ayarlayΔ±n | ||
| 6. Token'Δ± kopyalayΔ±n (yalnΔ±zca bir kez gΓΆsterilir!) | ||
| **DigitalOcean:** | ||
| 1. [DigitalOcean API](https://cloud.digitalocean.com/account/api/tokens) sayfasΔ±nΔ± ziyaret edin | ||
| 2. **Read & Write** kapsamΔ±nda yeni token oluΕturun | ||
| 3. Token'Δ± kopyalayΔ±n | ||
| **Vultr:** | ||
| 1. [Vultr API](https://my.vultr.com/settings/#settingsapi) sayfasΔ±nΔ± ziyaret edin | ||
| 2. API'yi etkinleΕtirin ve API Key'i kopyalayΔ±n | ||
| 3. IP adresinizi beyaz listeye ekleyin | ||
| **Linode (Akamai):** | ||
| 1. [Linode API Tokens](https://cloud.linode.com/profile/tokens) sayfasΔ±nΔ± ziyaret edin | ||
| 2. **Read/Write** kapsamΔ±nda Personal Access Token oluΕturun | ||
| 3. Token'Δ± kopyalayΔ±n | ||
| ### AdΔ±m 2: Coolify'i Deploy Edin | ||
| ```bash | ||
| npx quicklify init | ||
| ``` | ||
| Sizden Εunlar istenecek: | ||
| - β **API Token** - Bulut saΔlayΔ±cΔ± token'Δ±nΔ±zΔ± yapΔ±ΕtΔ±rΔ±n | ||
| - β **BΓΆlge** - Veri merkezi konumunu seΓ§in | ||
| - β **Sunucu Boyutu** - VPS ΓΆzelliklerini seΓ§in (CAX11 ΓΆnerilir) | ||
| - β **Sunucu AdΔ±** - ΓrneΔinize isim verin | ||
| ### AdΔ±m 3: Coolify'e EriΕin | ||
| Deploy sonrasΔ± (Hetzner ~4 dk, DigitalOcean ~6 dk, Vultr ~5 dk, Linode ~6 dk): | ||
| ``` | ||
| β Deployment Successful! | ||
| Server IP: 123.45.67.89 | ||
| Access Coolify: http://123.45.67.89:8000 | ||
| ``` | ||
| URL'yi ziyaret edin, admin hesabΔ±nΔ±zΔ± oluΕturun ve deploy etmeye baΕlayΔ±n! | ||
| ## π GΓΌvenlik NotlarΔ± | ||
| **Γnemli:** Port 8000, deploy sonrasΔ± herkese aΓ§Δ±ktΔ±r. | ||
| **Γnerilen sonraki adΔ±mlar:** | ||
| 1. **Tek komut kurulum:** `quicklify init --full-setup` (otomatik gΓΌvenlik duvarΔ± + SSH gΓΌΓ§lendirme) | ||
| 2. **Veya manuel:** `quicklify firewall setup my-server` | ||
| 3. **Domain ekleyin:** `quicklify domain add my-server --domain example.com` | ||
| 4. **SSH gΓΌΓ§lendirin:** `quicklify secure setup my-server` | ||
| 5. **GΓΌvenlik denetimi Γ§alΔ±ΕtΔ±rΔ±n:** `quicklify secure audit my-server` | ||
| 6. **Yedek oluΕturun:** `quicklify backup my-server` | ||
| 7. Δ°lk giriΕte **gΓΌΓ§lΓΌ bir Εifre** belirleyin | ||
| 8. DDoS korumasΔ± iΓ§in **Cloudflare** kullanmayΔ± dΓΌΕΓΌnΓΌn | ||
| ## π Desteklenen SaΔlayΔ±cΔ±lar | ||
| | SaΔlayΔ±cΔ± | Durum | BaΕlangΔ±Γ§ FiyatΔ± | Mimari | | ||
| |------------|-------|-------------------|--------| | ||
| | **Hetzner Cloud** | β Mevcut | β¬3.79/ay | ARM64 + x86 | | ||
| | **DigitalOcean** | β Mevcut | $12/ay | x86 | | ||
| | **Vultr** | β Mevcut | $6/ay | x86 | | ||
| | **Linode (Akamai)** | β Mevcut | $12/ay | x86 | | ||
| ## π‘ KullanΔ±m SenaryolarΔ± | ||
| **Εunlar iΓ§in ideal:** | ||
| - π Yan projeler ve MVP'ler | ||
| - πΌ MΓΌΕteri deploy'larΔ± (serbest Γ§alΔ±Εanlar/ajanslar) | ||
| - π DevOps ve self-hosting ΓΆΔrenmek | ||
| - πΈ Bulut barΔ±ndΔ±rma maliyetlerini dΓΌΕΓΌrmek | ||
| - π’ KΓΌΓ§ΓΌk ekip iΓ§ araΓ§larΔ± | ||
| **Alternatifleri ne zaman tercih etmeli:** | ||
| - BΓΌyΓΌk kurumsal? β Coolify Cloud veya kurumsal PaaS | ||
| - AΕΔ±rΔ± ΓΆlΓ§ek? β Kubernetes + yΓΆnetilen servisler | ||
| ## π Maliyet KarΕΔ±laΕtΔ±rmasΔ± | ||
| | ΓΓΆzΓΌm | AylΔ±k Maliyet | Kurulum SΓΌresi | YΓΆnetim | | ||
| |--------|---------------|----------------|---------| | ||
| | Vercel (Hobby) | $20+ | 5 dk | Kolay | | ||
| | Vercel (Pro) | $50+ | 5 dk | Kolay | | ||
| | Netlify (Pro) | $19+ | 5 dk | Kolay | | ||
| | **Quicklify + Hetzner** | **β¬3.79** | **~4 dk** | **Kolay** | | ||
| | **Quicklify + DigitalOcean** | **$12** | **~6 dk** | **Kolay** | | ||
| | **Quicklify + Vultr** | **$6** | **~5 dk** | **Kolay** | | ||
| | **Quicklify + Linode** | **$12** | **~6 dk** | **Kolay** | | ||
| | Manuel VPS + Coolify | β¬3.79 | 30+ dk | Zor | | ||
| **Tasarruf: Proje baΕΔ±na yΔ±lda ~$180-240!** π° | ||
| ## π Son GΓΌncellemeler | ||
| ### v1.0.0 (2026-02-23) | ||
| - **Yeni saΔlayΔ±cΔ±lar:** Vultr ve Linode (Akamai) β artΔ±k 4 bulut saΔlayΔ±cΔ± destekleniyor | ||
| - **Yeni komut:** `quicklify add` β mevcut Coolify sunucularΔ±nΔ± Quicklify yΓΆnetimine kaydedin | ||
| - **Yeni komut:** `quicklify maintain` β tam bakΔ±m dΓΆngΓΌsΓΌ (status, update, health, reboot) | ||
| - **Toplu iΕlemler:** `--all` bayraΔΔ± `status`, `update`, `backup` komutlarΔ±nda β tΓΌm sunucularda aynΔ± anda Γ§alΔ±ΕtΔ±rΔ±n | ||
| - **Otomatik yeniden baΕlatma:** `status --autostart` β sunucu Γ§alΔ±ΕΔ±yor ama Coolify kapalΔ±ysa yeniden baΕlatΔ±r | ||
| - **`collectProviderTokens()`** β her saΔlayΔ±cΔ±nΔ±n token'Δ±nΔ± tΓΌm sunucular boyunca yalnΔ±zca bir kez sorar | ||
| - 44 test paketi genelinde 937 test, %98+ statement coverage, sΔ±fΔ±r yeni baΔΔ±mlΔ±lΔ±k | ||
| ### v0.9.0 (2026-02-21) | ||
| - **YAML YapΔ±landΔ±rma:** `quicklify init --config quicklify.yml` - yapΔ±landΔ±rma dosyasΔ±ndan deploy | ||
| - **Εablonlar:** `--template starter|production|dev` - saΔlayΔ±cΔ±ya ΓΆzel ΓΆnceden tanΔ±mlΔ± sunucu yapΔ±landΔ±rmalarΔ± | ||
| - **YapΔ±landΔ±rma birleΕtirme:** Γncelik sΔ±rasΔ±: CLI bayraklarΔ± > YAML deΔerleri > Εablon varsayΔ±lanlarΔ± > interaktif sorular | ||
| - **GΓΌvenlik:** YAML'daki token alanlarΔ± algΔ±lanΔ±r ve uyarΔ±lΔ±r (token'larΔ± yapΔ±landΔ±rma dosyalarΔ±nda saklamayΔ±n) | ||
| - 1 yeni baΔΔ±mlΔ±lΔ±k (js-yaml), %98+ statement coverage ile 742 test | ||
| ### v0.8.0 (2026-02-21) | ||
| - **Yeni komutlar:** `quicklify backup`, `quicklify restore`, `quicklify export`, `quicklify import` | ||
| - **Yedekleme:** pg_dump + yapΔ±landΔ±rma arΕivi, SCP ile `~/.quicklify/backups/` dizinine indirme, manifest.json metadata | ||
| - **Geri yΓΌkleme:** YedeΔi sunucuya yΓΌkleme, Coolify'i durdur/baΕlat, DB + yapΔ±landΔ±rma geri yΓΌkleme, Γ§ift onaylΔ± gΓΌvenlik | ||
| - **DΔ±Εa/Δ°Γ§e aktarma:** `servers.json` dosyasΔ±nΔ± makineler arasΔ±nda aktarma, kopya algΔ±lama, format doΔrulama | ||
| - **`--full-setup` bayraΔΔ±:** `quicklify init --full-setup` deploy sonrasΔ± gΓΌvenlik duvarΔ± + SSH gΓΌΓ§lendirmesini otomatik yapΔ±landΔ±rΔ±r | ||
| - SΔ±fΔ±r yeni baΔΔ±mlΔ±lΔ±k, %98+ statement coverage ile 636 test | ||
| ### v0.7.0 (2026-02-20) | ||
| - **Yeni komutlar:** `quicklify firewall`, `quicklify domain`, `quicklify secure` | ||
| - **GΓΌvenlik duvarΔ± yΓΆnetimi:** UFW kurulumu, port ekleme/kaldΔ±rma, korumalΔ± port 22 gΓΌvenliΔi, Coolify port uyarΔ±larΔ± | ||
| - **Domain yΓΆnetimi:** Coolify'e domain baΔlama, DNS A kaydΔ± kontrolΓΌ, otomatik SSL | ||
| - **SSH gΓΌΓ§lendirme:** Εifre giriΕini devre dΔ±ΕΔ± bΔ±rakma, yalnΔ±zca anahtar ile root giriΕi, fail2ban, 0-4 puan gΓΌvenlik denetimi | ||
| - **Kuru Γ§alΔ±ΕtΔ±rma modu:** `--dry-run` bayraΔΔ± tΓΌm komutlarΔ± Γ§alΔ±ΕtΔ±rmadan ΓΆnizler | ||
| - SΔ±fΔ±r yeni baΔΔ±mlΔ±lΔ±k, %97+ statement coverage ile 494 test | ||
| ### v0.6.0 (2026-02-20) | ||
| - **Yeni komutlar:** `quicklify logs`, `quicklify monitor`, `quicklify health`, `quicklify doctor` | ||
| - **Log gΓΆrΓΌntΓΌleyici:** `--follow` ile gerΓ§ek zamanlΔ± akΔ±Ε ile Coolify/Docker/sistem loglarΔ±nΔ± gΓΆrΓΌntΓΌleme | ||
| - **Sunucu izleme:** CPU/RAM/Disk kullanΔ±mΔ± ve Docker konteyner listesi | ||
| - **Toplu saΔlΔ±k kontrolΓΌ:** TΓΌm kayΔ±tlΔ± sunucularΔ± yanΔ±t sΓΌreleriyle aynΔ± anda kontrol etme | ||
| - **Ortam doktoru:** Node.js, SSH, yapΔ±landΔ±rma sorunlarΔ±nΔ± yerel olarak teΕhis etme | ||
| - SΔ±fΔ±r yeni baΔΔ±mlΔ±lΔ±k, %97+ statement coverage ile 354 test | ||
| ### v0.5.0 (2026-02-20) | ||
| - **Yeni komutlar:** `quicklify config`, `quicklify ssh`, `quicklify update`, `quicklify restart` | ||
| - **VarsayΔ±lan yapΔ±landΔ±rma:** `quicklify config set` ile saΔlayΔ±cΔ±, bΓΆlge, boyut varsayΔ±lanlarΔ±nΔ± ayarlayΔ±n | ||
| - **SSH eriΕimi:** `quicklify ssh` ile sunuculara baΔlanΔ±n veya `--command` ile komut Γ§alΔ±ΕtΔ±rΔ±n | ||
| - **Coolify gΓΌncelleme:** `quicklify update` ile SSH ΓΌzerinden Coolify gΓΌncelleyin | ||
| - **Sunucu yeniden baΕlatma:** `quicklify restart` ile saΔlayΔ±cΔ± API ΓΌzerinden yeniden baΕlatma | ||
| - %97+ statement coverage ile 311 test | ||
| ### v0.4.0 (2026-02-20) | ||
| - **Yeni komutlar:** `quicklify list`, `quicklify status [sorgu]`, `quicklify destroy [sorgu]` | ||
| - **EtkileΕimsiz mod:** CI/CD iΓ§in `quicklify init --provider --token --region --size --name` | ||
| - **SaΔlΔ±k kontrolΓΌ yoklamasΔ±:** KΓΆrlemesine bekleme yerine Coolify'in hazΔ±r olduΔunu algΔ±lar | ||
| - %97+ statement coverage ile 246 test | ||
| ### v0.3.1 (2026-02-19) | ||
| - Hetzner fiyatlandΔ±rmasΔ± artΔ±k net fiyatlarΔ± (KDV hariΓ§) gΓΆsteriyor, web sitesi gΓΆsterimiyle uyumlu | ||
| - Hetzner sunucu tipleri konum baΕΔ±na gerΓ§ek uygunluk iΓ§in `/datacenters` API'sini kullanΔ±yor | ||
| - KullanΔ±mdan kaldΔ±rΔ±lan Hetzner sunucu tipleri deΔiΕtirildi (cpxβcx23/cx33) | ||
| - "Sunucu adΔ± zaten kullanΔ±lΔ±yor" hatasΔ± artΔ±k yeni ad girmek iΓ§in yΓΆnlendiriyor | ||
| - Konum devre dΔ±ΕΔ± yeniden deneme artΔ±k sunucu tipi iΓ§in tekrar soruyor | ||
| ### v0.3.0 (2026-02-19) | ||
| - DigitalOcean saΔlayΔ±cΔ± desteΔi (tam API entegrasyonu) | ||
| - Δ°nteraktif saΔlayΔ±cΔ± seΓ§imi (Hetzner / DigitalOcean) | ||
| - TΓΌm sorularda adΔ±m bazlΔ± geri navigasyon | ||
| - DigitalOcean cloud-init gΓΌvenilirliΔi iΓ§in aΔ bekleme dΓΆngΓΌsΓΌ + kurulum loglama | ||
| ## πΊοΈ Yol HaritasΔ± | ||
| ### v0.1.0 (TamamlandΔ±) | ||
| - [x] Hetzner Cloud entegrasyonu | ||
| - [x] Δ°nteraktif CLI | ||
| - [x] Otomatik Coolify kurulumu | ||
| - [x] ARM64 desteΔi | ||
| ### v0.2.0 (TamamlandΔ±) | ||
| - [x] Dinamik sunucu tipi filtreleme | ||
| - [x] Otomatik gΓΌvenlik duvarΔ± yapΔ±landΔ±rmasΔ± | ||
| - [x] Fiyat formatlama dΓΌzeltmesi | ||
| ### v0.2.x (TamamlandΔ±) | ||
| - [x] KullanΔ±mdan kaldΔ±rΔ±lan sunucu tipi filtreleme | ||
| - [x] KullanΔ±lamayan sunucu tiplerinde yeniden deneme | ||
| - [x] Dinamik deploy ΓΆzeti | ||
| - [x] Dinamik ΓΆnerilen seΓ§im | ||
| - [x] Codecov entegrasyonu ve coverage rozeti | ||
| - [x] ESLint + Prettier kod kalite araΓ§larΔ± | ||
| - [x] SΔ±fΔ±r `any` tipi - tam tip gΓΌvenliΔi | ||
| ### v0.3.0 (TamamlandΔ±) | ||
| - [x] DigitalOcean desteΔi | ||
| - [x] Δ°nteraktif saΔlayΔ±cΔ± seΓ§imi arayΓΌzΓΌ | ||
| - [x] AdΔ±m bazlΔ± geri navigasyon | ||
| - [x] Cloud-init gΓΌvenilirlik iyileΕtirmeleri (aΔ bekleme, loglama) | ||
| ### v0.4.0 (TamamlandΔ±) | ||
| - [x] Sunucu yΓΆnetim komutlarΔ± (list, status, destroy) | ||
| - [x] CI/CD iΓ§in etkileΕimsiz mod | ||
| - [x] Coolify saΔlΔ±k kontrolΓΌ yoklamasΔ± (kΓΆrlemesine bekleme yerine) | ||
| - [x] Sunucu kaydΔ± kalΔ±cΔ±lΔ±ΔΔ± (`~/.quicklify/servers.json`) | ||
| - [x] Provider arayΓΌzΓΌnde `destroyServer()` | ||
| - [x] Silme iΓ§in Γ§ift onaylΔ± gΓΌvenlik | ||
| ### v0.5.0 (TamamlandΔ±) | ||
| - [x] VarsayΔ±lan yapΔ±landΔ±rma yΓΆnetimi (`quicklify config`) | ||
| - [x] Sunuculara SSH eriΕimi (`quicklify ssh`) | ||
| - [x] SSH ΓΌzerinden Coolify gΓΌncelleme (`quicklify update`) | ||
| - [x] SaΔlayΔ±cΔ± API ΓΌzerinden sunucu yeniden baΕlatma (`quicklify restart`) | ||
| - [x] PaylaΕΔ±lan sunucu seΓ§imi ve token yardΔ±mcΔ± araΓ§larΔ± (DRY refaktΓΆr) | ||
| ### v0.6.0 (TamamlandΔ±) | ||
| - [x] Sunucu izleme - CPU/RAM/Disk kullanΔ±mΔ± (`quicklify monitor`) | ||
| - [x] Log gΓΆrΓΌntΓΌleyici - Coolify/Docker/sistem loglarΔ± (`quicklify logs`) | ||
| - [x] TΓΌm sunucular iΓ§in toplu saΔlΔ±k kontrolΓΌ (`quicklify health`) | ||
| - [x] Ortam teΕhis (`quicklify doctor`) | ||
| - [x] GerΓ§ek zamanlΔ± log takibi iΓ§in SSH akΔ±ΕΔ± | ||
| ### v0.7.0 (TamamlandΔ±) | ||
| - [x] GΓΌvenlik duvarΔ± yΓΆnetimi - UFW kurulumu, port ekleme/kaldΔ±rma (`quicklify firewall`) | ||
| - [x] Domain yΓΆnetimi - Domain baΔlama, DNS kontrolΓΌ, SSL (`quicklify domain`) | ||
| - [x] SSH gΓΌΓ§lendirme - Εifre devre dΔ±ΕΔ±, fail2ban, gΓΌvenlik denetimi (`quicklify secure`) | ||
| - [x] TΓΌm gΓΌvenlik komutlarΔ± iΓ§in kuru Γ§alΔ±ΕtΔ±rma modu | ||
| ### v0.8.0 (TamamlandΔ±) | ||
| - [x] Coolify veritabanΔ± + yapΔ±landΔ±rma yedeklemesi (`quicklify backup`) | ||
| - [x] Γift onaylΔ± yedekten geri yΓΌkleme (`quicklify restore`) | ||
| - [x] Sunucu listesi dΔ±Εa/iΓ§e aktarma (`quicklify export`, `quicklify import`) | ||
| - [x] init sΔ±rasΔ±nda otomatik gΓΌvenlik duvarΔ± + SSH gΓΌΓ§lendirme iΓ§in `--full-setup` bayraΔΔ± | ||
| ### v0.9.0 (TamamlandΔ±) | ||
| - [x] Tek komutluk deploy iΓ§in YAML yapΔ±landΔ±rma dosyasΔ± (`quicklify.yml`) | ||
| - [x] Εablon sistemi (`--template starter|production|dev`) | ||
| - [x] Γncelikli yapΔ±landΔ±rma birleΕtirme: CLI > YAML > Εablon > interaktif | ||
| ### v1.0.0 (TamamlandΔ±) | ||
| - [x] Vultr saΔlayΔ±cΔ± desteΔi | ||
| - [x] Linode (Akamai) saΔlayΔ±cΔ± desteΔi | ||
| - [x] `quicklify add` β mevcut Coolify sunucularΔ±nΔ± kaydetme | ||
| - [x] `quicklify maintain` β tam bakΔ±m dΓΆngΓΌsΓΌ | ||
| - [x] status, update, backup iΓ§in `--all` bayraΔΔ± | ||
| - [x] `status --autostart` β Coolify kapalΔ±ysa otomatik yeniden baΕlatma | ||
| ### Gelecek | ||
| - [ ] `quicklify snapshot` β bakΔ±m ΓΆncesi otomatik VPS snapshot'larΔ± | ||
| - [ ] `init --mode production` β 2 sunuculu deploy (Coolify + worker) | ||
| - [ ] Δ°nteraktif TUI kontrol paneli | ||
| ## π οΈ Teknoloji AltyapΔ±sΔ± | ||
| - **ΓalΔ±Εma OrtamΔ±:** Node.js 20+ | ||
| - **Dil:** TypeScript | ||
| - **CLI ΓatΔ±sΔ±:** Commander.js | ||
| - **Δ°nteraktif Sorular:** Inquirer.js | ||
| - **Stil:** Chalk (renkler) + Ora (yΓΌklenme animasyonlarΔ±) | ||
| - **HTTP Δ°stemcisi:** Axios | ||
| - **YAML AyrΔ±ΕtΔ±rΔ±cΔ±:** js-yaml | ||
| - **Bulut API'leri:** Hetzner Cloud API v1, DigitalOcean API v2, Vultr API v2, Linode API v4 | ||
| - **Linting:** ESLint 10 + typescript-eslint | ||
| - **Formatlama:** Prettier | ||
| ## π CLI ReferansΔ± | ||
| ### Komutlar | ||
| ```bash | ||
| # Yeni Coolify ΓΆrneΔi deploy et (interaktif) | ||
| quicklify init | ||
| # EtkileΕimsiz deploy (CI/CD uyumlu) | ||
| export HETZNER_TOKEN="your-api-token" | ||
| quicklify init --provider hetzner --region nbg1 --size cax11 --name my-server | ||
| # Otomatik gΓΌvenlik duvarΔ± + SSH gΓΌΓ§lendirme ile deploy | ||
| quicklify init --full-setup | ||
| # YAML yapΔ±landΔ±rma dosyasΔ±ndan deploy | ||
| quicklify init --config quicklify.yml | ||
| # Εablon kullanarak deploy | ||
| quicklify init --template production --provider hetzner | ||
| # TΓΌm kayΔ±tlΔ± sunucularΔ± listele | ||
| quicklify list | ||
| # Sunucu ve Coolify durumunu kontrol et | ||
| quicklify status 123.45.67.89 | ||
| quicklify status my-server | ||
| quicklify status --all # TΓΌm sunucularΔ± aynΔ± anda kontrol et | ||
| quicklify status my-server --autostart # Coolify kapalΔ±ysa yeniden baΕlat | ||
| # Sunucu sil (Γ§ift onay ile) | ||
| quicklify destroy 123.45.67.89 | ||
| quicklify destroy my-server | ||
| # Sunucuyu yerel ayarlardan kaldΔ±r (bulut sunucuyu silmeden) | ||
| quicklify remove sunucum | ||
| quicklify remove 123.45.67.89 | ||
| # VarsayΔ±lan yapΔ±landΔ±rmayΔ± yΓΆnet | ||
| quicklify config set provider hetzner | ||
| quicklify config set region nbg1 | ||
| quicklify config get provider | ||
| quicklify config list | ||
| quicklify config reset | ||
| # Sunucuya SSH ile baΔlan | ||
| quicklify ssh my-server | ||
| quicklify ssh 123.45.67.89 -c "docker ps" | ||
| # Sunucudaki Coolify'i gΓΌncelle | ||
| quicklify update my-server | ||
| quicklify update --all # TΓΌm sunucularΔ± sΔ±rayla gΓΌncelle | ||
| # Sunucuyu yeniden baΕlat | ||
| quicklify restart my-server | ||
| # Coolify loglarΔ±nΔ± gΓΆrΓΌntΓΌle (son 50 satΔ±r) | ||
| quicklify logs my-server | ||
| # Coolify loglarΔ±nΔ± gerΓ§ek zamanlΔ± takip et | ||
| quicklify logs my-server --follow | ||
| # Docker veya sistem loglarΔ±nΔ± gΓΆrΓΌntΓΌle | ||
| quicklify logs my-server --service docker --lines 100 | ||
| quicklify logs my-server --service system | ||
| # CPU/RAM/Disk kullanΔ±mΔ±nΔ± gΓΆster | ||
| quicklify monitor my-server | ||
| # Docker konteynerleriyle kullanΔ±mΔ± gΓΆster | ||
| quicklify monitor my-server --containers | ||
| # TΓΌm sunucularΔ±n saΔlΔ±ΔΔ±nΔ± kontrol et | ||
| quicklify health | ||
| # Ortam teΕhisi Γ§alΔ±ΕtΔ±r | ||
| quicklify doctor | ||
| # GΓΌvenlik duvarΔ± yΓΆnetimi | ||
| quicklify firewall setup my-server # UFW kur + Coolify portlarΔ±nΔ± aΓ§ | ||
| quicklify firewall add my-server --port 3000 # 3000/tcp portunu aΓ§ | ||
| quicklify firewall add my-server --port 53 --protocol udp # 53/udp portunu aΓ§ | ||
| quicklify firewall remove my-server --port 3000 # 3000 portunu kapat | ||
| quicklify firewall list my-server # GΓΌvenlik duvarΔ± kurallarΔ±nΔ± gΓΆster | ||
| quicklify firewall status my-server # UFW aktif/pasif durumu | ||
| quicklify firewall setup my-server --dry-run # ΓalΔ±ΕtΔ±rmadan ΓΆnizle | ||
| # Domain yΓΆnetimi | ||
| quicklify domain add my-server --domain example.com # Domain baΔla + HTTPS | ||
| quicklify domain add my-server --domain example.com --no-ssl # YalnΔ±zca HTTP | ||
| quicklify domain remove my-server # IP:8000'e geri dΓΆn | ||
| quicklify domain check my-server --domain example.com # DNS doΔrula | ||
| quicklify domain list my-server # Mevcut domain'i gΓΆster | ||
| quicklify domain add my-server --domain example.com --dry-run # Γnizle | ||
| # SSH gΓΌΓ§lendirme ve gΓΌvenlik | ||
| quicklify secure status my-server # GΓΌvenlik ayarlarΔ±nΔ± gΓΆster | ||
| quicklify secure audit my-server # GΓΌvenlik puanΔ± (0-4) | ||
| quicklify secure setup my-server # SSH gΓΌΓ§lendir + fail2ban kur | ||
| quicklify secure setup my-server --port 2222 # SSH portunu deΔiΕtir | ||
| quicklify secure setup my-server --dry-run # ΓalΔ±ΕtΔ±rmadan ΓΆnizle | ||
| # Coolify veritabanΔ± ve yapΔ±landΔ±rmasΔ±nΔ± yedekle | ||
| quicklify backup my-server # Tam yedekleme (pg_dump + yapΔ±landΔ±rma) | ||
| quicklify backup --all # TΓΌm sunucularΔ± sΔ±rayla yedekle | ||
| quicklify backup my-server --dry-run # Yedekleme adΔ±mlarΔ±nΔ± ΓΆnizle | ||
| # Yedekten geri yΓΌkle | ||
| quicklify restore my-server # Δ°nteraktif yedek seΓ§imi | ||
| quicklify restore my-server --backup 2026-02-21_15-30-45-123 # Belirli yedek | ||
| quicklify restore my-server --dry-run # Geri yΓΌkleme adΔ±mlarΔ±nΔ± ΓΆnizle | ||
| # Sunucu listesini dΔ±Εa/iΓ§e aktar | ||
| quicklify export # ./quicklify-export.json'a aktar | ||
| quicklify export /path/to/file.json # Γzel yola aktar | ||
| quicklify import /path/to/file.json # SunucularΔ± iΓ§e aktar (kopyalarΔ± atlar) | ||
| # Mevcut Coolify sunucusunu yΓΆnetime ekle | ||
| quicklify add # Δ°nteraktif (saΔlayΔ±cΔ±, token, IP, doΔrulama) | ||
| quicklify add --provider hetzner --ip 1.2.3.4 --name my-server # EtkileΕimsiz | ||
| quicklify add --provider vultr --ip 1.2.3.4 --skip-verify # Coolify kontrolΓΌnΓΌ atla | ||
| # Tam bakΔ±m dΓΆngΓΌsΓΌ Γ§alΔ±ΕtΔ±r | ||
| quicklify maintain my-server # Status β Update β Health β Reboot | ||
| quicklify maintain my-server --skip-reboot # Yeniden baΕlatma adΔ±mΔ±nΔ± atla | ||
| quicklify maintain --all # TΓΌm sunucularΔ± sΔ±rayla bakΔ±ma al | ||
| quicklify maintain my-server --dry-run # BakΔ±m adΔ±mlarΔ±nΔ± ΓΆnizle | ||
| # SΓΌrΓΌmΓΌ gΓΆster | ||
| quicklify --version | ||
| # YardΔ±mΔ± gΓΆster | ||
| quicklify --help | ||
| ``` | ||
| ### EtkileΕimsiz Mod | ||
| API token'Δ±nΔ±zΔ± ortam deΔiΕkeni olarak ayarlayΔ±n, ardΔ±ndan tΓΌm seΓ§enekleri bayrak olarak geΓ§irin: | ||
| ```bash | ||
| # Token ayarla (ΓΆnerilen - kabuk geΓ§miΕinde gΓΆrΓΌnmeyi ΓΆnler) | ||
| export HETZNER_TOKEN="your-api-token" | ||
| # veya | ||
| export DIGITALOCEAN_TOKEN="your-api-token" | ||
| # veya | ||
| export VULTR_TOKEN="your-api-token" | ||
| # veya | ||
| export LINODE_TOKEN="your-api-token" | ||
| # EtkileΕimsiz deploy | ||
| quicklify init \ | ||
| --provider hetzner \ | ||
| --region nbg1 \ | ||
| --size cax11 \ | ||
| --name production-coolify | ||
| ``` | ||
| Token Γ§ΓΆzΓΌmleme sΔ±rasΔ±: ortam deΔiΕkeni > interaktif soru. `--token` bayraΔΔ± mevcuttur ancak kabuk geΓ§miΕinde token'Δ± aΓ§Δ±Δa Γ§Δ±kardΔ±ΔΔ± iΓ§in **ΓΆnerilmez**. | ||
| BazΔ± bayraklar eksikse, yalnΔ±zca eksik deΔerler interaktif olarak sorulur. | ||
| ### YAML YapΔ±landΔ±rma DosyasΔ± | ||
| Tekrarlanabilir deploy'lar iΓ§in bir `quicklify.yml` dosyasΔ± oluΕturun: | ||
| ```yaml | ||
| # quicklify.yml | ||
| template: production | ||
| provider: hetzner | ||
| region: nbg1 | ||
| size: cx33 | ||
| name: my-coolify-prod | ||
| fullSetup: true | ||
| ``` | ||
| ArdΔ±ndan deploy edin: | ||
| ```bash | ||
| export HETZNER_TOKEN="your-api-token" | ||
| quicklify init --config quicklify.yml | ||
| ``` | ||
| **GΓΌvenlik:** API token'larΔ±nΔ± yapΔ±landΔ±rma dosyalarΔ±nda asla saklamayΔ±n. Ortam deΔiΕkenlerini kullanΔ±n (`export HETZNER_TOKEN=...`). | ||
| **YapΔ±landΔ±rma birleΕtirme ΓΆnceliΔi:** CLI bayraklarΔ± > YAML deΔerleri > Εablon varsayΔ±lanlarΔ± > interaktif sorular. | ||
| ### Εablonlar | ||
| Εablonlar saΔlayΔ±cΔ±ya ΓΆzel makul varsayΔ±lanlar sunar: | ||
| | Εablon | Hetzner | DigitalOcean | Vultr | Linode | Tam Kurulum | | ||
| |--------|---------|--------------|-------|--------|-------------| | ||
| | `starter` | nbg1 / cax11 (β¬3.79) | fra1 / s-2vcpu-2gb ($12) | ewr / vc2-2c-4gb ($24) | us-east / g6-standard-2 ($12) | HayΔ±r | | ||
| | `production` | nbg1 / cx33 (β¬5.49) | fra1 / s-2vcpu-4gb ($24) | ewr / vc2-4c-8gb ($48) | us-east / g6-standard-4 ($36) | Evet | | ||
| | `dev` | nbg1 / cax11 (β¬3.79) | fra1 / s-2vcpu-2gb ($12) | ewr / vc2-2c-4gb ($24) | us-east / g6-standard-2 ($12) | HayΔ±r | | ||
| ```bash | ||
| # HΔ±zlΔ± production deploy | ||
| export HETZNER_TOKEN="your-api-token" | ||
| quicklify init --template production --provider hetzner --name my-server | ||
| # Test iΓ§in ucuz starter | ||
| export DIGITALOCEAN_TOKEN="your-api-token" | ||
| quicklify init --template starter --provider digitalocean --name test-server | ||
| ``` | ||
| ### Δ°nteraktif Sorular | ||
| 1. **SaΔlayΔ±cΔ± SeΓ§imi** - Hetzner Cloud, DigitalOcean, Vultr veya Linode seΓ§in | ||
| 2. **API Token** - Devam etmeden ΓΆnce doΔrulanΔ±r | ||
| 3. **BΓΆlge SeΓ§imi** - Tercih ettiΔiniz veri merkezini seΓ§in | ||
| 4. **Sunucu Boyutu** - Coolify gereksinimleri (2GB RAM, 2 vCPU) ile filtrelenir | ||
| 5. **Sunucu AdΔ±** - Format doΔrulama (kΓΌΓ§ΓΌk harf, alfanΓΌmerik, kΔ±sa Γ§izgi) | ||
| 6. **Onay** - Deploy ΓΆncesi ΓΆzet inceleme | ||
| TΓΌm adΔ±mlar ΓΆnceki adΔ±ma dΓΆnmek iΓ§in **β Geri** navigasyonunu destekler. | ||
| ## π§ͺ Testler | ||
| ### Testleri ΓalΔ±ΕtΔ±rma | ||
| ```bash | ||
| # TΓΌm testleri Γ§alΔ±ΕtΔ±r | ||
| npm test | ||
| # Δ°zleme modunda testleri Γ§alΔ±ΕtΔ±r | ||
| npm run test:watch | ||
| # Coverage raporu ile testleri Γ§alΔ±ΕtΔ±r | ||
| npm run test:coverage | ||
| # Kodu lint'le | ||
| npm run lint | ||
| # Kodu formatla | ||
| npm run format | ||
| ``` | ||
| ### Test YapΔ±sΔ± | ||
| ``` | ||
| tests/ | ||
| βββ __mocks__/ # Mock modΓΌlleri (axios, inquirer, ora, chalk) | ||
| βββ unit/ # Birim testleri | ||
| β βββ cloudInit.test.ts | ||
| β βββ config.test.ts # Config CRUD iΕlemleri | ||
| β βββ config-edge.test.ts # Config uΓ§ durumlarΔ± (bozulma, boΕ dosyalar) | ||
| β βββ config-command.test.ts # Config komut alt komutlarΔ± | ||
| β βββ defaults.test.ts # VarsayΔ±lan config CRUD | ||
| β βββ destroy.test.ts # Destroy komutu birim testleri | ||
| β βββ doctor.test.ts # Doctor komutu testleri | ||
| β βββ domain.test.ts # Domain komutu testleri | ||
| β βββ firewall.test.ts # Firewall komutu testleri | ||
| β βββ health-command.test.ts # Health komutu testleri | ||
| β βββ healthCheck.test.ts # SaΔlΔ±k kontrolΓΌ yoklama testleri | ||
| β βββ healthCheck-edge.test.ts # SaΔlΔ±k kontrolΓΌ uΓ§ durumlarΔ± (302, 401, 500) | ||
| β βββ list.test.ts # List komutu birim testleri | ||
| β βββ logger.test.ts | ||
| β βββ logs.test.ts # Logs komutu testleri | ||
| β βββ monitor.test.ts # Monitor komutu testleri | ||
| β βββ prompts.test.ts | ||
| β βββ providerFactory.test.ts # Provider factory testleri | ||
| β βββ restart.test.ts # Restart komutu testleri | ||
| β βββ secure.test.ts # Secure komutu testleri | ||
| β βββ backup.test.ts # Backup komutu testleri | ||
| β βββ restore.test.ts # Restore komutu testleri | ||
| β βββ transfer.test.ts # Export/Import komutu testleri | ||
| β βββ templates.test.ts # Εablon tanΔ±mlarΔ± testleri | ||
| β βββ yamlConfig.test.ts # YAML yapΔ±landΔ±rma yΓΌkleyici testleri | ||
| β βββ configMerge.test.ts # YapΔ±landΔ±rma birleΕtirme mantΔ±ΔΔ± testleri | ||
| β βββ init-fullsetup.test.ts # Init --full-setup testleri | ||
| β βββ serverSelect.test.ts # Sunucu seΓ§im yardΔ±mcΔ± testleri | ||
| β βββ ssh-command.test.ts # SSH komutu testleri | ||
| β βββ ssh-utils.test.ts # SSH yardΔ±mcΔ± testleri | ||
| β βββ status.test.ts # Status komutu birim testleri | ||
| β βββ update.test.ts # Update komutu testleri | ||
| β βββ add.test.ts # Add komutu testleri | ||
| β βββ maintain.test.ts # Maintain komutu testleri | ||
| β βββ validators.test.ts | ||
| βββ integration/ # Entegrasyon testleri (saΔlayΔ±cΔ± API Γ§aΔrΔ±larΔ±) | ||
| β βββ hetzner.test.ts # destroyServer testleri dahil | ||
| β βββ digitalocean.test.ts # destroyServer testleri dahil | ||
| β βββ vultr.test.ts # Vultr saΔlayΔ±cΔ± testleri | ||
| β βββ linode.test.ts # Linode saΔlayΔ±cΔ± testleri | ||
| βββ e2e/ # UΓ§tan uca testler (tam komut akΔ±ΕlarΔ±) | ||
| βββ init.test.ts | ||
| βββ init-noninteractive.test.ts # EtkileΕimsiz mod E2E | ||
| βββ init-config.test.ts # YAML yapΔ±landΔ±rma + Εablon E2E | ||
| βββ status.test.ts # Status komutu E2E | ||
| βββ destroy.test.ts # Destroy komutu E2E | ||
| ``` | ||
| ### CI/CD | ||
| Testler her push/PR'da GitHub Actions aracΔ±lΔ±ΔΔ±yla otomatik Γ§alΔ±ΕΔ±r: | ||
| - **Δ°Εletim Sistemi:** Ubuntu, macOS, Windows | ||
| - **Node.js:** 20, 22 | ||
| ### Coverage | ||
| Mevcut coverage: **%98+ statements/lines**, **%91+ branches**, **%98+ functions**. 44 test paketi genelinde 937 test. | ||
| ## π§ Sorun Giderme | ||
| **"Invalid API token"** | ||
| - Token'Δ±n Read & Write izinlerine sahip olduΔundan emin olun | ||
| - Kopyalarken fazla boΕluk olup olmadΔ±ΔΔ±nΔ± kontrol edin | ||
| - Gerekirse token'Δ± yeniden oluΕturun | ||
| **"Server creation failed"** | ||
| - Bulut hesabΔ±nda yeterli bakiye olduΔunu doΔrulayΔ±n | ||
| - Hesap limitlerini kontrol edin (yeni hesaplarΔ±n kΔ±sΔ±tlamalarΔ± olabilir) | ||
| - FarklΔ± bΓΆlge veya sunucu boyutu deneyin | ||
| **"Cannot access Coolify UI"** | ||
| - 3-5 dakika daha bekleyin (Coolify baΕlatma zaman alΔ±r) | ||
| - Kurulum logunu kontrol edin: `ssh root@YOUR_IP "cat /var/log/quicklify-install.log | tail -20"` | ||
| - GΓΌvenlik duvarΔ± ayarlarΔ±nΔ± kontrol edin (otomatik yapΔ±landΔ±rΔ±lmalΔ±dΔ±r) | ||
| - Bulut konsolunda sunucunun Γ§alΔ±ΕtΔ±ΔΔ±nΔ± doΔrulayΔ±n | ||
| ## π€ KatkΔ±da Bulunma | ||
| KatkΔ±larΔ±nΔ±zΔ± bekliyoruz! GeliΕtirme ortamΔ± kurulumu, kod kurallarΔ± ve PR sΓΌreci iΓ§in [CONTRIBUTING.md](CONTRIBUTING.md) dosyasΔ±na bakΔ±n. | ||
| **KatkΔ± alanlarΔ±:** | ||
| - Yeni bulut saΔlayΔ±cΔ± entegrasyonlarΔ± | ||
| - CLI iyileΕtirmeleri | ||
| - DokΓΌmantasyon | ||
| - Hata dΓΌzeltmeleri | ||
| ## π Lisans | ||
| MIT Β© 2026 Γmer FC | ||
| Detaylar iΓ§in [LICENSE](LICENSE) dosyasΔ±na bakΔ±n. | ||
| ## π TeΕekkΓΌrler | ||
| - [Coolify](https://coolify.io/) - Harika aΓ§Δ±k kaynaklΔ± PaaS | ||
| - [Hetzner](https://www.hetzner.com/) - Uygun fiyatlΔ±, gΓΌvenilir bulut altyapΔ±sΔ± | ||
| - [DigitalOcean](https://www.digitalocean.com/) - GeliΕtirici dostu bulut platformu | ||
| - [Vultr](https://www.vultr.com/) - YΓΌksek performanslΔ± bulut biliΕim | ||
| - [Linode](https://www.linode.com/) - Basit, uygun fiyatlΔ± bulut biliΕim | ||
| - TΓΌm katkΔ±da bulunanlar ve kullanΔ±cΔ±lar! | ||
| ## π¬ Destek & Topluluk | ||
| - π **Hata RaporlarΔ±:** [GitHub Issues](https://github.com/omrfc/quicklify/issues) | ||
| - π‘ **Γzellik Δ°stekleri:** [GitHub Discussions](https://github.com/omrfc/quicklify/discussions) | ||
| - π¦ **GΓΌncellemeler:** [@omrfc](https://twitter.com/omrfc) | ||
| - π **Web Sitesi:** [quicklify.omrfc.dev](https://quicklify.omrfc.dev) | ||
| ## β DesteΔinizi GΓΆsterin | ||
| Quicklify size yardΔ±mcΔ± olduysa, lΓΌtfen: | ||
| - β Bu depoyu yΔ±ldΔ±zlayΔ±n | ||
| - π¦ Twitter'da paylaΕΔ±n | ||
| - π Blog yazΔ±sΔ± yazΔ±n | ||
| - π¬ ArkadaΕlarΔ±nΔ±za anlatΔ±n! | ||
| --- | ||
| **[@omrfc](https://github.com/omrfc) tarafΔ±ndan β€οΈ ile yapΔ±lmΔ±ΕtΔ±r** | ||
| *GeliΕtiricilerin zamanΔ±nΔ± kurtarΔ±yor, her seferinde bir deploy.* β‘ |
@@ -14,3 +14,4 @@ export declare function formatTimestamp(date: Date): string; | ||
| dryRun?: boolean; | ||
| all?: boolean; | ||
| }): Promise<void>; | ||
| //# sourceMappingURL=backup.d.ts.map |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"backup.d.ts","sourceRoot":"","sources":["../../src/commands/backup.ts"],"names":[],"mappings":"AAWA,wBAAgB,eAAe,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAElD;AAED,wBAAgB,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAEvD;AAED,wBAAgB,kBAAkB,IAAI,MAAM,CAE3C;AAED,wBAAgB,qBAAqB,IAAI,MAAM,CAE9C;AAED,wBAAgB,mBAAmB,IAAI,MAAM,CAE5C;AAED,wBAAgB,0BAA0B,IAAI,MAAM,CAEnD;AAED,wBAAgB,WAAW,CACzB,EAAE,EAAE,MAAM,EACV,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAc3C;AAED,wBAAgB,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE,CAWxD;AAID,wBAAsB,aAAa,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA0HjG"} | ||
| {"version":3,"file":"backup.d.ts","sourceRoot":"","sources":["../../src/commands/backup.ts"],"names":[],"mappings":"AAYA,wBAAgB,eAAe,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAElD;AAED,wBAAgB,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAEvD;AAED,wBAAgB,kBAAkB,IAAI,MAAM,CAE3C;AAED,wBAAgB,qBAAqB,IAAI,MAAM,CAE9C;AAED,wBAAgB,mBAAmB,IAAI,MAAM,CAE5C;AAED,wBAAgB,0BAA0B,IAAI,MAAM,CAEnD;AAED,wBAAgB,WAAW,CACzB,EAAE,EAAE,MAAM,EACV,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAc3C;AAED,wBAAgB,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE,CAWxD;AAyHD,wBAAsB,aAAa,CACjC,KAAK,CAAC,EAAE,MAAM,EACd,OAAO,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,GAAG,CAAC,EAAE,OAAO,CAAA;CAAE,GAC5C,OAAO,CAAC,IAAI,CAAC,CA8Hf"} |
+104
-1
| import { mkdirSync, existsSync, writeFileSync, readdirSync } from "fs"; | ||
| import { join } from "path"; | ||
| import { spawn } from "child_process"; | ||
| import { getServers } from "../utils/config.js"; | ||
| import { resolveServer } from "../utils/serverSelect.js"; | ||
@@ -25,3 +26,3 @@ import { checkSshAvailable, sshExec } from "../utils/ssh.js"; | ||
| export function buildCoolifyVersionCommand() { | ||
| return "docker exec coolify cat /var/www/html/.version 2>/dev/null || echo unknown"; | ||
| return "docker inspect coolify --format '{{.Config.Image}}' 2>/dev/null | sed 's/.*://' || echo unknown"; | ||
| } | ||
@@ -53,4 +54,106 @@ export function scpDownload(ip, remotePath, localPath) { | ||
| } | ||
| // Single server backup (extracted for reuse) | ||
| async function backupSingleServer(server, dryRun) { | ||
| const timestamp = formatTimestamp(new Date()); | ||
| const backupPath = join(getBackupDir(server.name), timestamp); | ||
| if (dryRun) { | ||
| logger.info(`[${server.name}] Dry run - would backup to: ${backupPath}`); | ||
| return true; | ||
| } | ||
| const versionResult = await sshExec(server.ip, buildCoolifyVersionCommand()); | ||
| const coolifyVersion = versionResult.code === 0 ? versionResult.stdout.trim() : "unknown"; | ||
| const dbSpinner = createSpinner(`[${server.name}] Creating database backup...`); | ||
| dbSpinner.start(); | ||
| try { | ||
| const dbResult = await sshExec(server.ip, buildPgDumpCommand()); | ||
| if (dbResult.code !== 0) { | ||
| dbSpinner.fail(`[${server.name}] Database backup failed`); | ||
| return false; | ||
| } | ||
| dbSpinner.succeed(`[${server.name}] Database backup created`); | ||
| } | ||
| catch { | ||
| dbSpinner.fail(`[${server.name}] Database backup failed`); | ||
| return false; | ||
| } | ||
| const configSpinner = createSpinner(`[${server.name}] Creating config backup...`); | ||
| configSpinner.start(); | ||
| try { | ||
| const configResult = await sshExec(server.ip, buildConfigTarCommand()); | ||
| if (configResult.code !== 0) { | ||
| configSpinner.fail(`[${server.name}] Config backup failed`); | ||
| return false; | ||
| } | ||
| configSpinner.succeed(`[${server.name}] Config backup created`); | ||
| } | ||
| catch { | ||
| configSpinner.fail(`[${server.name}] Config backup failed`); | ||
| return false; | ||
| } | ||
| mkdirSync(backupPath, { recursive: true }); | ||
| const dlSpinner = createSpinner(`[${server.name}] Downloading backup files...`); | ||
| dlSpinner.start(); | ||
| try { | ||
| const dbDl = await scpDownload(server.ip, "/tmp/coolify-backup.sql.gz", join(backupPath, "coolify-backup.sql.gz")); | ||
| if (dbDl.code !== 0) { | ||
| dlSpinner.fail(`[${server.name}] Download failed`); | ||
| return false; | ||
| } | ||
| const configDl = await scpDownload(server.ip, "/tmp/coolify-config.tar.gz", join(backupPath, "coolify-config.tar.gz")); | ||
| if (configDl.code !== 0) { | ||
| dlSpinner.fail(`[${server.name}] Download failed`); | ||
| return false; | ||
| } | ||
| dlSpinner.succeed(`[${server.name}] Backup files downloaded`); | ||
| } | ||
| catch { | ||
| dlSpinner.fail(`[${server.name}] Download failed`); | ||
| return false; | ||
| } | ||
| const manifest = { | ||
| serverName: server.name, | ||
| serverIp: server.ip, | ||
| provider: server.provider, | ||
| timestamp, | ||
| coolifyVersion, | ||
| files: ["coolify-backup.sql.gz", "coolify-config.tar.gz"], | ||
| }; | ||
| writeFileSync(join(backupPath, "manifest.json"), JSON.stringify(manifest, null, 2)); | ||
| await sshExec(server.ip, buildCleanupCommand()).catch(() => { }); | ||
| logger.success(`[${server.name}] Backup saved to ${backupPath}`); | ||
| return true; | ||
| } | ||
| async function backupAll(dryRun) { | ||
| if (!checkSshAvailable()) { | ||
| logger.error("SSH client not found. Please install OpenSSH."); | ||
| return; | ||
| } | ||
| const servers = getServers(); | ||
| if (servers.length === 0) { | ||
| logger.info("No servers found. Deploy one with: quicklify init"); | ||
| return; | ||
| } | ||
| logger.title(`Backing up ${servers.length} server(s)...`); | ||
| let succeeded = 0; | ||
| let failed = 0; | ||
| for (const server of servers) { | ||
| const ok = await backupSingleServer(server, dryRun); | ||
| if (ok) | ||
| succeeded++; | ||
| else | ||
| failed++; | ||
| console.log(); | ||
| } | ||
| if (failed === 0) { | ||
| logger.success(`All ${succeeded} server(s) backed up successfully!`); | ||
| } | ||
| else { | ||
| logger.warning(`${succeeded} succeeded, ${failed} failed`); | ||
| } | ||
| } | ||
| // Command | ||
| export async function backupCommand(query, options) { | ||
| if (options?.all) { | ||
| return backupAll(options?.dryRun || false); | ||
| } | ||
| if (!checkSshAvailable()) { | ||
@@ -57,0 +160,0 @@ logger.error("SSH client not found. Please install OpenSSH."); |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"backup.js","sourceRoot":"","sources":["../../src/commands/backup.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"backup.js","sourceRoot":"","sources":["../../src/commands/backup.ts"],"names":[],"mappings":"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"} |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAsBrD,wBAAsB,WAAW,CAAC,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CA+M1E"} | ||
| {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAsBrD,wBAAsB,WAAW,CAAC,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAqN1E"} |
@@ -67,4 +67,4 @@ import { execSync } from "child_process"; | ||
| if (options.provider) { | ||
| if (!["hetzner", "digitalocean"].includes(options.provider)) { | ||
| logger.error(`Invalid provider: ${options.provider}. Use "hetzner" or "digitalocean".`); | ||
| if (!["hetzner", "digitalocean", "vultr", "linode"].includes(options.provider)) { | ||
| logger.error(`Invalid provider: ${options.provider}. Use "hetzner", "digitalocean", "vultr", or "linode".`); | ||
| process.exit(1); | ||
@@ -102,2 +102,8 @@ return; | ||
| } | ||
| else if (providerChoice === "vultr" && process.env.VULTR_TOKEN) { | ||
| apiToken = process.env.VULTR_TOKEN; | ||
| } | ||
| else if (providerChoice === "linode" && process.env.LINODE_TOKEN) { | ||
| apiToken = process.env.LINODE_TOKEN; | ||
| } | ||
| else { | ||
@@ -338,6 +344,14 @@ const config = await getDeploymentConfig(provider); | ||
| statusSpinner.succeed("Server is running"); | ||
| // Refresh server details to get final IP (DO assigns IP after boot) | ||
| if (server.ip === "pending") { | ||
| const details = await providerWithToken.getServerDetails(server.id); | ||
| server.ip = details.ip; | ||
| // Refresh server details to get final IP (DO/Vultr assign IP after boot) | ||
| if (server.ip === "pending" || server.ip === "0.0.0.0") { | ||
| let refreshAttempts = 0; | ||
| while (refreshAttempts < 10) { | ||
| const details = await providerWithToken.getServerDetails(server.id); | ||
| if (details.ip && details.ip !== "0.0.0.0" && details.ip !== "pending") { | ||
| server.ip = details.ip; | ||
| break; | ||
| } | ||
| refreshAttempts++; | ||
| await new Promise((resolve) => setTimeout(resolve, 3000)); | ||
| } | ||
| } | ||
@@ -344,0 +358,0 @@ // Health check polling instead of blind wait |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"} |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"restart.d.ts","sourceRoot":"","sources":["../../src/commands/restart.ts"],"names":[],"mappings":"AAKA,wBAAsB,cAAc,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA0DlE"} | ||
| {"version":3,"file":"restart.d.ts","sourceRoot":"","sources":["../../src/commands/restart.ts"],"names":[],"mappings":"AAKA,wBAAsB,cAAc,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAgElE"} |
@@ -25,2 +25,6 @@ import inquirer from "inquirer"; | ||
| try { | ||
| if (server.id.startsWith("manual-")) { | ||
| spinner.fail("Cannot reboot manually added server via API. Use SSH: ssh root@" + server.ip + " reboot"); | ||
| return; | ||
| } | ||
| const provider = createProviderWithToken(server.provider, apiToken); | ||
@@ -27,0 +31,0 @@ await provider.rebootServer(server.id); |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"restart.js","sourceRoot":"","sources":["../../src/commands/restart.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AACzE,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AACtE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAE3D,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,KAAc;IACjD,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,KAAK,EAAE,6BAA6B,CAAC,CAAC;IACzE,IAAI,CAAC,MAAM;QAAE,OAAO;IAEpB,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC;QACxC;YACE,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,mBAAmB,MAAM,CAAC,IAAI,MAAM,MAAM,CAAC,EAAE,oCAAoC;YAC1F,OAAO,EAAE,KAAK;SACf;KACF,CAAC,CAAC;IAEH,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QAClC,OAAO;IACT,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAEvD,MAAM,OAAO,GAAG,aAAa,CAAC,qBAAqB,CAAC,CAAC;IACrD,OAAO,CAAC,KAAK,EAAE,CAAC;IAEhB,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,uBAAuB,CAAC,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QACpE,MAAM,QAAQ,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACvC,OAAO,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;QAEpC,MAAM,WAAW,GAAG,aAAa,CAAC,2CAA2C,CAAC,CAAC;QAC/E,WAAW,CAAC,KAAK,EAAE,CAAC;QAEpB,IAAI,QAAQ,GAAG,CAAC,CAAC;QACjB,MAAM,WAAW,GAAG,EAAE,CAAC;QAEvB,OAAO,QAAQ,GAAG,WAAW,EAAE,CAAC;YAC9B,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;YAC1D,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBACzD,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;oBACzB,WAAW,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;oBACzC,OAAO,CAAC,GAAG,EAAE,CAAC;oBACd,MAAM,CAAC,OAAO,CAAC,WAAW,MAAM,CAAC,IAAI,0BAA0B,CAAC,CAAC;oBACjE,MAAM,CAAC,IAAI,CAAC,0BAA0B,MAAM,CAAC,EAAE,OAAO,CAAC,CAAC;oBACxD,OAAO;gBACT,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,wDAAwD;YAC1D,CAAC;YACD,QAAQ,EAAE,CAAC;YACX,WAAW,CAAC,IAAI,GAAG,0BAA0B,QAAQ,IAAI,WAAW,GAAG,CAAC;QAC1E,CAAC;QAED,WAAW,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;QACrD,MAAM,CAAC,OAAO,CAAC,8EAA8E,CAAC,CAAC;IACjG,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,OAAO,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;QACxC,MAAM,CAAC,KAAK,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IACvE,CAAC;AACH,CAAC"} | ||
| {"version":3,"file":"restart.js","sourceRoot":"","sources":["../../src/commands/restart.ts"],"names":[],"mappings":"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"} |
@@ -17,3 +17,3 @@ import { readFileSync, existsSync } from "fs"; | ||
| export function buildStartDbCommand() { | ||
| return "cd /data/coolify/source && docker compose -f docker-compose.yml -f docker-compose.prod.yml up -d coolify-db && sleep 3"; | ||
| return "cd /data/coolify/source && docker compose -f docker-compose.yml -f docker-compose.prod.yml up -d postgres && sleep 3"; | ||
| } | ||
@@ -20,0 +20,0 @@ export function buildRestoreDbCommand() { |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"restore.js","sourceRoot":"","sources":["../../src/commands/restore.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"restore.js","sourceRoot":"","sources":["../../src/commands/restore.ts"],"names":[],"mappings":"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"} |
@@ -1,2 +0,7 @@ | ||
| export declare function statusCommand(query?: string): Promise<void>; | ||
| interface StatusOptions { | ||
| all?: boolean; | ||
| autostart?: boolean; | ||
| } | ||
| export declare function statusCommand(query?: string, options?: StatusOptions): Promise<void>; | ||
| export {}; | ||
| //# sourceMappingURL=status.d.ts.map |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"AAKA,wBAAsB,aAAa,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAkDjE"} | ||
| {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"AAWA,UAAU,aAAa;IACrB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAsHD,wBAAsB,aAAa,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CA8D1F"} |
+120
-7
| import axios from "axios"; | ||
| import { resolveServer, promptApiToken } from "../utils/serverSelect.js"; | ||
| import { getServers } from "../utils/config.js"; | ||
| import { resolveServer, promptApiToken, collectProviderTokens } from "../utils/serverSelect.js"; | ||
| import { createProviderWithToken } from "../utils/providerFactory.js"; | ||
| import { checkSshAvailable, sshExec } from "../utils/ssh.js"; | ||
| import { logger, createSpinner } from "../utils/logger.js"; | ||
| export async function statusCommand(query) { | ||
| const COOLIFY_RESTART_CMD = "cd /data/coolify/source && docker compose -f docker-compose.yml -f docker-compose.prod.yml restart coolify"; | ||
| async function checkSingleServer(server, apiToken) { | ||
| try { | ||
| let serverStatus; | ||
| if (server.id.startsWith("manual-")) { | ||
| serverStatus = "unknown (manual)"; | ||
| } | ||
| else { | ||
| const provider = createProviderWithToken(server.provider, apiToken); | ||
| serverStatus = await provider.getServerStatus(server.id); | ||
| } | ||
| let coolifyStatus = "unknown"; | ||
| try { | ||
| await axios.get(`http://${server.ip}:8000`, { | ||
| timeout: 5000, | ||
| validateStatus: () => true, | ||
| }); | ||
| coolifyStatus = "running"; | ||
| } | ||
| catch { | ||
| coolifyStatus = "not reachable"; | ||
| } | ||
| return { server, serverStatus, coolifyStatus }; | ||
| } | ||
| catch (error) { | ||
| return { | ||
| server, | ||
| serverStatus: "error", | ||
| coolifyStatus: "unknown", | ||
| error: error instanceof Error ? error.message : String(error), | ||
| }; | ||
| } | ||
| } | ||
| async function statusAll() { | ||
| const servers = getServers(); | ||
| if (servers.length === 0) { | ||
| logger.info("No servers found. Deploy one with: quicklify init"); | ||
| return; | ||
| } | ||
| const tokenMap = await collectProviderTokens(servers); | ||
| const spinner = createSpinner(`Checking status of ${servers.length} server(s)...`); | ||
| spinner.start(); | ||
| const results = await Promise.all(servers.map((s) => checkSingleServer(s, tokenMap.get(s.provider)))); | ||
| spinner.succeed("Status check complete"); | ||
| console.log(); | ||
| // Table header | ||
| const header = `${"Name".padEnd(20)} ${"IP".padEnd(16)} ${"Provider".padEnd(14)} ${"Server".padEnd(12)} ${"Coolify".padEnd(14)}`; | ||
| console.log(header); | ||
| console.log("β".repeat(header.length)); | ||
| for (const r of results) { | ||
| const serverStr = r.error ? "error" : r.serverStatus; | ||
| const coolifyStr = r.coolifyStatus; | ||
| console.log(`${r.server.name.padEnd(20)} ${r.server.ip.padEnd(16)} ${r.server.provider.padEnd(14)} ${serverStr.padEnd(12)} ${coolifyStr.padEnd(14)}`); | ||
| } | ||
| console.log(); | ||
| const running = results.filter((r) => r.coolifyStatus === "running").length; | ||
| const errors = results.filter((r) => r.error).length; | ||
| if (errors > 0) { | ||
| logger.warning(`${running} running, ${errors} error(s)`); | ||
| } | ||
| else { | ||
| logger.success(`${running}/${results.length} server(s) with Coolify running`); | ||
| } | ||
| } | ||
| async function autostartCoolify(server) { | ||
| if (!checkSshAvailable()) { | ||
| logger.warning("SSH not available. Cannot autostart Coolify."); | ||
| return; | ||
| } | ||
| const spinner = createSpinner("Restarting Coolify via SSH..."); | ||
| spinner.start(); | ||
| try { | ||
| const result = await sshExec(server.ip, COOLIFY_RESTART_CMD); | ||
| if (result.code === 0) { | ||
| spinner.succeed("Coolify restart command sent"); | ||
| // Wait and check again | ||
| await new Promise((resolve) => setTimeout(resolve, 5000)); | ||
| try { | ||
| await axios.get(`http://${server.ip}:8000`, { | ||
| timeout: 5000, | ||
| validateStatus: () => true, | ||
| }); | ||
| logger.success("Coolify is now running!"); | ||
| } | ||
| catch { | ||
| logger.warning("Coolify may still be starting. Check again in a moment."); | ||
| } | ||
| } | ||
| else { | ||
| spinner.fail("Coolify restart failed"); | ||
| if (result.stderr) | ||
| logger.error(result.stderr); | ||
| } | ||
| } | ||
| catch (error) { | ||
| spinner.fail("Failed to restart Coolify"); | ||
| logger.error(error instanceof Error ? error.message : String(error)); | ||
| } | ||
| } | ||
| export async function statusCommand(query, options) { | ||
| if (options?.all) { | ||
| return statusAll(); | ||
| } | ||
| const server = await resolveServer(query); | ||
| if (!server) | ||
| return; | ||
| // Ask for API token | ||
| const apiToken = await promptApiToken(server.provider); | ||
| // Ask for API token (skip for manually added servers) | ||
| const apiToken = server.id.startsWith("manual-") ? "" : await promptApiToken(server.provider); | ||
| const spinner = createSpinner("Checking server status..."); | ||
| spinner.start(); | ||
| try { | ||
| const provider = createProviderWithToken(server.provider, apiToken); | ||
| // Check server status via provider API | ||
| const serverStatus = await provider.getServerStatus(server.id); | ||
| let serverStatus; | ||
| if (server.id.startsWith("manual-")) { | ||
| serverStatus = "unknown (manual)"; | ||
| } | ||
| else { | ||
| const provider = createProviderWithToken(server.provider, apiToken); | ||
| serverStatus = await provider.getServerStatus(server.id); | ||
| } | ||
| // Check Coolify health | ||
@@ -45,2 +154,6 @@ let coolifyStatus = "unknown"; | ||
| logger.warning("Coolify is not reachable. It may still be installing."); | ||
| // Autostart: restart Coolify if server is running but Coolify is down | ||
| if (options?.autostart && serverStatus === "running") { | ||
| await autostartCoolify(server); | ||
| } | ||
| } | ||
@@ -47,0 +160,0 @@ } |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AACzE,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AACtE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAE3D,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,KAAc;IAChD,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,KAAK,CAAC,CAAC;IAC1C,IAAI,CAAC,MAAM;QAAE,OAAO;IAEpB,oBAAoB;IACpB,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAEvD,MAAM,OAAO,GAAG,aAAa,CAAC,2BAA2B,CAAC,CAAC;IAC3D,OAAO,CAAC,KAAK,EAAE,CAAC;IAEhB,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,uBAAuB,CAAC,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAEpE,uCAAuC;QACvC,MAAM,YAAY,GAAG,MAAM,QAAQ,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAE/D,uBAAuB;QACvB,IAAI,aAAa,GAAG,SAAS,CAAC;QAC9B,IAAI,CAAC;YACH,MAAM,KAAK,CAAC,GAAG,CAAC,UAAU,MAAM,CAAC,EAAE,OAAO,EAAE;gBAC1C,OAAO,EAAE,IAAI;gBACb,cAAc,EAAE,GAAG,EAAE,CAAC,IAAI;aAC3B,CAAC,CAAC;YACH,aAAa,GAAG,SAAS,CAAC;QAC5B,CAAC;QAAC,MAAM,CAAC;YACP,aAAa,GAAG,eAAe,CAAC;QAClC,CAAC;QAED,OAAO,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;QAEpC,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,MAAM,CAAC,IAAI,CAAC,mBAAmB,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QAC9C,MAAM,CAAC,IAAI,CAAC,mBAAmB,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;QAClD,MAAM,CAAC,IAAI,CAAC,mBAAmB,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;QAC5C,MAAM,CAAC,IAAI,CAAC,mBAAmB,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;QAChD,MAAM,CAAC,IAAI,CAAC,mBAAmB,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QAC9C,MAAM,CAAC,IAAI,CAAC,mBAAmB,YAAY,EAAE,CAAC,CAAC;QAC/C,MAAM,CAAC,IAAI,CAAC,mBAAmB,aAAa,EAAE,CAAC,CAAC;QAChD,OAAO,CAAC,GAAG,EAAE,CAAC;QAEd,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;YAChC,MAAM,CAAC,OAAO,CAAC,0BAA0B,MAAM,CAAC,EAAE,OAAO,CAAC,CAAC;YAC3D,MAAM,CAAC,OAAO,CAAC,4DAA4D,CAAC,CAAC;QAC/E,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,OAAO,CAAC,uDAAuD,CAAC,CAAC;QAC1E,CAAC;IACH,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,OAAO,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;QACvC,MAAM,CAAC,KAAK,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IACvE,CAAC;AACH,CAAC"} | ||
| {"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"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"} |
@@ -1,2 +0,6 @@ | ||
| export declare function updateCommand(query?: string): Promise<void>; | ||
| interface UpdateOptions { | ||
| all?: boolean; | ||
| } | ||
| export declare function updateCommand(query?: string, options?: UpdateOptions): Promise<void>; | ||
| export {}; | ||
| //# sourceMappingURL=update.d.ts.map |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"AAQA,wBAAsB,aAAa,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA2DjE"} | ||
| {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"AASA,UAAU,aAAa;IACrB,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AA4FD,wBAAsB,aAAa,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAoE1F"} |
+101
-14
| import inquirer from "inquirer"; | ||
| import { resolveServer, promptApiToken } from "../utils/serverSelect.js"; | ||
| import { getServers } from "../utils/config.js"; | ||
| import { resolveServer, promptApiToken, collectProviderTokens } from "../utils/serverSelect.js"; | ||
| import { checkSshAvailable, sshExec } from "../utils/ssh.js"; | ||
@@ -7,5 +8,86 @@ import { createProviderWithToken } from "../utils/providerFactory.js"; | ||
| const COOLIFY_UPDATE_CMD = "curl -fsSL https://cdn.coollabs.io/coolify/install.sh | bash"; | ||
| export async function updateCommand(query) { | ||
| async function updateSingleServer(serverName, serverIp, serverId, provider, apiToken) { | ||
| const spinner = createSpinner(`Validating ${serverName}...`); | ||
| spinner.start(); | ||
| if (serverId.startsWith("manual-")) { | ||
| spinner.succeed(`${serverName}: Manually added server β skipping API check`); | ||
| } | ||
| else { | ||
| try { | ||
| const providerInstance = createProviderWithToken(provider, apiToken); | ||
| const status = await providerInstance.getServerStatus(serverId); | ||
| if (status !== "running") { | ||
| spinner.fail(`${serverName}: Server is not running (status: ${status})`); | ||
| return false; | ||
| } | ||
| spinner.succeed(`${serverName}: Server verified`); | ||
| } | ||
| catch (error) { | ||
| spinner.fail(`${serverName}: Failed to verify server`); | ||
| logger.error(error instanceof Error ? error.message : String(error)); | ||
| return false; | ||
| } | ||
| } | ||
| logger.info(`Updating Coolify on ${serverName} (${serverIp})...`); | ||
| const result = await sshExec(serverIp, COOLIFY_UPDATE_CMD); | ||
| if (result.stdout) | ||
| console.log(result.stdout); | ||
| if (result.stderr) | ||
| console.error(result.stderr); | ||
| if (result.code === 0) { | ||
| logger.success(`${serverName}: Coolify update completed!`); | ||
| return true; | ||
| } | ||
| else { | ||
| logger.error(`${serverName}: Update failed with exit code ${result.code}`); | ||
| return false; | ||
| } | ||
| } | ||
| async function updateAll() { | ||
| if (!checkSshAvailable()) { | ||
| logger.error("SSH client not found. Required for Coolify update."); | ||
| return; | ||
| } | ||
| const servers = getServers(); | ||
| if (servers.length === 0) { | ||
| logger.info("No servers found. Deploy one with: quicklify init"); | ||
| return; | ||
| } | ||
| const { confirm } = await inquirer.prompt([ | ||
| { | ||
| type: "confirm", | ||
| name: "confirm", | ||
| message: `Update Coolify on all ${servers.length} server(s)? This may cause brief downtime.`, | ||
| default: false, | ||
| }, | ||
| ]); | ||
| if (!confirm) { | ||
| logger.info("Update cancelled."); | ||
| return; | ||
| } | ||
| const tokenMap = await collectProviderTokens(servers); | ||
| let succeeded = 0; | ||
| let failed = 0; | ||
| for (const server of servers) { | ||
| const token = tokenMap.get(server.provider); | ||
| const ok = await updateSingleServer(server.name, server.ip, server.id, server.provider, token); | ||
| if (ok) | ||
| succeeded++; | ||
| else | ||
| failed++; | ||
| console.log(); | ||
| } | ||
| if (failed === 0) { | ||
| logger.success(`All ${succeeded} server(s) updated successfully!`); | ||
| } | ||
| else { | ||
| logger.warning(`${succeeded} succeeded, ${failed} failed`); | ||
| } | ||
| } | ||
| export async function updateCommand(query, options) { | ||
| if (options?.all) { | ||
| return updateAll(); | ||
| } | ||
| if (!checkSshAvailable()) { | ||
| logger.error("SSH client not found. Required for Coolify update."); | ||
| logger.info("Windows: Settings > Apps > Optional Features > OpenSSH Client"); | ||
@@ -30,19 +112,24 @@ logger.info("Linux/macOS: SSH is usually pre-installed."); | ||
| } | ||
| const apiToken = await promptApiToken(server.provider); | ||
| const apiToken = server.id.startsWith("manual-") ? "" : await promptApiToken(server.provider); | ||
| const spinner = createSpinner("Validating access..."); | ||
| spinner.start(); | ||
| try { | ||
| const provider = createProviderWithToken(server.provider, apiToken); | ||
| const status = await provider.getServerStatus(server.id); | ||
| if (status !== "running") { | ||
| spinner.fail(`Server is not running (status: ${status})`); | ||
| if (server.id.startsWith("manual-")) { | ||
| spinner.succeed("Manually added server β skipping API check"); | ||
| } | ||
| else { | ||
| try { | ||
| const provider = createProviderWithToken(server.provider, apiToken); | ||
| const status = await provider.getServerStatus(server.id); | ||
| if (status !== "running") { | ||
| spinner.fail(`Server is not running (status: ${status})`); | ||
| return; | ||
| } | ||
| spinner.succeed("Server verified"); | ||
| } | ||
| catch (error) { | ||
| spinner.fail("Failed to verify server"); | ||
| logger.error(error instanceof Error ? error.message : String(error)); | ||
| return; | ||
| } | ||
| spinner.succeed("Server verified"); | ||
| } | ||
| catch (error) { | ||
| spinner.fail("Failed to verify server"); | ||
| logger.error(error instanceof Error ? error.message : String(error)); | ||
| return; | ||
| } | ||
| logger.info("Running Coolify update script..."); | ||
@@ -49,0 +136,0 @@ logger.info("This may take several minutes. Please wait."); |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"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"} |
+30
-4
@@ -24,2 +24,5 @@ #!/usr/bin/env node | ||
| import { exportCommand, importCommand } from "./commands/transfer.js"; | ||
| import { addCommand } from "./commands/add.js"; | ||
| import { removeCommand } from "./commands/remove.js"; | ||
| import { maintainCommand } from "./commands/maintain.js"; | ||
| const __filename = fileURLToPath(import.meta.url); | ||
@@ -36,4 +39,4 @@ const __dirname = dirname(__filename); | ||
| .description("Deploy a new Coolify instance on a cloud provider") | ||
| .option("--provider <provider>", "Cloud provider (hetzner, digitalocean)") | ||
| .option("--token <token>", "API token (or set HETZNER_TOKEN / DIGITALOCEAN_TOKEN env var)") | ||
| .option("--provider <provider>", "Cloud provider (hetzner, digitalocean, vultr, linode)") | ||
| .option("--token <token>", "API token (or set HETZNER_TOKEN / DIGITALOCEAN_TOKEN / VULTR_TOKEN / LINODE_TOKEN env var)") | ||
| .option("--region <region>", "Server region") | ||
@@ -50,3 +53,5 @@ .option("--size <size>", "Server size") | ||
| .description("Check server and Coolify status") | ||
| .action(statusCommand); | ||
| .option("--all", "Check status of all servers") | ||
| .option("--autostart", "Restart Coolify if server is running but Coolify is down") | ||
| .action((query, options) => statusCommand(query, options)); | ||
| program | ||
@@ -68,3 +73,4 @@ .command("destroy [query]") | ||
| .description("Update Coolify on a registered server") | ||
| .action(updateCommand); | ||
| .option("--all", "Update Coolify on all servers") | ||
| .action((query, options) => updateCommand(query, options)); | ||
| program | ||
@@ -119,2 +125,3 @@ .command("restart [query]") | ||
| .option("--dry-run", "Show commands without executing") | ||
| .option("--all", "Backup all servers") | ||
| .action((query, options) => backupCommand(query, options)); | ||
@@ -135,3 +142,22 @@ program | ||
| .action((path) => importCommand(path)); | ||
| program | ||
| .command("add") | ||
| .description("Add an existing Coolify server to Quicklify management") | ||
| .option("--provider <provider>", "Cloud provider (hetzner, digitalocean, vultr, linode)") | ||
| .option("--ip <ip>", "Server IP address") | ||
| .option("--name <name>", "Server name") | ||
| .option("--skip-verify", "Skip Coolify installation verification") | ||
| .action((options) => addCommand(options)); | ||
| program | ||
| .command("remove [query]") | ||
| .description("Remove a server from local config (does not destroy the cloud server)") | ||
| .action(removeCommand); | ||
| program | ||
| .command("maintain [query]") | ||
| .description("Run full maintenance cycle (status, update, health, reboot)") | ||
| .option("--skip-reboot", "Skip the reboot step") | ||
| .option("--all", "Maintain all servers sequentially") | ||
| .option("--dry-run", "Show steps without executing") | ||
| .action((query, options) => maintainCommand(query, options)); | ||
| program.parse(); | ||
| //# sourceMappingURL=index.js.map |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"} |
@@ -64,3 +64,3 @@ import axios from "axios"; | ||
| id: response.data.server.id.toString(), | ||
| ip: response.data.server.public_net.ipv4.ip, | ||
| ip: response.data.server?.public_net?.ipv4?.ip || "pending", | ||
| status: response.data.server.status, | ||
@@ -82,3 +82,3 @@ }; | ||
| id: response.data.server.id.toString(), | ||
| ip: response.data.server.public_net.ipv4.ip, | ||
| ip: response.data.server?.public_net?.ipv4?.ip || "pending", | ||
| status: response.data.server.status, | ||
@@ -85,0 +85,0 @@ }; |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"hetzner.js","sourceRoot":"","sources":["../../src/providers/hetzner.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"hetzner.js","sourceRoot":"","sources":["../../src/providers/hetzner.ts"],"names":[],"mappings":"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"} |
@@ -9,3 +9,4 @@ import type { ServerRecord } from "../types/index.js"; | ||
| export declare function findServer(query: string): ServerRecord | undefined; | ||
| export declare function findServers(query: string): ServerRecord[]; | ||
| export { CONFIG_DIR, SERVERS_FILE, BACKUPS_DIR }; | ||
| //# sourceMappingURL=config.d.ts.map |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEtD,QAAA,MAAM,UAAU,QAAgC,CAAC;AACjD,QAAA,MAAM,YAAY,QAAmC,CAAC;AACtD,QAAA,MAAM,WAAW,QAA8B,CAAC;AAQhD,wBAAgB,UAAU,IAAI,YAAY,EAAE,CAc3C;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAKrD;AAED,wBAAgB,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAShD;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAIlE;AAGD,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,CAAC"} | ||
| {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEtD,QAAA,MAAM,UAAU,QAAgC,CAAC;AACjD,QAAA,MAAM,YAAY,QAAmC,CAAC;AACtD,QAAA,MAAM,WAAW,QAA8B,CAAC;AAQhD,wBAAgB,UAAU,IAAI,YAAY,EAAE,CAc3C;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAKrD;AAED,wBAAgB,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAShD;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAIlE;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY,EAAE,CAKzD;AAGD,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,CAAC"} |
@@ -49,4 +49,11 @@ import { readFileSync, writeFileSync, mkdirSync, existsSync } from "fs"; | ||
| } | ||
| export function findServers(query) { | ||
| const servers = getServers(); | ||
| const byIp = servers.filter((s) => s.ip === query); | ||
| if (byIp.length > 0) | ||
| return byIp; | ||
| return servers.filter((s) => s.name === query); | ||
| } | ||
| // Exported for testing | ||
| export { CONFIG_DIR, SERVERS_FILE, BACKUPS_DIR }; | ||
| //# sourceMappingURL=config.js.map |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AACxE,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAC7B,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAG5B,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,YAAY,CAAC,CAAC;AACjD,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;AACtD,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;AAEhD,SAAS,eAAe;IACtB,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC5B,SAAS,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAC1D,CAAC;AACH,CAAC;AAED,MAAM,UAAU,UAAU;IACxB,IAAI,CAAC;QACH,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;YAC9B,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,MAAM,IAAI,GAAG,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QACjD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAChC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3B,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,MAAoB;IAC7C,eAAe,EAAE,CAAC;IAClB,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAC7B,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACrB,aAAa,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;AACjF,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,EAAU;IACrC,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAC7B,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;IACpD,IAAI,QAAQ,CAAC,MAAM,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC;QACvC,OAAO,KAAK,CAAC;IACf,CAAC;IACD,eAAe,EAAE,CAAC;IAClB,aAAa,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAChF,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,KAAa;IACtC,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAC7B,4CAA4C;IAC5C,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,KAAK,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC;AACtF,CAAC;AAED,uBAAuB;AACvB,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,CAAC"} | ||
| {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AACxE,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAC7B,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAG5B,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,YAAY,CAAC,CAAC;AACjD,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;AACtD,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;AAEhD,SAAS,eAAe;IACtB,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC5B,SAAS,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAC1D,CAAC;AACH,CAAC;AAED,MAAM,UAAU,UAAU;IACxB,IAAI,CAAC;QACH,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;YAC9B,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,MAAM,IAAI,GAAG,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QACjD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAChC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3B,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,MAAoB;IAC7C,eAAe,EAAE,CAAC;IAClB,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAC7B,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACrB,aAAa,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;AACjF,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,EAAU;IACrC,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAC7B,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;IACpD,IAAI,QAAQ,CAAC,MAAM,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC;QACvC,OAAO,KAAK,CAAC;IACf,CAAC;IACD,eAAe,EAAE,CAAC;IAClB,aAAa,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAChF,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,KAAa;IACtC,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAC7B,4CAA4C;IAC5C,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,KAAK,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC;AACtF,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,KAAa;IACvC,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAC7B,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,KAAK,CAAC,CAAC;IACnD,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IACjC,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC;AACjD,CAAC;AAED,uBAAuB;AACvB,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,CAAC"} |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../src/utils/prompts.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAE1D,eAAO,MAAM,WAAW,aAAa,CAAC;AAEtC,wBAAsB,iBAAiB,IAAI,OAAO,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CAcvE;AAED,wBAAsB,mBAAmB,CAAC,QAAQ,EAAE,aAAa,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAsB5F;AAED,wBAAsB,iBAAiB,CACrC,QAAQ,EAAE,aAAa,EACvB,OAAO,GAAE,MAAM,EAAO,GACrB,OAAO,CAAC,MAAM,CAAC,CAuBjB;AAED,wBAAsB,mBAAmB,CACvC,QAAQ,EAAE,aAAa,EACvB,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,MAAM,EAAO,GACrB,OAAO,CAAC,MAAM,CAAC,CAuBjB;AAED,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,MAAM,CAAC,CA2B3D;AAED,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,gBAAgB,EACxB,QAAQ,EAAE,aAAa,GACtB,OAAO,CAAC,OAAO,GAAG,MAAM,CAAC,CAsC3B"} | ||
| {"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../src/utils/prompts.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAE1D,eAAO,MAAM,WAAW,aAAa,CAAC;AAEtC,wBAAsB,iBAAiB,IAAI,OAAO,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CAgBvE;AAED,wBAAsB,mBAAmB,CAAC,QAAQ,EAAE,aAAa,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAsB5F;AAED,wBAAsB,iBAAiB,CACrC,QAAQ,EAAE,aAAa,EACvB,OAAO,GAAE,MAAM,EAAO,GACrB,OAAO,CAAC,MAAM,CAAC,CAuBjB;AAED,wBAAsB,mBAAmB,CACvC,QAAQ,EAAE,aAAa,EACvB,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,MAAM,EAAO,GACrB,OAAO,CAAC,MAAM,CAAC,CAuBjB;AAED,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,MAAM,CAAC,CA2B3D;AAED,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,gBAAgB,EACxB,QAAQ,EAAE,aAAa,GACtB,OAAO,CAAC,OAAO,GAAG,MAAM,CAAC,CAsC3B"} |
@@ -12,2 +12,4 @@ import inquirer from "inquirer"; | ||
| { name: "DigitalOcean", value: "digitalocean" }, | ||
| { name: "Vultr", value: "vultr" }, | ||
| { name: "Linode (Akamai)", value: "linode" }, | ||
| ], | ||
@@ -14,0 +16,0 @@ }, |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../src/utils/prompts.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../src/utils/prompts.ts"],"names":[],"mappings":"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"} |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"providerFactory.d.ts","sourceRoot":"","sources":["../../src/utils/providerFactory.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE1D,wBAAgB,cAAc,CAAC,YAAY,EAAE,MAAM,GAAG,aAAa,CASlE;AAED,wBAAgB,uBAAuB,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,aAAa,CAU1F"} | ||
| {"version":3,"file":"providerFactory.d.ts","sourceRoot":"","sources":["../../src/utils/providerFactory.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE1D,wBAAgB,cAAc,CAAC,YAAY,EAAE,MAAM,GAAG,aAAa,CAalE;AAED,wBAAgB,uBAAuB,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,aAAa,CAc1F"} |
| import { HetznerProvider } from "../providers/hetzner.js"; | ||
| import { DigitalOceanProvider } from "../providers/digitalocean.js"; | ||
| import { VultrProvider } from "../providers/vultr.js"; | ||
| import { LinodeProvider } from "../providers/linode.js"; | ||
| export function createProvider(providerName) { | ||
@@ -9,2 +11,6 @@ switch (providerName) { | ||
| return new DigitalOceanProvider(""); | ||
| case "vultr": | ||
| return new VultrProvider(""); | ||
| case "linode": | ||
| return new LinodeProvider(""); | ||
| default: | ||
@@ -20,2 +26,6 @@ throw new Error(`Unknown provider: ${providerName}`); | ||
| return new DigitalOceanProvider(token); | ||
| case "vultr": | ||
| return new VultrProvider(token); | ||
| case "linode": | ||
| return new LinodeProvider(token); | ||
| /* istanbul ignore next */ | ||
@@ -22,0 +32,0 @@ default: |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"providerFactory.js","sourceRoot":"","sources":["../../src/utils/providerFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAGpE,MAAM,UAAU,cAAc,CAAC,YAAoB;IACjD,QAAQ,YAAY,EAAE,CAAC;QACrB,KAAK,SAAS;YACZ,OAAO,IAAI,eAAe,CAAC,EAAE,CAAC,CAAC;QACjC,KAAK,cAAc;YACjB,OAAO,IAAI,oBAAoB,CAAC,EAAE,CAAC,CAAC;QACtC;YACE,MAAM,IAAI,KAAK,CAAC,qBAAqB,YAAY,EAAE,CAAC,CAAC;IACzD,CAAC;AACH,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,YAAoB,EAAE,KAAa;IACzE,QAAQ,YAAY,EAAE,CAAC;QACrB,KAAK,SAAS;YACZ,OAAO,IAAI,eAAe,CAAC,KAAK,CAAC,CAAC;QACpC,KAAK,cAAc;YACjB,OAAO,IAAI,oBAAoB,CAAC,KAAK,CAAC,CAAC;QACzC,0BAA0B;QAC1B;YACE,MAAM,IAAI,KAAK,CAAC,qBAAqB,YAAY,EAAE,CAAC,CAAC;IACzD,CAAC;AACH,CAAC"} | ||
| {"version":3,"file":"providerFactory.js","sourceRoot":"","sources":["../../src/utils/providerFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAGxD,MAAM,UAAU,cAAc,CAAC,YAAoB;IACjD,QAAQ,YAAY,EAAE,CAAC;QACrB,KAAK,SAAS;YACZ,OAAO,IAAI,eAAe,CAAC,EAAE,CAAC,CAAC;QACjC,KAAK,cAAc;YACjB,OAAO,IAAI,oBAAoB,CAAC,EAAE,CAAC,CAAC;QACtC,KAAK,OAAO;YACV,OAAO,IAAI,aAAa,CAAC,EAAE,CAAC,CAAC;QAC/B,KAAK,QAAQ;YACX,OAAO,IAAI,cAAc,CAAC,EAAE,CAAC,CAAC;QAChC;YACE,MAAM,IAAI,KAAK,CAAC,qBAAqB,YAAY,EAAE,CAAC,CAAC;IACzD,CAAC;AACH,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,YAAoB,EAAE,KAAa;IACzE,QAAQ,YAAY,EAAE,CAAC;QACrB,KAAK,SAAS;YACZ,OAAO,IAAI,eAAe,CAAC,KAAK,CAAC,CAAC;QACpC,KAAK,cAAc;YACjB,OAAO,IAAI,oBAAoB,CAAC,KAAK,CAAC,CAAC;QACzC,KAAK,OAAO;YACV,OAAO,IAAI,aAAa,CAAC,KAAK,CAAC,CAAC;QAClC,KAAK,QAAQ;YACX,OAAO,IAAI,cAAc,CAAC,KAAK,CAAC,CAAC;QACnC,0BAA0B;QAC1B;YACE,MAAM,IAAI,KAAK,CAAC,qBAAqB,YAAY,EAAE,CAAC,CAAC;IACzD,CAAC;AACH,CAAC"} |
| import type { ServerRecord } from "../types/index.js"; | ||
| export declare function collectProviderTokens(servers: ServerRecord[]): Promise<Map<string, string>>; | ||
| export declare function selectServer(promptMessage?: string): Promise<ServerRecord | undefined>; | ||
@@ -3,0 +4,0 @@ export declare function resolveServer(query?: string, promptMessage?: string): Promise<ServerRecord | undefined>; |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"serverSelect.d.ts","sourceRoot":"","sources":["../../src/utils/serverSelect.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEtD,wBAAsB,YAAY,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC,CAqB5F;AAED,wBAAsB,aAAa,CACjC,KAAK,CAAC,EAAE,MAAM,EACd,aAAa,CAAC,EAAE,MAAM,GACrB,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC,CAUnC;AAED,wBAAsB,cAAc,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAe1E"} | ||
| {"version":3,"file":"serverSelect.d.ts","sourceRoot":"","sources":["../../src/utils/serverSelect.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEtD,wBAAsB,qBAAqB,CAAC,OAAO,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CASjG;AAED,wBAAsB,YAAY,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC,CAqB5F;AAED,wBAAsB,aAAa,CACjC,KAAK,CAAC,EAAE,MAAM,EACd,aAAa,CAAC,EAAE,MAAM,GACrB,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC,CAyBnC;AAED,wBAAsB,cAAc,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAqB1E"} |
| import inquirer from "inquirer"; | ||
| import { getServers, findServer } from "./config.js"; | ||
| import { getServers, findServers } from "./config.js"; | ||
| import { logger } from "./logger.js"; | ||
| export async function collectProviderTokens(servers) { | ||
| const tokenMap = new Map(); | ||
| const nonManualServers = servers.filter((s) => !s.id.startsWith("manual-")); | ||
| const providers = [...new Set(nonManualServers.map((s) => s.provider))]; | ||
| for (const providerName of providers) { | ||
| const token = await promptApiToken(providerName); | ||
| tokenMap.set(providerName, token); | ||
| } | ||
| return tokenMap; | ||
| } | ||
| export async function selectServer(promptMessage) { | ||
@@ -25,8 +35,23 @@ const servers = getServers(); | ||
| if (query) { | ||
| const server = findServer(query); | ||
| if (!server) { | ||
| const matches = findServers(query); | ||
| if (matches.length === 0) { | ||
| logger.error(`Server not found: ${query}`); | ||
| return undefined; | ||
| } | ||
| return server; | ||
| if (matches.length === 1) { | ||
| return matches[0]; | ||
| } | ||
| // Multiple matches β let user pick | ||
| const { serverId } = await inquirer.prompt([ | ||
| { | ||
| type: "list", | ||
| name: "serverId", | ||
| message: `Multiple servers found for "${query}". Select one:`, | ||
| choices: matches.map((s) => ({ | ||
| name: `${s.name} (${s.ip}) - ${s.provider} [${s.id}]`, | ||
| value: s.id, | ||
| })), | ||
| }, | ||
| ]); | ||
| return matches.find((s) => s.id === serverId); | ||
| } | ||
@@ -36,4 +61,10 @@ return selectServer(promptMessage); | ||
| export async function promptApiToken(providerName) { | ||
| const envKey = providerName === "hetzner" ? "HETZNER_TOKEN" : "DIGITALOCEAN_TOKEN"; | ||
| if (process.env[envKey]) { | ||
| const envKeys = { | ||
| hetzner: "HETZNER_TOKEN", | ||
| digitalocean: "DIGITALOCEAN_TOKEN", | ||
| vultr: "VULTR_TOKEN", | ||
| linode: "LINODE_TOKEN", | ||
| }; | ||
| const envKey = envKeys[providerName]; | ||
| if (envKey && process.env[envKey]) { | ||
| return process.env[envKey]; | ||
@@ -40,0 +71,0 @@ } |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"serverSelect.js","sourceRoot":"","sources":["../../src/utils/serverSelect.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAGrC,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,aAAsB;IACvD,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAE7B,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,CAAC,IAAI,CAAC,mDAAmD,CAAC,CAAC;QACjE,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC;QACzC;YACE,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,UAAU;YAChB,OAAO,EAAE,aAAa,IAAI,kBAAkB;YAC5C,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC3B,IAAI,EAAE,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,QAAQ,EAAE;gBAC3C,KAAK,EAAE,CAAC,CAAC,EAAE;aACZ,CAAC,CAAC;SACJ;KACF,CAAC,CAAC;IAEH,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC;AAChD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,KAAc,EACd,aAAsB;IAEtB,IAAI,KAAK,EAAE,CAAC;QACV,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;QACjC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,CAAC,KAAK,CAAC,qBAAqB,KAAK,EAAE,CAAC,CAAC;YAC3C,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,OAAO,YAAY,CAAC,aAAa,CAAC,CAAC;AACrC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,YAAoB;IACvD,MAAM,MAAM,GAAG,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,oBAAoB,CAAC;IACnF,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;QACxB,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,CAAE,CAAC;IAC9B,CAAC;IAED,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC;QACzC;YACE,IAAI,EAAE,UAAU;YAChB,IAAI,EAAE,UAAU;YAChB,OAAO,EAAE,cAAc,YAAY,aAAa;YAChD,QAAQ,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,uBAAuB,CAAC;SACxF;KACF,CAAC,CAAC;IACH,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC;AACzB,CAAC"} | ||
| {"version":3,"file":"serverSelect.js","sourceRoot":"","sources":["../../src/utils/serverSelect.ts"],"names":[],"mappings":"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"} |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../../src/utils/templates.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAEpG,eAAO,MAAM,SAAS,EAAE,MAAM,CAAC,YAAY,EAAE,kBAAkB,CA4B9D,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,YAAY,EAA6C,CAAC;AAE7F,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS,CAKxE;AAED,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,GACf,wBAAwB,GAAG,SAAS,CAItC"} | ||
| {"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../../src/utils/templates.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAEpG,eAAO,MAAM,SAAS,EAAE,MAAM,CAAC,YAAY,EAAE,kBAAkB,CAkC9D,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,YAAY,EAA6C,CAAC;AAE7F,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS,CAKxE;AAED,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,GACf,wBAAwB,GAAG,SAAS,CAItC"} |
@@ -8,2 +8,4 @@ export const TEMPLATES = { | ||
| digitalocean: { region: "fra1", size: "s-2vcpu-2gb" }, | ||
| vultr: { region: "ewr", size: "vc2-1c-2gb" }, | ||
| linode: { region: "us-east", size: "g6-standard-2" }, | ||
| }, | ||
@@ -18,2 +20,4 @@ fullSetup: false, | ||
| digitalocean: { region: "fra1", size: "s-2vcpu-4gb" }, | ||
| vultr: { region: "ewr", size: "vc2-2c-4gb" }, | ||
| linode: { region: "us-east", size: "g6-standard-4" }, | ||
| }, | ||
@@ -28,2 +32,4 @@ fullSetup: true, | ||
| digitalocean: { region: "fra1", size: "s-2vcpu-2gb" }, | ||
| vultr: { region: "ewr", size: "vc2-1c-2gb" }, | ||
| linode: { region: "us-east", size: "g6-standard-2" }, | ||
| }, | ||
@@ -30,0 +36,0 @@ fullSetup: false, |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"templates.js","sourceRoot":"","sources":["../../src/utils/templates.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,SAAS,GAA6C;IACjE,OAAO,EAAE;QACP,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,wDAAwD;QACrE,QAAQ,EAAE;YACR,OAAO,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE;YAC1C,YAAY,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE;SACtD;QACD,SAAS,EAAE,KAAK;KACjB;IACD,UAAU,EAAE;QACV,IAAI,EAAE,YAAY;QAClB,WAAW,EAAE,wDAAwD;QACrE,QAAQ,EAAE;YACR,OAAO,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE;YACzC,YAAY,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE;SACtD;QACD,SAAS,EAAE,IAAI;KAChB;IACD,GAAG,EAAE;QACH,IAAI,EAAE,KAAK;QACX,WAAW,EAAE,uDAAuD;QACpE,QAAQ,EAAE;YACR,OAAO,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE;YAC1C,YAAY,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE;SACtD;QACD,SAAS,EAAE,KAAK;KACjB;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAmB,MAAM,CAAC,IAAI,CAAC,SAAS,CAAmB,CAAC;AAE7F,MAAM,UAAU,WAAW,CAAC,IAAY;IACtC,IAAI,oBAAoB,CAAC,QAAQ,CAAC,IAAoB,CAAC,EAAE,CAAC;QACxD,OAAO,SAAS,CAAC,IAAoB,CAAC,CAAC;IACzC,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,mBAAmB,CACjC,IAAY,EACZ,QAAgB;IAEhB,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IACnC,IAAI,CAAC,QAAQ;QAAE,OAAO,SAAS,CAAC;IAChC,OAAO,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AACrC,CAAC"} | ||
| {"version":3,"file":"templates.js","sourceRoot":"","sources":["../../src/utils/templates.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,SAAS,GAA6C;IACjE,OAAO,EAAE;QACP,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,wDAAwD;QACrE,QAAQ,EAAE;YACR,OAAO,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE;YAC1C,YAAY,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE;YACrD,KAAK,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE;YAC5C,MAAM,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,eAAe,EAAE;SACrD;QACD,SAAS,EAAE,KAAK;KACjB;IACD,UAAU,EAAE;QACV,IAAI,EAAE,YAAY;QAClB,WAAW,EAAE,wDAAwD;QACrE,QAAQ,EAAE;YACR,OAAO,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE;YACzC,YAAY,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE;YACrD,KAAK,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE;YAC5C,MAAM,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,eAAe,EAAE;SACrD;QACD,SAAS,EAAE,IAAI;KAChB;IACD,GAAG,EAAE;QACH,IAAI,EAAE,KAAK;QACX,WAAW,EAAE,uDAAuD;QACpE,QAAQ,EAAE;YACR,OAAO,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE;YAC1C,YAAY,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE;YACrD,KAAK,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE;YAC5C,MAAM,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,eAAe,EAAE;SACrD;QACD,SAAS,EAAE,KAAK;KACjB;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAmB,MAAM,CAAC,IAAI,CAAC,SAAS,CAAmB,CAAC;AAE7F,MAAM,UAAU,WAAW,CAAC,IAAY;IACtC,IAAI,oBAAoB,CAAC,QAAQ,CAAC,IAAoB,CAAC,EAAE,CAAC;QACxD,OAAO,SAAS,CAAC,IAAoB,CAAC,CAAC;IACzC,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,mBAAmB,CACjC,IAAY,EACZ,QAAgB;IAEhB,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IACnC,IAAI,CAAC,QAAQ;QAAE,OAAO,SAAS,CAAC;IAChC,OAAO,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AACrC,CAAC"} |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"yamlConfig.d.ts","sourceRoot":"","sources":["../../src/utils/yamlConfig.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAgB7D,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,mBAAmB,CAAC;IAC5B,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,OAAO,GAAG,cAAc,CA4G/D;AAED,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,cAAc,CAkB/D"} | ||
| {"version":3,"file":"yamlConfig.d.ts","sourceRoot":"","sources":["../../src/utils/yamlConfig.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAgB7D,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,mBAAmB,CAAC;IAC5B,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,OAAO,GAAG,cAAc,CAgH/D;AAED,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,cAAc,CAkB/D"} |
@@ -40,6 +40,6 @@ import { readFileSync } from "fs"; | ||
| if (typeof obj.provider !== "string") { | ||
| warnings.push('Invalid provider: must be a string ("hetzner" or "digitalocean")'); | ||
| warnings.push('Invalid provider: must be a string ("hetzner", "digitalocean", "vultr", or "linode")'); | ||
| } | ||
| else if (!["hetzner", "digitalocean"].includes(obj.provider)) { | ||
| warnings.push(`Invalid provider: "${obj.provider}". Use "hetzner" or "digitalocean".`); | ||
| else if (!["hetzner", "digitalocean", "vultr", "linode"].includes(obj.provider)) { | ||
| warnings.push(`Invalid provider: "${obj.provider}". Use "hetzner", "digitalocean", "vultr", or "linode".`); | ||
| } | ||
@@ -46,0 +46,0 @@ else { |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"yamlConfig.js","sourceRoot":"","sources":["../../src/utils/yamlConfig.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"yamlConfig.js","sourceRoot":"","sources":["../../src/utils/yamlConfig.ts"],"names":[],"mappings":"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"} |
+3
-1
| { | ||
| "name": "quicklify", | ||
| "version": "0.9.0", | ||
| "version": "1.0.0", | ||
| "description": "Automate Coolify deployment on cloud providers", | ||
@@ -34,2 +34,4 @@ "type": "module", | ||
| "digitalocean", | ||
| "vultr", | ||
| "linode", | ||
| "droplet", | ||
@@ -36,0 +38,0 @@ "cli", |
+144
-19
@@ -11,7 +11,7 @@ # quicklify | ||
| > Deploy Coolify to any cloud VPS with one command | ||
| > Deploy Coolify to a cloud VPS with one command | ||
| ## π What is Quicklify? | ||
| Quicklify is a CLI tool that automates Coolify installation on cloud VPS providers. One command to deploy your self-hosted PaaS platform. | ||
| Quicklify is a CLI tool that automates [Coolify](https://coolify.io/) deployment on cloud VPS providers. Coolify is an open-source, self-hosted alternative to Vercel/Netlify/Heroku β and Quicklify gets it running on your VPS with one command. | ||
@@ -33,3 +33,3 @@ **Before Quicklify:** | ||
| npx quicklify init | ||
| # Hetzner: ~4 minutes | DigitalOcean: ~6 minutes | ||
| # Hetzner: ~4 min | DigitalOcean: ~6 min | Vultr: ~5 min | Linode: ~6 min | ||
| # Zero manual work β¨ | ||
@@ -43,6 +43,6 @@ ``` | ||
| - π **Secure by Default** - Automated security setup | ||
| - π **Multi-Cloud** - Hetzner Cloud + DigitalOcean | ||
| - π **Multi-Cloud** - Hetzner Cloud, DigitalOcean, Vultr, Linode | ||
| - π» **Beautiful CLI** - Interactive prompts with validation | ||
| - π¨ **ARM64 Ready** - Support for cost-effective ARM servers | ||
| - β‘ **Fast Setup** - Hetzner ~4 min, DigitalOcean ~6 min | ||
| - β‘ **Fast Setup** - Hetzner ~4 min, DigitalOcean ~6 min, Vultr ~5 min, Linode ~6 min | ||
| - β¨ **Dynamic Server Types** - Only shows compatible types for selected location | ||
@@ -70,3 +70,66 @@ - π₯ **Auto Firewall** - Ports 8000, 22, 80, 443 configured automatically | ||
| - π€ **Non-Interactive Mode** - CI/CD friendly with `--provider --token --region --size --name` flags | ||
| - β **Add Existing Servers** - `quicklify add` to register existing Coolify servers | ||
| - π **Bulk Operations** - `--all` flag for status, update, backup across all servers | ||
| - π **Auto-Restart** - `status --autostart` restarts Coolify if server is running but Coolify is down | ||
| - π§ **Full Maintenance** - `quicklify maintain` runs status, update, health check, reboot in sequence | ||
| ## π― What Can You Do with Quicklify? | ||
| ### Deploy a Coolify Server in Minutes | ||
| ```bash | ||
| npx quicklify init # Interactive setup | ||
| npx quicklify init --provider hetzner --full-setup # With auto firewall + SSH hardening | ||
| npx quicklify init --template production # Production-ready defaults | ||
| npx quicklify init --config quicklify.yml # From YAML config file | ||
| ``` | ||
| ### Manage Your Servers | ||
| ```bash | ||
| quicklify list # List all registered servers | ||
| quicklify status my-server # Check server + Coolify status | ||
| quicklify status --all # Check all servers at once | ||
| quicklify ssh my-server # SSH into a server | ||
| quicklify ssh my-server -c "uptime" # Run a remote command | ||
| ``` | ||
| ### Keep Everything Updated & Healthy | ||
| ```bash | ||
| quicklify update my-server # Update Coolify to latest version | ||
| quicklify restart my-server # Reboot the server | ||
| quicklify maintain my-server # Full maintenance: status β update β health β reboot | ||
| quicklify maintain --all # Maintain all servers sequentially | ||
| quicklify health # Quick health check for all servers | ||
| ``` | ||
| ### Backup & Restore | ||
| ```bash | ||
| quicklify backup my-server # Backup database + config files | ||
| quicklify backup --all # Backup all servers | ||
| quicklify restore my-server # Restore from a backup | ||
| quicklify export servers.json # Export server list | ||
| quicklify import servers.json # Import on another machine | ||
| ``` | ||
| ### Security & Networking | ||
| ```bash | ||
| quicklify firewall setup my-server # Configure UFW with Coolify ports | ||
| quicklify domain add my-server --domain coolify.example.com # Bind domain + SSL | ||
| quicklify secure setup my-server # SSH hardening + fail2ban | ||
| quicklify secure audit my-server # Security audit with score (0-4) | ||
| ``` | ||
| ### Monitoring & Diagnostics | ||
| ```bash | ||
| quicklify monitor my-server # Live CPU/RAM/Disk usage | ||
| quicklify logs my-server -f # Follow Coolify logs in real-time | ||
| quicklify doctor # Check local environment | ||
| quicklify status my-server --autostart # Auto-restart Coolify if down | ||
| ``` | ||
| ## π¦ Installation | ||
@@ -106,2 +169,14 @@ | ||
| **Vultr:** | ||
| 1. Visit [Vultr API](https://my.vultr.com/settings/#settingsapi) | ||
| 2. Enable API and copy the API Key | ||
| 3. Whitelist your IP address | ||
| **Linode (Akamai):** | ||
| 1. Visit [Linode API Tokens](https://cloud.linode.com/profile/tokens) | ||
| 2. Create a Personal Access Token with **Read/Write** scope | ||
| 3. Copy the token | ||
| ### Step 2: Deploy Coolify | ||
@@ -122,3 +197,3 @@ | ||
| After deployment (Hetzner ~4 min, DigitalOcean ~6 min): | ||
| After deployment (Hetzner ~4 min, DigitalOcean ~6 min, Vultr ~5 min, Linode ~6 min): | ||
@@ -153,4 +228,4 @@ ``` | ||
| | **DigitalOcean** | β Available | $12/mo | x86 | | ||
| | **Vultr** | π Planned | $2.50/mo | x86 | | ||
| | **Linode** | π Planned | $5/mo | x86 | | ||
| | **Vultr** | β Available | $6/mo | x86 | | ||
| | **Linode (Akamai)** | β Available | $12/mo | x86 | | ||
@@ -181,2 +256,4 @@ ## π‘ Use Cases | ||
| | **Quicklify + DigitalOcean** | **$12** | **~6 min** | **Easy** | | ||
| | **Quicklify + Vultr** | **$6** | **~5 min** | **Easy** | | ||
| | **Quicklify + Linode** | **$12** | **~6 min** | **Easy** | | ||
| | Manual VPS + Coolify | β¬3.79 | 30+ min | Hard | | ||
@@ -188,2 +265,11 @@ | ||
| ### v1.0.0 (2026-02-23) | ||
| - **New providers:** Vultr and Linode (Akamai) β 4 cloud providers now supported | ||
| - **New command:** `quicklify add` β register existing Coolify servers to Quicklify management | ||
| - **New command:** `quicklify maintain` β full maintenance cycle (status, update, health, reboot) | ||
| - **Bulk operations:** `--all` flag on `status`, `update`, `backup` β operate on all servers at once | ||
| - **Auto-restart:** `status --autostart` β restarts Coolify if server is running but Coolify is down | ||
| - **`collectProviderTokens()`** β asks for each provider's token only once across all servers | ||
| - 937 tests across 44 suites with 98%+ statement coverage, zero new dependencies | ||
| ### v0.9.0 (2026-02-21) | ||
@@ -324,5 +410,14 @@ - **YAML Config:** `quicklify init --config quicklify.yml` - deploy from a config file | ||
| ### v1.0.0 (Completed) | ||
| - [x] Vultr provider support | ||
| - [x] Linode (Akamai) provider support | ||
| - [x] `quicklify add` β register existing Coolify servers | ||
| - [x] `quicklify maintain` β full maintenance cycle | ||
| - [x] `--all` flag for status, update, backup | ||
| - [x] `status --autostart` β auto-restart Coolify when down | ||
| ### Future | ||
| - [ ] Vultr support | ||
| - [ ] Linode / AWS Lightsail support | ||
| - [ ] `quicklify snapshot` β automated VPS snapshots before maintenance | ||
| - [ ] `init --mode production` β 2 server deploy (Coolify + worker) | ||
| - [ ] Interactive TUI dashboard | ||
@@ -339,3 +434,3 @@ | ||
| - **YAML Parser:** js-yaml | ||
| - **Cloud APIs:** Hetzner Cloud API v1, DigitalOcean API v2 | ||
| - **Cloud APIs:** Hetzner Cloud API v1, DigitalOcean API v2, Vultr API v2, Linode API v4 | ||
| - **Linting:** ESLint 10 + typescript-eslint | ||
@@ -371,2 +466,4 @@ - **Formatting:** Prettier | ||
| quicklify status my-server | ||
| quicklify status --all # Check all servers at once | ||
| quicklify status my-server --autostart # Restart Coolify if it's down | ||
@@ -377,2 +474,6 @@ # Destroy a server (with double confirmation) | ||
| # Remove a server from local config (without destroying cloud server) | ||
| quicklify remove my-server | ||
| quicklify remove 123.45.67.89 | ||
| # Manage default configuration | ||
@@ -391,2 +492,3 @@ quicklify config set provider hetzner | ||
| quicklify update my-server | ||
| quicklify update --all # Update all servers sequentially | ||
@@ -444,2 +546,3 @@ # Restart a server | ||
| quicklify backup my-server # Full backup (pg_dump + config) | ||
| quicklify backup --all # Backup all servers sequentially | ||
| quicklify backup my-server --dry-run # Preview backup steps | ||
@@ -457,2 +560,13 @@ | ||
| # Add existing Coolify server to management | ||
| quicklify add # Interactive (provider, token, IP, verify) | ||
| quicklify add --provider hetzner --ip 1.2.3.4 --name my-server # Non-interactive | ||
| quicklify add --provider vultr --ip 1.2.3.4 --skip-verify # Skip Coolify check | ||
| # Run full maintenance cycle | ||
| quicklify maintain my-server # Status β Update β Health β Reboot | ||
| quicklify maintain my-server --skip-reboot # Skip the reboot step | ||
| quicklify maintain --all # Maintain all servers sequentially | ||
| quicklify maintain my-server --dry-run # Preview maintenance steps | ||
| # Show version | ||
@@ -474,2 +588,6 @@ quicklify --version | ||
| export DIGITALOCEAN_TOKEN="your-api-token" | ||
| # or | ||
| export VULTR_TOKEN="your-api-token" | ||
| # or | ||
| export LINODE_TOKEN="your-api-token" | ||
@@ -517,7 +635,7 @@ # Deploy non-interactively | ||
| | Template | Hetzner | DigitalOcean | Full Setup | | ||
| |----------|---------|--------------|------------| | ||
| | `starter` | nbg1 / cax11 (β¬3.79) | fra1 / s-2vcpu-2gb ($12) | No | | ||
| | `production` | nbg1 / cx33 (β¬5.49) | fra1 / s-2vcpu-4gb ($24) | Yes | | ||
| | `dev` | nbg1 / cax11 (β¬3.79) | fra1 / s-2vcpu-2gb ($12) | No | | ||
| | Template | Hetzner | DigitalOcean | Vultr | Linode | Full Setup | | ||
| |----------|---------|--------------|-------|--------|------------| | ||
| | `starter` | nbg1 / cax11 (β¬3.79) | fra1 / s-2vcpu-2gb ($12) | ewr / vc2-2c-4gb ($24) | us-east / g6-standard-2 ($12) | No | | ||
| | `production` | nbg1 / cx33 (β¬5.49) | fra1 / s-2vcpu-4gb ($24) | ewr / vc2-4c-8gb ($48) | us-east / g6-standard-4 ($36) | Yes | | ||
| | `dev` | nbg1 / cax11 (β¬3.79) | fra1 / s-2vcpu-2gb ($12) | ewr / vc2-2c-4gb ($24) | us-east / g6-standard-2 ($12) | No | | ||
@@ -536,3 +654,3 @@ ```bash | ||
| 1. **Provider Selection** - Choose Hetzner Cloud or DigitalOcean | ||
| 1. **Provider Selection** - Choose Hetzner Cloud, DigitalOcean, Vultr, or Linode | ||
| 2. **API Token** - Validated before proceeding | ||
@@ -605,6 +723,10 @@ 3. **Region Selection** - Choose your preferred datacenter | ||
| β βββ update.test.ts # Update command tests | ||
| β βββ add.test.ts # Add command tests | ||
| β βββ maintain.test.ts # Maintain command tests | ||
| β βββ validators.test.ts | ||
| βββ integration/ # Integration tests (provider API calls) | ||
| β βββ hetzner.test.ts # Including destroyServer tests | ||
| β βββ digitalocean.test.ts # Including destroyServer tests | ||
| β βββ digitalocean.test.ts # Including destroyServer tests | ||
| β βββ vultr.test.ts # Vultr provider tests | ||
| β βββ linode.test.ts # Linode provider tests | ||
| βββ e2e/ # End-to-end tests (full command flows) | ||
@@ -627,3 +749,3 @@ βββ init.test.ts | ||
| Current coverage: **98%+ statements/lines**, **91%+ branches**, **98%+ functions**. 742 tests across 40 test suites. | ||
| Current coverage: **98%+ statements/lines**, **91%+ branches**, **98%+ functions**. 937 tests across 44 test suites. | ||
@@ -672,2 +794,5 @@ ## π§ Troubleshooting | ||
| - [Hetzner](https://www.hetzner.com/) - Affordable, reliable cloud infrastructure | ||
| - [DigitalOcean](https://www.digitalocean.com/) - Developer-friendly cloud platform | ||
| - [Vultr](https://www.vultr.com/) - High-performance cloud compute | ||
| - [Linode](https://www.linode.com/) - Simple, affordable cloud computing | ||
| - All contributors and users! | ||
@@ -674,0 +799,0 @@ |
Network access
Supply chain riskThis module accesses the network.
Found 1 instance in 1 package
Shell access
Supply chain riskThis module accesses the system shell. Accessing the system shell increases the risk of executing arbitrary code.
Found 1 instance in 1 package
Environment variable access
Supply chain riskPackage accesses environment variables, which may be a sign of credential stuffing or data theft.
Found 5 instances in 1 package
Filesystem access
Supply chain riskAccesses the file system, and could potentially read sensitive data.
Found 1 instance in 1 package
Long strings
Supply chain riskContains long string literals, which may be a sign of obfuscated or packed code.
Found 1 instance in 1 package
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
Found 1 instance in 1 package
Network access
Supply chain riskThis module accesses the network.
Found 1 instance in 1 package
Shell access
Supply chain riskThis module accesses the system shell. Accessing the system shell increases the risk of executing arbitrary code.
Found 1 instance in 1 package
Environment variable access
Supply chain riskPackage accesses environment variables, which may be a sign of credential stuffing or data theft.
Found 3 instances in 1 package
Filesystem access
Supply chain riskAccesses the file system, and could potentially read sensitive data.
Found 1 instance in 1 package
Long strings
Supply chain riskContains long string literals, which may be a sign of obfuscated or packed code.
Found 1 instance in 1 package
No v1
QualityPackage is not semver >=1. This means it is not stable and does not support ^ ranges.
Found 1 instance in 1 package
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
Found 1 instance in 1 package
479522
41.26%170
14.09%5277
32.06%0
-100%799
18.55%21
23.53%14
7.69%