hatchkit 0.1.40 → 0.1.42
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/adopt.d.ts.map +1 -1
- package/dist/adopt.js +663 -82
- package/dist/adopt.js.map +1 -1
- package/dist/config.d.ts +32 -10
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +91 -38
- package/dist/config.js.map +1 -1
- package/dist/deploy/coolify-app.d.ts.map +1 -1
- package/dist/deploy/coolify-app.js +0 -7
- package/dist/deploy/coolify-app.js.map +1 -1
- package/dist/deploy/coolify.d.ts.map +1 -1
- package/dist/deploy/coolify.js +20 -1
- package/dist/deploy/coolify.js.map +1 -1
- package/dist/deploy/ghcr.d.ts +4 -2
- package/dist/deploy/ghcr.d.ts.map +1 -1
- package/dist/deploy/ghcr.js +1 -1
- package/dist/deploy/ghcr.js.map +1 -1
- package/dist/deploy/github.d.ts +4 -3
- package/dist/deploy/github.d.ts.map +1 -1
- package/dist/deploy/github.js +5 -2
- package/dist/deploy/github.js.map +1 -1
- package/dist/deploy/pages.d.ts +41 -0
- package/dist/deploy/pages.d.ts.map +1 -1
- package/dist/deploy/pages.js +363 -22
- package/dist/deploy/pages.js.map +1 -1
- package/dist/deploy/regen-infra.d.ts.map +1 -1
- package/dist/deploy/regen-infra.js +5 -11
- package/dist/deploy/regen-infra.js.map +1 -1
- package/dist/deploy/rollback.d.ts.map +1 -1
- package/dist/deploy/rollback.js +44 -6
- package/dist/deploy/rollback.js.map +1 -1
- package/dist/deploy/terraform.d.ts.map +1 -1
- package/dist/deploy/terraform.js +20 -37
- package/dist/deploy/terraform.js.map +1 -1
- package/dist/dns.d.ts.map +1 -1
- package/dist/dns.js +4 -5
- package/dist/dns.js.map +1 -1
- package/dist/doctor.d.ts +15 -0
- package/dist/doctor.d.ts.map +1 -1
- package/dist/doctor.js +110 -36
- package/dist/doctor.js.map +1 -1
- package/dist/email/index.d.ts +31 -0
- package/dist/email/index.d.ts.map +1 -0
- package/dist/email/index.js +251 -0
- package/dist/email/index.js.map +1 -0
- package/dist/email/presets.d.ts +14 -0
- package/dist/email/presets.d.ts.map +1 -0
- package/dist/email/presets.js +33 -0
- package/dist/email/presets.js.map +1 -0
- package/dist/email/setup.d.ts +93 -0
- package/dist/email/setup.d.ts.map +1 -0
- package/dist/email/setup.js +263 -0
- package/dist/email/setup.js.map +1 -0
- package/dist/email/spf.d.ts +56 -0
- package/dist/email/spf.d.ts.map +1 -0
- package/dist/email/spf.js +102 -0
- package/dist/email/spf.js.map +1 -0
- package/dist/index.js +306 -22
- package/dist/index.js.map +1 -1
- package/dist/inventory.d.ts +37 -0
- package/dist/inventory.d.ts.map +1 -1
- package/dist/inventory.js +536 -55
- package/dist/inventory.js.map +1 -1
- package/dist/overview.d.ts +101 -0
- package/dist/overview.d.ts.map +1 -0
- package/dist/overview.js +880 -0
- package/dist/overview.js.map +1 -0
- package/dist/prompts.d.ts +27 -0
- package/dist/prompts.d.ts.map +1 -1
- package/dist/prompts.js +262 -34
- package/dist/prompts.js.map +1 -1
- package/dist/provision/index.d.ts +20 -1
- package/dist/provision/index.d.ts.map +1 -1
- package/dist/provision/index.js +115 -0
- package/dist/provision/index.js.map +1 -1
- package/dist/provision/s3-buckets.js +1 -1
- package/dist/provision/s3-buckets.js.map +1 -1
- package/dist/scaffold/app.d.ts.map +1 -1
- package/dist/scaffold/app.js +15 -7
- package/dist/scaffold/app.js.map +1 -1
- package/dist/scaffold/build-pipeline.d.ts +16 -0
- package/dist/scaffold/build-pipeline.d.ts.map +1 -1
- package/dist/scaffold/build-pipeline.js +47 -4
- package/dist/scaffold/build-pipeline.js.map +1 -1
- package/dist/scaffold/infra.d.ts +4 -5
- package/dist/scaffold/infra.d.ts.map +1 -1
- package/dist/scaffold/infra.js +18 -57
- package/dist/scaffold/infra.js.map +1 -1
- package/dist/scaffold/manifest.d.ts +6 -0
- package/dist/scaffold/manifest.d.ts.map +1 -1
- package/dist/scaffold/manifest.js +2 -0
- package/dist/scaffold/manifest.js.map +1 -1
- package/dist/scaffold/pages-heuristics.d.ts +17 -0
- package/dist/scaffold/pages-heuristics.d.ts.map +1 -0
- package/dist/scaffold/pages-heuristics.js +344 -0
- package/dist/scaffold/pages-heuristics.js.map +1 -0
- package/dist/scaffold/pages-mode.d.ts +10 -0
- package/dist/scaffold/pages-mode.d.ts.map +1 -0
- package/dist/scaffold/pages-mode.js +107 -0
- package/dist/scaffold/pages-mode.js.map +1 -0
- package/dist/scaffold/pkg-json.d.ts +4 -0
- package/dist/scaffold/pkg-json.d.ts.map +1 -1
- package/dist/scaffold/pkg-json.js +17 -0
- package/dist/scaffold/pkg-json.js.map +1 -1
- package/dist/scaffold/surfaces.d.ts.map +1 -1
- package/dist/scaffold/surfaces.js +12 -1
- package/dist/scaffold/surfaces.js.map +1 -1
- package/dist/scaffold/update.js +1 -1
- package/dist/scaffold/update.js.map +1 -1
- package/dist/templates/build-pipeline/Dockerfile.nextjs.hbs +103 -0
- package/dist/templates/build-pipeline/docker-compose.yml.hbs +23 -6
- package/dist/utils/cloudflare-api.d.ts +158 -13
- package/dist/utils/cloudflare-api.d.ts.map +1 -1
- package/dist/utils/cloudflare-api.js +219 -11
- package/dist/utils/cloudflare-api.js.map +1 -1
- package/dist/utils/coolify-api.d.ts +9 -0
- package/dist/utils/coolify-api.d.ts.map +1 -1
- package/dist/utils/coolify-api.js +26 -0
- package/dist/utils/coolify-api.js.map +1 -1
- package/dist/utils/run-ledger.d.ts +42 -1
- package/dist/utils/run-ledger.d.ts.map +1 -1
- package/dist/utils/run-ledger.js.map +1 -1
- package/dist/utils/s3-admin.d.ts +9 -0
- package/dist/utils/s3-admin.d.ts.map +1 -0
- package/dist/utils/s3-admin.js +46 -0
- package/dist/utils/s3-admin.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"overview.js","sourceRoot":"","sources":["../src/overview.ts"],"names":[],"mappings":"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"}
|
package/dist/prompts.d.ts
CHANGED
|
@@ -1,4 +1,16 @@
|
|
|
1
1
|
export type DeployTarget = "existing" | "new";
|
|
2
|
+
/** Where the project's runtime ultimately lives.
|
|
3
|
+
* · `coolify` — provision (or reuse) a Coolify-managed host. The
|
|
4
|
+
* default for full-stack and server-only projects;
|
|
5
|
+
* drives the rest of the existing pipeline (Hetzner,
|
|
6
|
+
* Mongo, GlitchTip, …).
|
|
7
|
+
* · `gh-pages` — static-only deploy via GitHub Pages. Only offered
|
|
8
|
+
* when `surfaces === "client-only"` — Pages has no
|
|
9
|
+
* runtime, so a server-bearing project can't use it.
|
|
10
|
+
* Skips Coolify/Hetzner/Mongo prompts entirely.
|
|
11
|
+
* · `scaffold-only` — write files + (optionally) push to GitHub, no
|
|
12
|
+
* deploy. Equivalent to today's `runDeployment: false`. */
|
|
13
|
+
export type DeploymentMode = "coolify" | "gh-pages" | "scaffold-only";
|
|
2
14
|
export type DnsProvider = "inwx" | "cloudflare" | "manual";
|
|
3
15
|
export type S3Provider = "hetzner" | "r2" | "aws" | "existing" | "none";
|
|
4
16
|
export type GpuPlatform = "modal" | "runpod" | "hf" | "replicate";
|
|
@@ -20,6 +32,11 @@ export type Feature = "websocket" | "stripe" | "analytics" | "s3" | "desktop" |
|
|
|
20
32
|
export type MlService = "3d-sam-objects" | "3d-sam-body" | "3d-hunyuan" | "3d-trellis" | "3d-extraction" | "subtitles" | "image-recognition" | "background-removal" | "custom-hf";
|
|
21
33
|
export interface ProjectConfig {
|
|
22
34
|
name: string;
|
|
35
|
+
/** Human-readable one-liner. Written to the root `package.json` and
|
|
36
|
+
* used as the Coolify project + application description. Empty falls
|
|
37
|
+
* back to Coolify's built-in default ("Adopted by hatchkit") and
|
|
38
|
+
* leaves package.json without a description field. */
|
|
39
|
+
description?: string;
|
|
23
40
|
domain: string;
|
|
24
41
|
baseDomain: string;
|
|
25
42
|
subdomain: string;
|
|
@@ -93,6 +110,16 @@ export interface ProjectConfig {
|
|
|
93
110
|
* scaffold) so the whole `hatchkit create` flow is non-blocking once
|
|
94
111
|
* the user proceeds — they can walk away while it runs. */
|
|
95
112
|
installDeps: boolean;
|
|
113
|
+
/** Where this project deploys. `coolify` (default) drives the existing
|
|
114
|
+
* Hetzner + Mongo + providers pipeline. `gh-pages` is only offered
|
|
115
|
+
* alongside `surfaces === "client-only"` and skips the Coolify path
|
|
116
|
+
* entirely in favour of `hatchkit gh-pages`. `scaffold-only` writes
|
|
117
|
+
* files but doesn't deploy. */
|
|
118
|
+
deploymentMode: DeploymentMode;
|
|
119
|
+
/** Derived from {@link deploymentMode} for back-compat with the many
|
|
120
|
+
* existing call sites that gate on a boolean: true when the mode
|
|
121
|
+
* triggers an actual deploy step (coolify / gh-pages), false when
|
|
122
|
+
* scaffold-only. New code should branch on `deploymentMode` directly. */
|
|
96
123
|
runDeployment: boolean;
|
|
97
124
|
dryRun: boolean;
|
|
98
125
|
}
|
package/dist/prompts.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../src/prompts.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../src/prompts.ts"],"names":[],"mappings":"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"}
|
package/dist/prompts.js
CHANGED
|
@@ -4,7 +4,7 @@ import { getCoolifyConfig, getMlServices } from "./config.js";
|
|
|
4
4
|
import { CoolifyApi } from "./utils/coolify-api.js";
|
|
5
5
|
import { discoverPublicIps } from "./utils/coolify-server-ips.js";
|
|
6
6
|
import { multiselect } from "./utils/multiselect.js";
|
|
7
|
-
import { parseDomain, validateDomain, validateProjectName } from "./utils/validate.js";
|
|
7
|
+
import { parseDomain, validateCoolifyDescription, validateDomain, validateProjectName, } from "./utils/validate.js";
|
|
8
8
|
// ---------------------------------------------------------------------------
|
|
9
9
|
// Main prompt flow
|
|
10
10
|
// ---------------------------------------------------------------------------
|
|
@@ -33,6 +33,14 @@ export async function collectProjectConfig(options) {
|
|
|
33
33
|
const nameErr = validateProjectName(name);
|
|
34
34
|
if (nameErr !== true)
|
|
35
35
|
throw new Error(`--name invalid: ${nameErr}`);
|
|
36
|
+
// One-line description. Written to package.json and used as the
|
|
37
|
+
// Coolify project + application description. Empty is a valid choice
|
|
38
|
+
// — Coolify falls back to its built-in blurb and we leave package.json
|
|
39
|
+
// without a description field.
|
|
40
|
+
const description = (await presetOrPrompt(presets.description, nonInteractive, () => input({
|
|
41
|
+
message: "Description (one-liner for package.json + Coolify, optional):",
|
|
42
|
+
validate: validateCoolifyDescription,
|
|
43
|
+
}), "")).trim();
|
|
36
44
|
const domain = await presetOrPrompt(presets.domain, nonInteractive, () => input({
|
|
37
45
|
message: "Domain:",
|
|
38
46
|
default: `${name}.ricos.site`,
|
|
@@ -54,6 +62,33 @@ export async function collectProjectConfig(options) {
|
|
|
54
62
|
{ name: "Client only (static site / SPA — no backend)", value: "client-only" },
|
|
55
63
|
],
|
|
56
64
|
}), "both");
|
|
65
|
+
// Deployment mode — where this project ultimately runs. The
|
|
66
|
+
// `gh-pages` option is *only* offered for `client-only` surfaces.
|
|
67
|
+
// Pages has no runtime, so server-bearing projects can't deploy
|
|
68
|
+
// there; we hide the option rather than offering it and then
|
|
69
|
+
// having to refuse the choice mid-flow.
|
|
70
|
+
const deploymentMode = await askDeploymentMode(surfaces, presets.deploymentMode, nonInteractive);
|
|
71
|
+
// gh-pages takes a different path than the Coolify pipeline: no
|
|
72
|
+
// server provisioning, no Mongo, no features. Collect just the
|
|
73
|
+
// basics, then fall through to the same review-and-edit loop the
|
|
74
|
+
// Coolify path uses (with Coolify-specific groups hidden).
|
|
75
|
+
if (deploymentMode === "gh-pages") {
|
|
76
|
+
let pagesConfig = await collectPagesProjectConfig({
|
|
77
|
+
name,
|
|
78
|
+
domain,
|
|
79
|
+
baseDomain,
|
|
80
|
+
subdomain,
|
|
81
|
+
surfaces,
|
|
82
|
+
deploymentMode,
|
|
83
|
+
presets,
|
|
84
|
+
nonInteractive,
|
|
85
|
+
dryRun: options.dryRun || false,
|
|
86
|
+
});
|
|
87
|
+
if (!nonInteractive) {
|
|
88
|
+
pagesConfig = await reviewAndEditLoop(pagesConfig);
|
|
89
|
+
}
|
|
90
|
+
return pagesConfig;
|
|
91
|
+
}
|
|
57
92
|
// Deploy target. Non-interactive default is "new" rather than
|
|
58
93
|
// "existing": "existing" has no sensible default (it needs a real
|
|
59
94
|
// serverId + serverIp that only make sense with a configured
|
|
@@ -251,7 +286,12 @@ export async function collectProjectConfig(options) {
|
|
|
251
286
|
const installDeps = scaffoldRepo
|
|
252
287
|
? await presetOrPrompt(presets.installDeps, nonInteractive, () => confirm({ message: "Run pnpm install after scaffolding?", default: true }), true)
|
|
253
288
|
: false;
|
|
254
|
-
|
|
289
|
+
// Late-stage "deploy now?" still makes sense for the Coolify path —
|
|
290
|
+
// it lets a user pick the Coolify mode upfront but defer the actual
|
|
291
|
+
// provisioning to a later run. For `scaffold-only` it's already
|
|
292
|
+
// implied false. `gh-pages` exits via the short path above and never
|
|
293
|
+
// reaches this branch.
|
|
294
|
+
const runDeployment = deploymentMode === "scaffold-only" || options.dryRun
|
|
255
295
|
? false
|
|
256
296
|
: await presetOrPrompt(presets.runDeployment, nonInteractive, () => confirm({
|
|
257
297
|
message: "Run deployment now?",
|
|
@@ -339,6 +379,7 @@ export async function collectProjectConfig(options) {
|
|
|
339
379
|
}
|
|
340
380
|
let config = {
|
|
341
381
|
name,
|
|
382
|
+
description: description || undefined,
|
|
342
383
|
domain,
|
|
343
384
|
baseDomain,
|
|
344
385
|
subdomain,
|
|
@@ -367,6 +408,7 @@ export async function collectProjectConfig(options) {
|
|
|
367
408
|
scaffoldRepo,
|
|
368
409
|
createGithubRepo,
|
|
369
410
|
installDeps,
|
|
411
|
+
deploymentMode,
|
|
370
412
|
runDeployment,
|
|
371
413
|
envValues,
|
|
372
414
|
dryRun: options.dryRun || false,
|
|
@@ -380,6 +422,89 @@ export async function collectProjectConfig(options) {
|
|
|
380
422
|
return config;
|
|
381
423
|
}
|
|
382
424
|
// ---------------------------------------------------------------------------
|
|
425
|
+
// Deployment-mode prompt + gh-pages short path
|
|
426
|
+
// ---------------------------------------------------------------------------
|
|
427
|
+
async function askDeploymentMode(surfaces, preset, nonInteractive) {
|
|
428
|
+
// gh-pages requires client-only — Pages has no runtime. Validate
|
|
429
|
+
// presets the same way so `--deployment-mode gh-pages` paired with
|
|
430
|
+
// a server-bearing surface fails fast.
|
|
431
|
+
if (preset === "gh-pages" && surfaces !== "client-only") {
|
|
432
|
+
throw new Error(`--deployment-mode gh-pages requires --surfaces client-only (got: ${surfaces}). GitHub Pages serves static files only.`);
|
|
433
|
+
}
|
|
434
|
+
if (preset !== undefined)
|
|
435
|
+
return preset;
|
|
436
|
+
if (nonInteractive)
|
|
437
|
+
return "coolify";
|
|
438
|
+
const choices = [
|
|
439
|
+
{
|
|
440
|
+
name: "Coolify — full-stack on Hetzner (Mongo / providers / Docker)",
|
|
441
|
+
value: "coolify",
|
|
442
|
+
},
|
|
443
|
+
];
|
|
444
|
+
if (surfaces === "client-only") {
|
|
445
|
+
choices.push({
|
|
446
|
+
name: "GitHub Pages — static-only, served from your repo",
|
|
447
|
+
value: "gh-pages",
|
|
448
|
+
});
|
|
449
|
+
}
|
|
450
|
+
choices.push({
|
|
451
|
+
name: "Scaffold only — write files, don't deploy",
|
|
452
|
+
value: "scaffold-only",
|
|
453
|
+
});
|
|
454
|
+
return select({
|
|
455
|
+
message: "Where do you want to deploy?",
|
|
456
|
+
choices,
|
|
457
|
+
default: "coolify",
|
|
458
|
+
});
|
|
459
|
+
}
|
|
460
|
+
/** Minimal config collection for the `gh-pages` deployment mode.
|
|
461
|
+
* Skips every Coolify-tied prompt (server target, features, S3, ML,
|
|
462
|
+
* Mongo, env values) — Pages is a static-only deploy with no
|
|
463
|
+
* runtime, so none of those concepts apply. */
|
|
464
|
+
async function collectPagesProjectConfig(args) {
|
|
465
|
+
const { name, domain, baseDomain, subdomain, surfaces, deploymentMode, presets, nonInteractive } = args;
|
|
466
|
+
// gh-pages requires client-only. The check in askDeploymentMode
|
|
467
|
+
// also catches this for presets, but defend against direct calls.
|
|
468
|
+
if (surfaces !== "client-only") {
|
|
469
|
+
throw new Error(`gh-pages deployment mode requires surfaces="client-only" (got: ${surfaces}).`);
|
|
470
|
+
}
|
|
471
|
+
const scaffoldRepo = await presetOrPrompt(presets.scaffoldRepo, nonInteractive, () => confirm({ message: "Scaffold the starter into ./<name>/?", default: true }), true);
|
|
472
|
+
let createGithubRepo = false;
|
|
473
|
+
if (scaffoldRepo) {
|
|
474
|
+
createGithubRepo = await presetOrPrompt(presets.createGithubRepo, nonInteractive, () => confirm({ message: "Create GitHub remote repo?", default: true }), true);
|
|
475
|
+
}
|
|
476
|
+
const installDeps = scaffoldRepo
|
|
477
|
+
? await presetOrPrompt(presets.installDeps, nonInteractive, () => confirm({ message: "Run pnpm install after scaffolding?", default: true }), true)
|
|
478
|
+
: false;
|
|
479
|
+
// gh-pages always "deploys" when not in dry-run — there's no
|
|
480
|
+
// late-stage opt-out the way coolify has. If they wanted to skip
|
|
481
|
+
// deploy, they'd pick scaffold-only.
|
|
482
|
+
const runDeployment = !args.dryRun;
|
|
483
|
+
return {
|
|
484
|
+
name,
|
|
485
|
+
domain,
|
|
486
|
+
baseDomain,
|
|
487
|
+
subdomain,
|
|
488
|
+
surfaces,
|
|
489
|
+
// Placeholder — gh-pages doesn't use a Coolify server target.
|
|
490
|
+
// Set to "new" rather than `undefined` so any incidental reads
|
|
491
|
+
// (e.g. summary renderers) don't crash. Downstream code MUST
|
|
492
|
+
// gate Coolify steps on `deploymentMode === "coolify"`.
|
|
493
|
+
deployTarget: "new",
|
|
494
|
+
features: [],
|
|
495
|
+
s3Provider: "none",
|
|
496
|
+
mlServices: [],
|
|
497
|
+
forceRedeployMl: [],
|
|
498
|
+
mongodbProvider: "external",
|
|
499
|
+
scaffoldRepo,
|
|
500
|
+
createGithubRepo,
|
|
501
|
+
installDeps,
|
|
502
|
+
deploymentMode,
|
|
503
|
+
runDeployment,
|
|
504
|
+
dryRun: args.dryRun,
|
|
505
|
+
};
|
|
506
|
+
}
|
|
507
|
+
// ---------------------------------------------------------------------------
|
|
383
508
|
// Review-and-edit loop
|
|
384
509
|
// ---------------------------------------------------------------------------
|
|
385
510
|
/** Render the review-and-edit stepper for `hatchkit create`. Mirrors
|
|
@@ -426,11 +551,21 @@ async function reviewAndEditLoop(initial) {
|
|
|
426
551
|
}
|
|
427
552
|
}
|
|
428
553
|
function buildCreateStepGroups(cfg) {
|
|
429
|
-
|
|
554
|
+
const isPages = cfg.deploymentMode === "gh-pages";
|
|
555
|
+
const groups = [
|
|
430
556
|
{
|
|
431
557
|
title: "Project",
|
|
432
558
|
steps: [
|
|
433
559
|
{ key: "name", label: "Project name", set: !!cfg.name, summary: cfg.name },
|
|
560
|
+
{
|
|
561
|
+
key: "description",
|
|
562
|
+
label: "Description",
|
|
563
|
+
// Empty description is a deliberate choice (Coolify will use
|
|
564
|
+
// its default blurb), so this step is always considered "set"
|
|
565
|
+
// once the user has been past the initial prompt.
|
|
566
|
+
set: true,
|
|
567
|
+
summary: cfg.description ? cfg.description : chalk.dim("(none)"),
|
|
568
|
+
},
|
|
434
569
|
{
|
|
435
570
|
key: "domain",
|
|
436
571
|
label: "Domain",
|
|
@@ -451,26 +586,38 @@ function buildCreateStepGroups(cfg) {
|
|
|
451
586
|
title: "Deployment",
|
|
452
587
|
steps: [
|
|
453
588
|
{
|
|
454
|
-
key: "
|
|
455
|
-
label: "
|
|
456
|
-
set:
|
|
457
|
-
|
|
458
|
-
// actually writes into DNS. Fall back to the raw Coolify
|
|
459
|
-
// value (`host.docker.internal` etc.) only when discovery
|
|
460
|
-
// hasn't run yet, so the display still reflects state.
|
|
461
|
-
summary: cfg.deployTarget === "existing"
|
|
462
|
-
? `existing server (${cfg.serverIpv4 ?? cfg.serverIp ?? "?"}${cfg.serverIpv6 ? ` · ${cfg.serverIpv6}` : ""})`
|
|
463
|
-
: `new Hetzner ${cfg.serverSize ?? "?"} (${cfg.serverLocation ?? "nbg1"})`,
|
|
589
|
+
key: "deploymentMode",
|
|
590
|
+
label: "Deployment mode",
|
|
591
|
+
set: !!cfg.deploymentMode,
|
|
592
|
+
summary: renderDeploymentModeSummary(cfg.deploymentMode),
|
|
464
593
|
},
|
|
594
|
+
// The Coolify target picker is only relevant when the mode is
|
|
595
|
+
// coolify. gh-pages and scaffold-only both skip it.
|
|
596
|
+
...(cfg.deploymentMode === "coolify"
|
|
597
|
+
? [
|
|
598
|
+
{
|
|
599
|
+
key: "deployTarget",
|
|
600
|
+
label: "Deploy target",
|
|
601
|
+
set: cfg.deployTarget === "existing" ? !!cfg.serverIp : !!cfg.serverSize,
|
|
602
|
+
summary: cfg.deployTarget === "existing"
|
|
603
|
+
? `existing server (${cfg.serverIpv4 ?? cfg.serverIp ?? "?"}${cfg.serverIpv6 ? ` · ${cfg.serverIpv6}` : ""})`
|
|
604
|
+
: `new Hetzner ${cfg.serverSize ?? "?"} (${cfg.serverLocation ?? "nbg1"})`,
|
|
605
|
+
},
|
|
606
|
+
]
|
|
607
|
+
: []),
|
|
465
608
|
],
|
|
466
609
|
},
|
|
467
|
-
|
|
610
|
+
];
|
|
611
|
+
// The Stack and ML/GPU groups don't apply to a gh-pages deploy —
|
|
612
|
+
// it's static-only by definition, no features/Mongo/ML to wire.
|
|
613
|
+
if (!isPages) {
|
|
614
|
+
groups.push({
|
|
468
615
|
title: "Stack",
|
|
469
616
|
steps: [
|
|
470
617
|
{
|
|
471
618
|
key: "features",
|
|
472
619
|
label: "Features",
|
|
473
|
-
set: true,
|
|
620
|
+
set: true,
|
|
474
621
|
summary: cfg.features.length > 0 ? cfg.features.join(", ") : chalk.dim("none"),
|
|
475
622
|
},
|
|
476
623
|
{
|
|
@@ -484,8 +631,7 @@ function buildCreateStepGroups(cfg) {
|
|
|
484
631
|
: "(unset)",
|
|
485
632
|
},
|
|
486
633
|
],
|
|
487
|
-
},
|
|
488
|
-
{
|
|
634
|
+
}, {
|
|
489
635
|
title: "ML & GPU",
|
|
490
636
|
steps: [
|
|
491
637
|
{
|
|
@@ -497,19 +643,32 @@ function buildCreateStepGroups(cfg) {
|
|
|
497
643
|
: chalk.dim("none"),
|
|
498
644
|
},
|
|
499
645
|
],
|
|
500
|
-
}
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
646
|
+
});
|
|
647
|
+
}
|
|
648
|
+
groups.push({
|
|
649
|
+
title: "Run",
|
|
650
|
+
steps: [
|
|
651
|
+
{
|
|
652
|
+
key: "scaffoldFlags",
|
|
653
|
+
label: isPages ? "Scaffold / GitHub / Install" : "Scaffold / GitHub / Install / Deploy",
|
|
654
|
+
set: true,
|
|
655
|
+
summary: isPages
|
|
656
|
+
? `scaffold=${cfg.scaffoldRepo ? "yes" : "no"} · github=${cfg.createGithubRepo ? "yes" : "no"} · install=${cfg.installDeps ? "yes" : "no"}`
|
|
657
|
+
: `scaffold=${cfg.scaffoldRepo ? "yes" : "no"} · github=${cfg.createGithubRepo ? "yes" : "no"} · install=${cfg.installDeps ? "yes" : "no"} · deploy=${cfg.runDeployment ? "yes" : "no"}`,
|
|
658
|
+
},
|
|
659
|
+
],
|
|
660
|
+
});
|
|
661
|
+
return groups;
|
|
662
|
+
}
|
|
663
|
+
function renderDeploymentModeSummary(mode) {
|
|
664
|
+
switch (mode) {
|
|
665
|
+
case "coolify":
|
|
666
|
+
return "Coolify (full-stack)";
|
|
667
|
+
case "gh-pages":
|
|
668
|
+
return "GitHub Pages (static)";
|
|
669
|
+
case "scaffold-only":
|
|
670
|
+
return "Scaffold only (no deploy)";
|
|
671
|
+
}
|
|
513
672
|
}
|
|
514
673
|
function renderSurfaceSummary(surface) {
|
|
515
674
|
switch (surface) {
|
|
@@ -541,6 +700,14 @@ async function editSection(cfg, section) {
|
|
|
541
700
|
})).trim();
|
|
542
701
|
return { ...cfg, name };
|
|
543
702
|
}
|
|
703
|
+
if (section === "description") {
|
|
704
|
+
const description = (await input({
|
|
705
|
+
message: "Description (one-liner for package.json + Coolify, optional):",
|
|
706
|
+
default: cfg.description ?? "",
|
|
707
|
+
validate: validateCoolifyDescription,
|
|
708
|
+
})).trim();
|
|
709
|
+
return { ...cfg, description: description || undefined };
|
|
710
|
+
}
|
|
544
711
|
if (section === "domain") {
|
|
545
712
|
const raw = (await input({
|
|
546
713
|
message: "Domain (e.g. ai.trebeljahr.com):",
|
|
@@ -575,10 +742,60 @@ async function editSection(cfg, section) {
|
|
|
575
742
|
// server to read MONGODB_URI, so a Coolify-provisioned container
|
|
576
743
|
// would be wasted. Switching away from client-only keeps the prior
|
|
577
744
|
// value (the user can re-pick on the Mongo step if needed).
|
|
745
|
+
//
|
|
746
|
+
// Switching away from client-only also invalidates `gh-pages`
|
|
747
|
+
// deployment mode (Pages requires a static-only project). Snap
|
|
748
|
+
// it back to coolify in that case.
|
|
749
|
+
const nextDeploymentMode = cfg.deploymentMode === "gh-pages" && next !== "client-only" ? "coolify" : cfg.deploymentMode;
|
|
750
|
+
if (cfg.deploymentMode === "gh-pages" && next !== "client-only") {
|
|
751
|
+
console.log(chalk.yellow(" ⚠ gh-pages requires client-only surfaces — switched deployment mode back to coolify."));
|
|
752
|
+
}
|
|
578
753
|
return {
|
|
579
754
|
...cfg,
|
|
580
755
|
surfaces: next,
|
|
581
756
|
mongodbProvider: next === "client-only" ? "external" : cfg.mongodbProvider,
|
|
757
|
+
deploymentMode: nextDeploymentMode,
|
|
758
|
+
runDeployment: nextDeploymentMode === "scaffold-only" ? false : cfg.runDeployment,
|
|
759
|
+
};
|
|
760
|
+
}
|
|
761
|
+
if (section === "deploymentMode") {
|
|
762
|
+
const next = await askDeploymentMode(cfg.surfaces, undefined, false);
|
|
763
|
+
if (next === cfg.deploymentMode)
|
|
764
|
+
return cfg;
|
|
765
|
+
// Switching INTO gh-pages clears the Coolify-shaped fields so
|
|
766
|
+
// the review doesn't show stale Hetzner / Mongo / feature
|
|
767
|
+
// choices that don't apply. The user can still edit them back
|
|
768
|
+
// if they later switch to coolify mode.
|
|
769
|
+
if (next === "gh-pages") {
|
|
770
|
+
return {
|
|
771
|
+
...cfg,
|
|
772
|
+
deploymentMode: next,
|
|
773
|
+
runDeployment: !cfg.dryRun,
|
|
774
|
+
deployTarget: "new",
|
|
775
|
+
serverId: undefined,
|
|
776
|
+
serverUuid: undefined,
|
|
777
|
+
serverIp: undefined,
|
|
778
|
+
serverIpv4: undefined,
|
|
779
|
+
serverIpv6: undefined,
|
|
780
|
+
serverSize: undefined,
|
|
781
|
+
serverLocation: undefined,
|
|
782
|
+
features: [],
|
|
783
|
+
s3Provider: "none",
|
|
784
|
+
mlServices: [],
|
|
785
|
+
forceRedeployMl: [],
|
|
786
|
+
mongodbProvider: "external",
|
|
787
|
+
gpuPlatforms: undefined,
|
|
788
|
+
customHfModelId: undefined,
|
|
789
|
+
customHfGpuType: undefined,
|
|
790
|
+
};
|
|
791
|
+
}
|
|
792
|
+
// Switching to coolify or scaffold-only just updates the mode +
|
|
793
|
+
// derived `runDeployment`. Existing values (if any) are preserved
|
|
794
|
+
// so the user can step through them in the review.
|
|
795
|
+
return {
|
|
796
|
+
...cfg,
|
|
797
|
+
deploymentMode: next,
|
|
798
|
+
runDeployment: next === "scaffold-only" ? false : cfg.runDeployment,
|
|
582
799
|
};
|
|
583
800
|
}
|
|
584
801
|
if (section === "features") {
|
|
@@ -715,10 +932,21 @@ async function editSection(cfg, section) {
|
|
|
715
932
|
default: cfg.installDeps,
|
|
716
933
|
})
|
|
717
934
|
: false;
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
|
|
935
|
+
// "Deploy now?" is meaningful only for coolify — gh-pages always
|
|
936
|
+
// runs the pages setup, scaffold-only never deploys.
|
|
937
|
+
let runDeployment = cfg.runDeployment;
|
|
938
|
+
if (cfg.deploymentMode === "coolify") {
|
|
939
|
+
runDeployment = await confirm({
|
|
940
|
+
message: "Run deployment now (Terraform + Coolify + ML)?",
|
|
941
|
+
default: cfg.runDeployment,
|
|
942
|
+
});
|
|
943
|
+
}
|
|
944
|
+
else if (cfg.deploymentMode === "gh-pages") {
|
|
945
|
+
runDeployment = !cfg.dryRun;
|
|
946
|
+
}
|
|
947
|
+
else {
|
|
948
|
+
runDeployment = false;
|
|
949
|
+
}
|
|
722
950
|
return { ...cfg, scaffoldRepo, createGithubRepo, installDeps, runDeployment };
|
|
723
951
|
}
|
|
724
952
|
return cfg;
|