Skip to content

Generated from corpus/lines/software/units/sw.lifecycle.deploy.md. Do not edit by hand — run python scripts/generate-corpus-docs.py.

sw.lifecycle.deploy

Status: draft (decision-aligned; supersedes archive VPS-default)
Sources: Pipeline Management AGENTS (choreography); D2/D3 2026-07-22
See: docs/software-decisions.md D2, D3

Modular Deploy step

High-level workflow always has a Deploy stage. Details come from inventory picks (see docs/software-decisions.md):

  1. Host option — default host.konstant; allowed host.vercel; host.vps-legacy migration-only; future host.gcp etc.
  2. Shape option (when self-hosted) — shape.static | shape.dynamic-socket | shape.dynamic-always-on

Record host + shape + concrete hostname on the tracking issue (D2a: long-term <slug>.hectorsanchez.eu on konstant).

Shared Deploy choreography (host-agnostic)

  1. Build/verify locally.
  2. Configure secrets for the chosen host option.
  3. Bootstrap once if the host option requires it (konstant: dirs/DNS/TLS/nginx).
  4. Steady state: git push → CI/CD (mechanism from the host option’s templates).
  5. Verify live URL.
  6. Lab: catalog + release per sw.estate.lab (all Lab apps, after live URL).

Detail units (injected by inventory)

Pick Attach Templates (Conductor-owned, D3a:1)
host.konstant + shape.static sw.pattern.static-web templates/deploy/konstant/static/ (TBD populate)
host.konstant + shape.dynamic-socket sw.pattern.dynamic-web + sw.ops.socket-activation templates/deploy/konstant/dynamic-socket/
host.konstant + shape.dynamic-always-on sw.pattern.dynamic-web + always-on justification templates/deploy/konstant/dynamic-always-on/
host.vercel sw.pattern.vercel templates/deploy/vercel/

Executable templates live in this repo; promote/deploy scripts copy from here. Changes go through Conductor proposal/PR governance so an improvement agent can evolve them over time.

Prohibited

  • Planning new deploys to decommissioned VPS
  • Skipping live verify before Lab catalog publish
  • Mixing “no CI” one-off production deploys as the steady state (bootstrap once, then CI/CD)