hatchkit 0.1.22 → 0.1.24

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 (56) hide show
  1. package/dist/adopt.d.ts.map +1 -1
  2. package/dist/adopt.js +119 -5
  3. package/dist/adopt.js.map +1 -1
  4. package/dist/completion.d.ts.map +1 -1
  5. package/dist/completion.js +2 -0
  6. package/dist/completion.js.map +1 -1
  7. package/dist/config.d.ts +36 -1
  8. package/dist/config.d.ts.map +1 -1
  9. package/dist/config.js +138 -3
  10. package/dist/config.js.map +1 -1
  11. package/dist/deploy/coolify-app.d.ts +10 -2
  12. package/dist/deploy/coolify-app.d.ts.map +1 -1
  13. package/dist/deploy/coolify-app.js +191 -13
  14. package/dist/deploy/coolify-app.js.map +1 -1
  15. package/dist/deploy/coolify.d.ts.map +1 -1
  16. package/dist/deploy/coolify.js +30 -17
  17. package/dist/deploy/coolify.js.map +1 -1
  18. package/dist/deploy/ghcr.d.ts +68 -0
  19. package/dist/deploy/ghcr.d.ts.map +1 -0
  20. package/dist/deploy/ghcr.js +228 -0
  21. package/dist/deploy/ghcr.js.map +1 -0
  22. package/dist/deploy/rollback.d.ts.map +1 -1
  23. package/dist/deploy/rollback.js +12 -0
  24. package/dist/deploy/rollback.js.map +1 -1
  25. package/dist/doctor.d.ts.map +1 -1
  26. package/dist/doctor.js +83 -2
  27. package/dist/doctor.js.map +1 -1
  28. package/dist/explain.js +1 -1
  29. package/dist/explain.js.map +1 -1
  30. package/dist/index.js +126 -4
  31. package/dist/index.js.map +1 -1
  32. package/dist/prompts.js +1 -1
  33. package/dist/prompts.js.map +1 -1
  34. package/dist/provision/s3-buckets.d.ts +62 -0
  35. package/dist/provision/s3-buckets.d.ts.map +1 -0
  36. package/dist/provision/s3-buckets.js +376 -0
  37. package/dist/provision/s3-buckets.js.map +1 -0
  38. package/dist/scaffold/manifest.d.ts +24 -0
  39. package/dist/scaffold/manifest.d.ts.map +1 -1
  40. package/dist/scaffold/manifest.js.map +1 -1
  41. package/dist/utils/cloudflare-api.d.ts +88 -0
  42. package/dist/utils/cloudflare-api.d.ts.map +1 -1
  43. package/dist/utils/cloudflare-api.js +174 -0
  44. package/dist/utils/cloudflare-api.js.map +1 -1
  45. package/dist/utils/coolify-api.d.ts +39 -1
  46. package/dist/utils/coolify-api.d.ts.map +1 -1
  47. package/dist/utils/coolify-api.js +56 -0
  48. package/dist/utils/coolify-api.js.map +1 -1
  49. package/dist/utils/run-ledger.d.ts +8 -0
  50. package/dist/utils/run-ledger.d.ts.map +1 -1
  51. package/dist/utils/run-ledger.js.map +1 -1
  52. package/dist/utils/secrets.d.ts +14 -0
  53. package/dist/utils/secrets.d.ts.map +1 -1
  54. package/dist/utils/secrets.js +14 -0
  55. package/dist/utils/secrets.js.map +1 -1
  56. package/package.json +1 -1
@@ -24,6 +24,8 @@
24
24
  * provider whose record CRUD is wired up today). INWX users get
25
25
  * a clear "add an A record yourself" hint.
26
26
  */
27
+ import { existsSync, readFileSync } from "node:fs";
28
+ import { join } from "node:path";
27
29
  import chalk from "chalk";
28
30
  import ora from "ora";
29
31
  import { getCoolifyConfig, getDnsConfig } from "../config.js";
@@ -150,22 +152,37 @@ export async function wireProjectIntoCoolify(input) {
150
152
  }
151
153
  }
