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.
Files changed (127) hide show
  1. package/dist/adopt.d.ts.map +1 -1
  2. package/dist/adopt.js +663 -82
  3. package/dist/adopt.js.map +1 -1
  4. package/dist/config.d.ts +32 -10
  5. package/dist/config.d.ts.map +1 -1
  6. package/dist/config.js +91 -38
  7. package/dist/config.js.map +1 -1
  8. package/dist/deploy/coolify-app.d.ts.map +1 -1
  9. package/dist/deploy/coolify-app.js +0 -7
  10. package/dist/deploy/coolify-app.js.map +1 -1
  11. package/dist/deploy/coolify.d.ts.map +1 -1
  12. package/dist/deploy/coolify.js +20 -1
  13. package/dist/deploy/coolify.js.map +1 -1
  14. package/dist/deploy/ghcr.d.ts +4 -2
  15. package/dist/deploy/ghcr.d.ts.map +1 -1
  16. package/dist/deploy/ghcr.js +1 -1
  17. package/dist/deploy/ghcr.js.map +1 -1
  18. package/dist/deploy/github.d.ts +4 -3
  19. package/dist/deploy/github.d.ts.map +1 -1
  20. package/dist/deploy/github.js +5 -2
  21. package/dist/deploy/github.js.map +1 -1
  22. package/dist/deploy/pages.d.ts +41 -0
  23. package/dist/deploy/pages.d.ts.map +1 -1
  24. package/dist/deploy/pages.js +363 -22
  25. package/dist/deploy/pages.js.map +1 -1
  26. package/dist/deploy/regen-infra.d.ts.map +1 -1
  27. package/dist/deploy/regen-infra.js +5 -11
  28. package/dist/deploy/regen-infra.js.map +1 -1
  29. package/dist/deploy/rollback.d.ts.map +1 -1
  30. package/dist/deploy/rollback.js +44 -6
  31. package/dist/deploy/rollback.js.map +1 -1
  32. package/dist/deploy/terraform.d.ts.map +1 -1
  33. package/dist/deploy/terraform.js +20 -37
  34. package/dist/deploy/terraform.js.map +1 -1
  35. package/dist/dns.d.ts.map +1 -1
  36. package/dist/dns.js +4 -5
  37. package/dist/dns.js.map +1 -1
  38. package/dist/doctor.d.ts +15 -0
  39. package/dist/doctor.d.ts.map +1 -1
  40. package/dist/doctor.js +110 -36
  41. package/dist/doctor.js.map +1 -1
  42. package/dist/email/index.d.ts +31 -0
  43. package/dist/email/index.d.ts.map +1 -0
  44. package/dist/email/index.js +251 -0
  45. package/dist/email/index.js.map +1 -0
  46. package/dist/email/presets.d.ts +14 -0
  47. package/dist/email/presets.d.ts.map +1 -0
  48. package/dist/email/presets.js +33 -0
  49. package/dist/email/presets.js.map +1 -0
  50. package/dist/email/setup.d.ts +93 -0
  51. package/dist/email/setup.d.ts.map +1 -0
  52. package/dist/email/setup.js +263 -0
  53. package/dist/email/setup.js.map +1 -0
  54. package/dist/email/spf.d.ts +56 -0
  55. package/dist/email/spf.d.ts.map +1 -0
  56. package/dist/email/spf.js +102 -0
  57. package/dist/email/spf.js.map +1 -0
  58. package/dist/index.js +306 -22
  59. package/dist/index.js.map +1 -1
  60. package/dist/inventory.d.ts +37 -0
  61. package/dist/inventory.d.ts.map +1 -1
  62. package/dist/inventory.js +536 -55
  63. package/dist/inventory.js.map +1 -1
  64. package/dist/overview.d.ts +101 -0
  65. package/dist/overview.d.ts.map +1 -0
  66. package/dist/overview.js +880 -0
  67. package/dist/overview.js.map +1 -0
  68. package/dist/prompts.d.ts +27 -0
  69. package/dist/prompts.d.ts.map +1 -1
  70. package/dist/prompts.js +262 -34
  71. package/dist/prompts.js.map +1 -1
  72. package/dist/provision/index.d.ts +20 -1
  73. package/dist/provision/index.d.ts.map +1 -1
  74. package/dist/provision/index.js +115 -0
  75. package/dist/provision/index.js.map +1 -1
  76. package/dist/provision/s3-buckets.js +1 -1
  77. package/dist/provision/s3-buckets.js.map +1 -1
  78. package/dist/scaffold/app.d.ts.map +1 -1
  79. package/dist/scaffold/app.js +15 -7
  80. package/dist/scaffold/app.js.map +1 -1
  81. package/dist/scaffold/build-pipeline.d.ts +16 -0
  82. package/dist/scaffold/build-pipeline.d.ts.map +1 -1
  83. package/dist/scaffold/build-pipeline.js +47 -4
  84. package/dist/scaffold/build-pipeline.js.map +1 -1
  85. package/dist/scaffold/infra.d.ts +4 -5
  86. package/dist/scaffold/infra.d.ts.map +1 -1
  87. package/dist/scaffold/infra.js +18 -57
  88. package/dist/scaffold/infra.js.map +1 -1
  89. package/dist/scaffold/manifest.d.ts +6 -0
  90. package/dist/scaffold/manifest.d.ts.map +1 -1
  91. package/dist/scaffold/manifest.js +2 -0
  92. package/dist/scaffold/manifest.js.map +1 -1
  93. package/dist/scaffold/pages-heuristics.d.ts +17 -0
  94. package/dist/scaffold/pages-heuristics.d.ts.map +1 -0
  95. package/dist/scaffold/pages-heuristics.js +344 -0
  96. package/dist/scaffold/pages-heuristics.js.map +1 -0
  97. package/dist/scaffold/pages-mode.d.ts +10 -0
  98. package/dist/scaffold/pages-mode.d.ts.map +1 -0
  99. package/dist/scaffold/pages-mode.js +107 -0
  100. package/dist/scaffold/pages-mode.js.map +1 -0
  101. package/dist/scaffold/pkg-json.d.ts +4 -0
  102. package/dist/scaffold/pkg-json.d.ts.map +1 -1
  103. package/dist/scaffold/pkg-json.js +17 -0
  104. package/dist/scaffold/pkg-json.js.map +1 -1
  105. package/dist/scaffold/surfaces.d.ts.map +1 -1
  106. package/dist/scaffold/surfaces.js +12 -1
  107. package/dist/scaffold/surfaces.js.map +1 -1
  108. package/dist/scaffold/update.js +1 -1
  109. package/dist/scaffold/update.js.map +1 -1
  110. package/dist/templates/build-pipeline/Dockerfile.nextjs.hbs +103 -0
  111. package/dist/templates/build-pipeline/docker-compose.yml.hbs +23 -6
  112. package/dist/utils/cloudflare-api.d.ts +158 -13
  113. package/dist/utils/cloudflare-api.d.ts.map +1 -1
  114. package/dist/utils/cloudflare-api.js +219 -11
  115. package/dist/utils/cloudflare-api.js.map +1 -1
  116. package/dist/utils/coolify-api.d.ts +9 -0
  117. package/dist/utils/coolify-api.d.ts.map +1 -1
  118. package/dist/utils/coolify-api.js +26 -0
  119. package/dist/utils/coolify-api.js.map +1 -1
  120. package/dist/utils/run-ledger.d.ts +42 -1
  121. package/dist/utils/run-ledger.d.ts.map +1 -1
  122. package/dist/utils/run-ledger.js.map +1 -1
  123. package/dist/utils/s3-admin.d.ts +9 -0
  124. package/dist/utils/s3-admin.d.ts.map +1 -0
  125. package/dist/utils/s3-admin.js +46 -0
  126. package/dist/utils/s3-admin.js.map +1 -0
  127. 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
  }
@@ -1 +1 @@
1
- {"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../src/prompts.ts"],"names":[],"mappings":"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"}
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
- const runDeployment = options.dryRun
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
- return [
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: "deployTarget",
455
- label: "Deploy target",
456
- set: cfg.deployTarget === "existing" ? !!cfg.serverIp : !!cfg.serverSize,
457
- // Show the validated public IPv4 — that's what Terraform
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, // an empty selection is a real choice
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
- title: "Run",
503
- steps: [
504
- {
505
- key: "scaffoldFlags",
506
- label: "Scaffold / GitHub / Install / Deploy",
507
- set: true,
508
- summary: `scaffold=${cfg.scaffoldRepo ? "yes" : "no"} · github=${cfg.createGithubRepo ? "yes" : "no"} · install=${cfg.installDeps ? "yes" : "no"} · deploy=${cfg.runDeployment ? "yes" : "no"}`,
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
- const runDeployment = await confirm({
719
- message: "Run deployment now (Terraform + Coolify + ML)?",
720
- default: cfg.runDeployment,
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;