152
154
  else {
155
+ // Pick the compose service name the public domain should bind to.
156
+ // Coolify's dockercompose build pack rejects a flat `domains` field
157
+ // (422 — "Use docker_compose_domains instead") because routing has
158
+ // to be per-service. Resolution order:
159
+ // 1. Explicit `dockerComposeServiceName` from the caller (e.g.
160
+ // adopt's stepper override).
161
+ // 2. Auto-detect from the project's compose file by port match,
162
+ // so user-authored composes with non-default service names
163
+ // (`web`, `client`, …) just work.
164
+ // 3. `app` — hatchkit's scaffolded compose template uses that
165
+ // name. Safe fallback when neither signal is present.
166
+ const dockerComposeServiceName = buildPack === "dockercompose"
167
+ ? (input.dockerComposeServiceName ??
168
+ pickComposeServiceForPort(input.projectDir, portsExposes))
169
+ : undefined;
153
170
  const baseInput = {
154
171
  projectUuid,
155
172
  serverUuid: resolveServer.uuid,
156
173
  gitRepository: repoRef.gitRepository,
157
174
  gitBranch: input.gitBranch ?? "main",
158
- portsExposes: input.portsExposes ?? "3000",
175
+ portsExposes,
159
176
  // hatchkit's canonical pipeline = GitHub Actions builds image →
160
177
  // pushes to GHCR → Coolify pulls via docker-compose.yml. Caller
161
178
  // can still override (e.g. for legacy nixpacks paths) but
162
179
  // `dockercompose` is the default for any project that's gone
163
180
  // through `hatchkit adopt`'s build-pipeline scaffold.
164
- buildPack: input.buildPack ?? "dockercompose",
181
+ buildPack,
165
182
  name: input.projectName,
166
183
  description: "Adopted by hatchkit",
167
184
  domains: [appDomain],
168
- dockerComposeDomainServiceName: input.dockerComposeServiceName ?? "app",
185
+ dockerComposeDomainServiceName: dockerComposeServiceName,
169
186
  instantDeploy: false,
170
187
  };
171
188
  const createApp = ora(`Coolify: creating app for ${repoRef.gitRepository}`).start();
@@ -223,16 +240,24 @@ export async function wireProjectIntoCoolify(input) {
223
240
  // misconfigured public_ipv4 / proxy setups).
224
241
  const ips = await discoverPublicIps(api, resolveServer.uuid, server.ip, cfg.url);
225
242
  const dnsResult = await wireDns(input.domain, ips);
226
- // ── 7. Trigger first deploy. ───────────────────────────────────────
227
- const deploy = ora("Coolify: triggering first deploy").start();
228
- try {
229
- await api.deployApplication(appUuid);
230
- deploy.succeed("Coolify: deploy triggered");
231
- }
232
- catch {
233
- deploy.fail("Coolify: couldn't auto-trigger the deploy");
234
- console.log(chalk.dim(` Click "Deploy" in the Coolify dashboard — the app exists, just isn't running yet.`));
235
- }
243
+ // ── 7. First deploy is owned by GitHub Actions, not us. ─────────────
244
+ //
245
+ // The compose file references `ghcr.io/<owner>/<repo>:latest`, which
246
+ // only exists after the scaffolded `.github/workflows/deploy.yml`
247
+ // has run (build → push to GHCR → call Coolify's deploy webhook).
248
+ // If we trigger a deploy here, Coolify tries to pull an image that
249
+ // hasn't been pushed yet and fails with `unauthorized` (GHCR's
250
+ // generic "manifest not found / no creds" response).
251
+ //
252
+ // The canonical hatchkit pipeline:
253
+ // adopt scaffolds workflow → adopt pushes branch → Actions builds
254
+ // + pushes image to GHCR → Actions hits Coolify deploy webhook →
255
+ // Coolify pulls + starts containers.
256
+ //
257
+ // So we just print a heads-up here and let the workflow do its job.
258
+ console.log(chalk.dim(` · First deploy runs when GitHub Actions builds + pushes the image to GHCR.\n` +
259
+ " Watch the workflow in the repo's Actions tab; Coolify auto-pulls via\n" +
260
+ " the deploy webhook once the image is up."));
236
261
  return {
237
262
  appUuid,
238
263
  projectUuid,
@@ -347,8 +372,50 @@ async function wireDns(domain, ips) {
347
372
  result.managed = true;
348
373
  }
349
374
  }
375
+ // Edge hardening — only attempt once we've actually managed at least
376
+ // one record on this zone (i.e. it's a hatchkit-relevant zone, not a
377
+ // bystander one we happened to look up). Pure best-effort: failures
378
+ // here are logged but never fail the wire-up. Stricter user-set
379
+ // values are preserved (see CloudflareApi.enableEdgeHardening).
380
+ if (result.managed) {
381
+ const harden = ora(`Cloudflare: applying edge protection to ${zone.name}`).start();
382
+ try {
383
+ const r = await cf.enableEdgeHardening(zone.id);
384
+ const summary = [];
385
+ if (r.changed.length > 0) {
386
+ summary.push(`${r.changed.length} updated`);
387
+ }
388
+ if (r.kept.length > 0) {
389
+ summary.push(`${r.kept.length} already strict`);
390
+ }
391
+ if (r.failed.length > 0) {
392
+ summary.push(`${r.failed.length} skipped`);
393
+ }
394
+ harden.succeed(`Cloudflare: edge protection on ${zone.name}` +
395
+ (summary.length > 0 ? ` (${summary.join(", ")})` : ""));
396
+ for (const c of r.changed) {
397
+ console.log(chalk.dim(` · ${c.id}: ${formatSetting(c.from)} → ${formatSetting(c.to)}`));
398
+ }
399
+ for (const f of r.failed) {
400
+ console.log(chalk.dim(` · ${f.id} skipped — ${f.error}`));
401
+ }
402
+ }
403
+ catch (err) {
404
+ harden.fail(`Cloudflare: edge protection skipped — ${err.message}`);
405
+ }
406
+ }
350
407
  return result;
351
408
  }
409
+ /** Format a zone-setting value for one-line display. Cloudflare returns
410
+ * string scalars for the toggles we touch but the field is loosely
411
+ * typed; coerce safely. */
412
+ function formatSetting(v) {
413
+ if (typeof v === "string")
414
+ return v;
415
+ if (v == null)
416
+ return "(unset)";
417
+ return JSON.stringify(v);
418
+ }
352
419
  async function upsertOne(cf, zoneId, type, domain, content) {
353
420
  const spinner = ora(`Cloudflare: upserting ${type} ${domain} → ${content}`).start();
354
421
  try {
@@ -366,6 +433,117 @@ async function upsertOne(cf, zoneId, type, domain, content) {
366
433
  return undefined;
367
434
  }
368
435
  }
436
+ /** Read the project's compose file and pick the service the public
437
+ * domain should bind to under Coolify's dockercompose build pack.
438
+ *
439
+ * Why this exists: Coolify's API rejects the flat `domains` field for
440
+ * dockercompose apps and requires `docker_compose_domains` keyed by
441
+ * service name (422 — "Use docker_compose_domains instead to set
442
+ * domains for individual services"). The compose file is the source
443
+ * of truth for which service names exist on this project, so we read
444
+ * it directly instead of guessing.
445
+ *
446
+ * Selection rules (first match wins):
447
+ * 1. A service whose `ports:` mapping includes `<portsExposes>` —
448
+ * most accurate signal that this is the public-facing service.
449
+ * 2. The first top-level service in the file — a sensible fallback
450
+ * for compose files written without explicit port mappings (e.g.
451
+ * hatchkit's own template, where the app service exposes the
452
+ * port via a build arg).
453
+ * 3. `app` — the service name in hatchkit's compose template. Used
454
+ * when there's no compose file on disk yet (the build-pipeline
455
+ * scaffold may have written it after a hatchkit run that didn't
456
+ * reach this branch) or the file can't be parsed.
457
+ *
458
+ * We deliberately avoid pulling in a YAML library — the regex below
459
+ * matches top-level `<name>:` keys and `<host>:<container>` port
460
+ * entries, which is enough for any compose file that compose itself
461
+ * parses successfully. */
462
+ function pickComposeServiceForPort(projectDir, portsExposes) {
463
+ if (!projectDir)
464
+ return "app";
465
+ for (const name of ["compose.yaml", "compose.yml", "docker-compose.yaml", "docker-compose.yml"]) {
466
+ const path = join(projectDir, name);
467
+ if (!existsSync(path))
468
+ continue;
469
+ try {
470
+ const content = readFileSync(path, "utf-8");
471
+ const match = matchComposeService(content, portsExposes);
472
+ if (match)
473
+ return match;
474
+ }
475
+ catch {
476
+ // Fall through to the default — better to send a request that
477
+ // might fail with a clearer Coolify error than to crash the
478
+ // adopt flow on a malformed compose file.
479
+ }
480
+ break;
481
+ }
482
+ return "app";
483
+ }
484
+ /** Extract service-name candidates from a compose file. Returns the
485
+ * first service with a port mapping that includes `portsExposes`,
486
+ * else the first top-level service, else undefined. */
487
+ function matchComposeService(content, portsExposes) {
488
+ // Find the `services:` block. Anything before it (e.g. version, name)
489
+ // is irrelevant.
490
+ const lines = content.split(/\r?\n/);
491
+ let servicesIndent = -1;
492
+ let inServices = false;
493
+ let firstService;
494
+ let portMatchService;
495
+ let currentService;
496
+ let currentServiceIndent = -1;
497
+ for (const raw of lines) {
498
+ const line = raw.replace(/#.*$/, "").trimEnd();
499
+ if (!line.trim())
500
+ continue;
501
+ const indent = line.length - line.trimStart().length;
502
+ if (!inServices) {
503
+ if (/^services\s*:/.test(line)) {
504
+ inServices = true;
505
+ servicesIndent = indent;
506
+ }
507
+ continue;
508
+ }
509
+ // Exited the services block.
510
+ if (indent <= servicesIndent)
511
+ break;
512
+ // A service header — `<name>:` indented deeper than `services:`
513
+ // and not deeper than another service. We track the first one we
514
+ // see at the shallowest depth; deeper lines belong to the same
515
+ // service definition.
516
+ if (currentServiceIndent === -1 || indent === currentServiceIndent) {
517
+ const m = line.match(/^\s*([A-Za-z0-9_.-]+)\s*:\s*$/);
518
+ if (m) {
519
+ currentService = m[1];
520
+ currentServiceIndent = indent;
521
+ if (!firstService)
522
+ firstService = currentService;
523
+ continue;
524
+ }
525
+ }
526
+ // Inside a service body: look for a port mapping that includes
527
+ // the host or container port we care about. Compose accepts
528
+ // "<host>:<container>", "<container>", or the long form with a
529
+ // `target:` key — we match all three.
530
+ if (currentService && !portMatchService) {
531
+ const portsLine = line.match(/^\s*-\s*"?([0-9]+)(?::([0-9]+))?(?:\/[a-z]+)?"?$/);
532
+ if (portsLine) {
533
+ const host = portsLine[1];
534
+ const container = portsLine[2] ?? portsLine[1];
535
+ if (host === portsExposes || container === portsExposes) {
536
+ portMatchService = currentService;
537
+ }
538
+ }
539
+ const targetLine = line.match(/^\s*target\s*:\s*"?([0-9]+)"?\s*$/);
540
+ if (targetLine && targetLine[1] === portsExposes) {
541
+ portMatchService = currentService;
542
+ }
543
+ }
544
+ }
545
+ return portMatchService ?? firstService;
546
+ }
369
547
  /** Best-effort eTLD+1 inference. Works for the common case
370
548
  * (sub.domain.tld → domain.tld). For multi-segment public suffixes
371
549
  * (foo.co.uk) the user may need to override; rare enough that
@@ -1 +1 @@
1
- {"version":3,"file":"coolify-app.js","sourceRoot":"","sources":["../../src/deploy/coolify-app.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"coolify-app.js","sourceRoot":"","sources":["../../src/deploy/coolify-app.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"coolify.d.ts","sourceRoot":"","sources":["../../src/deploy/coolify.ts"],"names":[],"mappings":"AA8BA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAGnD,MAAM,WAAW,sBAAsB;IACrC;;sCAEkC;IAClC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;kEAE8D;IAC9D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;uDAEmD;IACnD,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,qBAAqB;IACpC;;wDAEoD;IACpD,OAAO,EAAE,MAAM,CAAC;IAChB;;4CAEwC;IACxC,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;oDAEoD;AACpD,wBAAsB,eAAe,CACnC,MAAM,EAAE,aAAa,EACrB,OAAO,GAAE,sBAA2B,GACnC,OAAO,CAAC,qBAAqB,CAAC,CA8HhC"}
1
+ {"version":3,"file":"coolify.d.ts","sourceRoot":"","sources":["../../src/deploy/coolify.ts"],"names":[],"mappings":"AA8BA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAGnD,MAAM,WAAW,sBAAsB;IACrC;;sCAEkC;IAClC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;kEAE8D;IAC9D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;uDAEmD;IACnD,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,qBAAqB;IACpC;;wDAEoD;IACpD,OAAO,EAAE,MAAM,CAAC;IAChB;;4CAEwC;IACxC,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;oDAEoD;AACpD,wBAAsB,eAAe,CACnC,MAAM,EAAE,aAAa,EACrB,OAAO,GAAE,sBAA2B,GACnC,OAAO,CAAC,qBAAqB,CAAC,CA2IhC"}
@@ -63,25 +63,35 @@ export async function runCoolifySetup(config, options = {}) {
63
63
  projectUuid = project.uuid;
64
64
  console.log(chalk.green(` ✓ Project created: ${config.name} (${projectUuid})`));
65
65
  }
66
- // Domain routing: five hosts on one container.
67
- // · https://<domain> — frontend
68
- // · https://api.<domain> API subdomain
69
- // · https://<domain>/api — path-based API (same-origin no CORS)
70
- // · https://<domain>/api/ws — websocket via path
71
- // · https://api.<domain>/ws websocket via subdomain
72
- // Traefik forwards all five to the same Coolify app; the app's
73
- // Express router decides what to do based on Host + path.
66
+ // Domain routing: split across the two public services in the starter's
67
+ // compose file (`server` and `client`). Coolify's dockercompose build
68
+ // pack rejects a flat `domains` field (422 "Use docker_compose_domains
69
+ // instead to set domains for individual services") because routing has
70
+ // to be per-service. The starter ships:
71
+ // · client : Next.js (static or Node) frontend hostname only
72
+ // · server : Express API + WebSocket — every API/WS host
73
+ // Traefik routes each domain to the matching service inside the compose
74
+ // network; the app code itself only needs to handle the path/host
75
+ // dispatch within `server`.
74
76
  const apiDomain = `api.${config.domain}`;
75
- const domains = [
76
- `https://${config.domain}`,
77
+ const frontendDomain = `https://${config.domain}`;
78
+ const backendDomains = [
77
79
  `https://${apiDomain}`,
78
80
  `https://${config.domain}/api`,
79
81
  `https://${config.domain}/api/ws`,
80
82
  `https://${apiDomain}/ws`,
81
83
  ];
84
+ // Coolify's API takes a flat array of `{ name, domain }` entries, one
85
+ // per (service, hostname) pair. Multi-domain services (the server here)
86
+ // get one entry per domain rather than a comma-joined string — easier
87
+ // for Coolify's per-domain routing rules.
88
+ const dockerComposeDomains = [
89
+ { name: "client", domain: frontendDomain },
90
+ ...backendDomains.map((domain) => ({ name: "server", domain })),
91
+ ];
82
92
  console.log(chalk.dim(" Domain routing:"));
83
- console.log(chalk.dim(` Frontend: https://${config.domain}`));
84
- console.log(chalk.dim(` Backend: ${domains.slice(1).join(", ")}`));
93
+ console.log(chalk.dim(` Frontend (client): ${frontendDomain}`));
94
+ console.log(chalk.dim(` Backend (server): ${backendDomains.join(", ")}`));
85
95
  // Application: reuse-by-name. `findApplicationByName` matches across
86
96
  // every project the user can see; first hit wins. Within a single
87
97
  // hatchkit-managed Coolify install, project names are unique enough
@@ -112,13 +122,16 @@ export async function runCoolifySetup(config, options = {}) {
112
122
  // ignore that compose file and try to build the repo directly,
113
123
  // which fails on the monorepo layout.
114
124
  buildPack: "dockercompose",
115
- // Coolify exposes one container port. The starter's server
116
- // listens on `serverPort` and serves client assets in prod —
117
- // that's the right port to route to. The client dev port is a
118
- // build-time concern only.
125
+ // Coolify still requires a `ports_exposes` value even for
126
+ // dockercompose apps it's metadata once the compose file
127
+ // takes over. The server's Express port is the conventional
128
+ // pick.
119
129
  portsExposes: String(options.serverPort ?? 3000),
120
130
  name: appName,
121
- domains,
131
+ // Per-service routing (see comment above). Bypasses the
132
+ // `domains`-flat translation in coolify-api.ts because the
133
+ // starter's compose has more than one public service.
134
+ dockerComposeDomains,
122
135
  // First deploy lands via GitHub Actions on first push, so we
123
136
  // don't need Coolify to start the (empty) container right now.
124
137
  instantDeploy: false,
@@ -1 +1 @@
1
- {"version":3,"file":"coolify.js","sourceRoot":"","sources":["../../src/deploy/coolify.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAEhD,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AA4BrD;;oDAEoD;AACpD,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,MAAqB,EACrB,UAAkC,EAAE;IAEpC,MAAM,GAAG,GAAG,MAAM,gBAAgB,EAAE,CAAC;IACrC,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,MAAM,IAAI,KAAK,CAAC,qEAAqE,CAAC,CAAC;IACzF,CAAC;IAED,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC;IAE/D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,kEAAkE,CAAC,CAAC,CAAC;IAE5F,MAAM,MAAM,GAAG,GAAG,CAAC,4BAA4B,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;IAClE,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,UAAU,EAAE,CAAC;QACvC,MAAM,CAAC,OAAO,CAAC,yBAAyB,OAAO,EAAE,CAAC,CAAC;IACrD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,CAAC,IAAI,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,+BAA+B,GAAG,CAAC,GAAG,KAAM,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;IACvF,CAAC;IAED,MAAM,UAAU,GAAG,MAAM,iBAAiB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IAExD,mEAAmE;IACnE,oEAAoE;IACpE,yBAAyB;IACzB,IAAI,WAAmB,CAAC;IACxB,MAAM,eAAe,GAAG,MAAM,GAAG,CAAC,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACjE,IAAI,eAAe,EAAE,CAAC;QACpB,WAAW,GAAG,eAAe,CAAC,IAAI,CAAC;QACnC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,oCAAoC,MAAM,CAAC,IAAI,KAAK,WAAW,GAAG,CAAC,CAAC,CAAC;IAC7F,CAAC;SAAM,CAAC;QACN,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACrD,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;QAC3B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,wBAAwB,MAAM,CAAC,IAAI,KAAK,WAAW,GAAG,CAAC,CAAC,CAAC;IACnF,CAAC;IAED,+CAA+C;IAC/C,iDAAiD;IACjD,sDAAsD;IACtD,+EAA+E;IAC/E,2DAA2D;IAC3D,gEAAgE;IAChE,+DAA+D;IAC/D,0DAA0D;IAC1D,MAAM,SAAS,GAAG,OAAO,MAAM,CAAC,MAAM,EAAE,CAAC;IACzC,MAAM,OAAO,GAAG;QACd,WAAW,MAAM,CAAC,MAAM,EAAE;QAC1B,WAAW,SAAS,EAAE;QACtB,WAAW,MAAM,CAAC,MAAM,MAAM;QAC9B,WAAW,MAAM,CAAC,MAAM,SAAS;QACjC,WAAW,SAAS,KAAK;KAC1B,CAAC;IAEF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,CAAC;IAC5C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,yBAAyB,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IACjE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,iBAAiB,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;IAEvE,qEAAqE;IACrE,kEAAkE;IAClE,oEAAoE;IACpE,kEAAkE;IAClE,sCAAsC;IACtC,MAAM,OAAO,GAAG,GAAG,MAAM,CAAC,IAAI,MAAM,CAAC;IACrC,IAAI,OAAe,CAAC;IACpB,MAAM,WAAW,GAAG,MAAM,GAAG,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC;IAC7D,IAAI,WAAW,EAAE,CAAC;QAChB,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC;QAC3B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,wCAAwC,OAAO,KAAK,OAAO,GAAG,CAAC,CAAC,CAAC;IACzF,CAAC;SAAM,CAAC;QACN,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CACb,qFAAqF,CACtF,CAAC;QACJ,CAAC;QACD,MAAM,MAAM,GAAG,GAAG,CAAC,wBAAwB,OAAO,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;QAC9D,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,+BAA+B,CAAC;gBACxD,WAAW;gBACX,UAAU;gBACV,eAAe,EAAE,YAAY;gBAC7B,aAAa,EAAE,OAAO,CAAC,OAAO;gBAC9B,SAAS,EAAE,MAAM;gBACjB,+DAA+D;gBAC/D,+DAA+D;gBAC/D,4DAA4D;gBAC5D,+DAA+D;gBAC/D,sCAAsC;gBACtC,SAAS,EAAE,eAAe;gBAC1B,2DAA2D;gBAC3D,6DAA6D;gBAC7D,8DAA8D;gBAC9D,2BAA2B;gBAC3B,YAAY,EAAE,MAAM,CAAC,OAAO,CAAC,UAAU,IAAI,IAAI,CAAC;gBAChD,IAAI,EAAE,OAAO;gBACb,OAAO;gBACP,6DAA6D;gBAC7D,+DAA+D;gBAC/D,aAAa,EAAE,KAAK;aACrB,CAAC,CAAC;YACH,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;YACvB,MAAM,CAAC,OAAO,CAAC,wBAAwB,OAAO,KAAK,OAAO,GAAG,CAAC,CAAC;QACjE,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,IAAI,EAAE,CAAC;YACd,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC;IAED,gEAAgE;IAChE,gEAAgE;IAChE,8DAA8D;IAC9D,oEAAoE;IACpE,oCAAoC;IACpC,MAAM,IAAI,GAA2B;QACnC,QAAQ,EAAE,YAAY;QACtB,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,UAAU,IAAI,IAAI,CAAC;QACxC,YAAY,EAAE,WAAW,MAAM,CAAC,MAAM,EAAE;KACzC,CAAC;IACF,MAAM,GAAG,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACnC,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,KAAK,CACT,WAAW,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,6BAA6B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAChG,CACF,CAAC;IAEF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC,CAAC;IAE5D,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC;AAClC,CAAC;AAED;;;2BAG2B;AAC3B,KAAK,UAAU,iBAAiB,CAAC,GAAe,EAAE,MAAqB;IACrE,IAAI,MAAM,CAAC,UAAU;QAAE,OAAO,MAAM,CAAC,UAAU,CAAC;IAEhD,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QACpB,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC5D,IAAI,KAAK;YAAE,OAAO,KAAK,CAAC,IAAI,CAAC;IAC/B,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,WAAW,EAAE,CAAC;IACxC,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IACzB,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,wEAAwE,CAAC,CAAC;IAC5F,CAAC;IACD,kEAAkE;IAClE,iEAAiE;IACjE,uDAAuD;IACvD,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;IACrD,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,6CAA6C,KAAK,CAAC,IAAI,MAAM,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC;IAC7F,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC;AACpB,CAAC"}
1
+ {"version":3,"file":"coolify.js","sourceRoot":"","sources":["../../src/deploy/coolify.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,68 @@
1
+ import type { CoolifyApi } from "../utils/coolify-api.js";
2
+ export interface GhcrSetupOptions {
3
+ /** Owner/repo slug, e.g. `trebeljahr/extinction-protocol`. */
4
+ repoSlug: string;
5
+ /** Maximum time to wait for the first Actions push to create the
6
+ * package in GHCR. Default 5 minutes — enough headroom for cold
7
+ * builds without keeping the user staring at a spinner forever. */
8
+ waitTimeoutMs?: number;
9
+ /** How often to recheck whether the package exists. Default 8s —
10
+ * matches GHCR's typical sync delay after a push. */
11
+ pollIntervalMs?: number;
12
+ }
13
+ /** Outcome surface for adopt's caveats list. The caller logs success
14
+ * inline and only forwards `failed`/`skipped` to the run's caveat
15
+ * block — that way the user sees the recovery recipe right where
16
+ * they need it. */
17
+ export type GhcrSetupResult = {
18
+ kind: "public-set";
19
+ visibility: "public";
20
+ } | {
21
+ kind: "private-registered";
22
+ registryUuid: string;
23
+ } | {
24
+ kind: "skipped";
25
+ reason: string;
26
+ recovery: string[];
27
+ } | {
28
+ kind: "failed";
29
+ reason: string;
30
+ recovery: string[];
31
+ };
32
+ /**
33
+ * Path A — make the GHCR package public.
34
+ *
35
+ * Runs after `pushInitialBranch` so we know Actions has been triggered.
36
+ * The poll loop waits for the registry to surface the package (anonymous
37
+ * token endpoint returns 200 once the package row exists, regardless of
38
+ * visibility), then PATCHes visibility. Bounded by `waitTimeoutMs` so
39
+ * the user isn't stuck if Actions failed for an unrelated reason.
40
+ */
41
+ export declare function makeGhcrPackagePublic(options: GhcrSetupOptions): Promise<GhcrSetupResult>;
42
+ /**
43
+ * Path B — register a GHCR PAT with Coolify so it can pull a private
44
+ * package. Reads the PAT (and its owner login) from `getGhcrConfig()`;
45
+ * when missing, surfaces a caveat pointing at `hatchkit config add
46
+ * ghcr` rather than prompting mid-adopt.
47
+ *
48
+ * Username vs repo owner: the registry login docker uses is the *PAT
49
+ * owner's* GitHub username, not necessarily the repo owner. They line
50
+ * up for personal repos but diverge for org-owned repos pulled with a
51
+ * personal PAT. Callers pass the username explicitly.
52
+ *
53
+ * The Coolify private-registries endpoint is system-wide: once a creds
54
+ * entry exists for `ghcr.io`, every app on every server in this Coolify
55
+ * install pulls authenticated from there. So we only register once per
56
+ * Coolify install (idempotent on hostname).
57
+ */
58
+ export declare function registerGhcrCredsWithCoolify(options: GhcrSetupOptions & {
59
+ api: CoolifyApi;
60
+ /** GHCR PAT (scope `read:packages`). Caller owns the keychain
61
+ * lookup so this module stays IO-free aside from `gh`. */
62
+ pullToken: string | undefined;
63
+ /** GitHub login the PAT belongs to. Sent as the registry username.
64
+ * When undefined we treat it as "creds incomplete" and surface
65
+ * the same `config add ghcr` caveat. */
66
+ username: string | undefined;
67
+ }): Promise<GhcrSetupResult>;
68
+ //# sourceMappingURL=ghcr.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ghcr.d.ts","sourceRoot":"","sources":["../../src/deploy/ghcr.ts"],"names":[],"mappings":"AAkCA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAG1D,MAAM,WAAW,gBAAgB;IAC/B,8DAA8D;IAC9D,QAAQ,EAAE,MAAM,CAAC;IACjB;;wEAEoE;IACpE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;0DACsD;IACtD,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;;oBAGoB;AACpB,MAAM,MAAM,eAAe,GACvB;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,UAAU,EAAE,QAAQ,CAAA;CAAE,GAC5C;IAAE,IAAI,EAAE,oBAAoB,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,GACpD;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;CAAE,GACvD;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC;AAE3D;;;;;;;;GAQG;AACH,wBAAsB,qBAAqB,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,eAAe,CAAC,CAiE/F;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,4BAA4B,CAChD,OAAO,EAAE,gBAAgB,GAAG;IAC1B,GAAG,EAAE,UAAU,CAAC;IAChB;+DAC2D;IAC3D,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B;;6CAEyC;IACzC,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;CAC9B,GACA,OAAO,CAAC,eAAe,CAAC,CA2C1B"}