Skip to content

Fase 4 · Geoptimaliseerde deployment

Map: deployment/ · Vraag: waar draait het, en draait het écht?

De laatste fase brengt het product live — achter TLS, met gecontroleerde secrets, declaratief geregistreerd en geverifieerd. "Geoptimaliseerd" slaat op het uitgangspunt: niet één product per host, maar meerdere producten die een host delen, elk met eigen stack-unieke aliassen achter één reverse proxy.

Verantwoordelijkheid

BezitDe connectie-artefacten (co-host docker-compose.yml, proxy/Caddyfile, deploy.env, registry-CI), platform.yaml, provisioning, secrets-store, status/health/TLS/in-sync, audit + rollback.
Doet NIETApp-code of productdefinitie schrijven — expliciet out-of-scope in onboard-solution.
Levert opEen live, geverifieerd, declaratief geregistreerd product.

onboard-solution — de skill van deze fase

De skill die naad B overbrugt. Hij onboardt een solution end-to-end op het tofu-deploy-platform, startend vanaf de productdefinitie:

  1. Leidt de deployconfiguratie af uit de specs
  2. Genereert de ontbrekende connectie-artefacten — compose, deploy.env, Caddyfile met stack-unieke aliassen
  3. Registreert het product in platform.yaml
  4. Wired de secrets
  5. Deployt en verifieert
  6. Begeleidt de gebruiker door de stappen die alleen die kan zetten: domeinen, secret-waarden, DNS

De begeleiding is onderdeel van de skill

Punt 6 is geen bijzaak. De skill weet welke stappen menselijk zijn en stopt daar — dat is de gate-logica ingebakken in de uitvoering.

Geen Node-project

deployment/ is OpenTofu + docker-compose + YAML. Het bestaat uit CLI's onder bin/:

CommandoDoet
bin/platform-validateplatform.yaml toetsen aan platform.schema.json
bin/platform-genArtefacten genereren uit de declaratie
bin/tofu-deployPlannen en uitrollen (host, stack, proxy)
bin/platform-secretsSecrets uit de fleet-store halen/zetten
bin/platform-dashboardStatusoverzicht (dashboard.html)
bin/leak-scanControleren dat er geen secrets lekken
bin/install-hooksGit-hooks installeren

De deploy-volgorde

  1. host apply — provisioneert een host. Alleen nodig bij een nieuwe context. Kost geld → gate.
  2. plan — toont wat er zou veranderen.
  3. up — rolt uit. Productie → gate.
  4. verify — health, TLS en in-sync controleren.

platform.yaml — de declaratie

Elk live product staat als declaratieve registratie in platform.yaml, met platform.schema.json ernaast. Dat bestand beantwoordt: wat draait er, waar, en hoort dat zo?

De producten wonen buiten deze repo

platform.yaml beheert negen live producten. Die staan in ~/Projects/seifer-projects/…; deployment/ verwijst ernaar via paden. De repo bevat de besturing, niet de producten.

De gates

GateWat
KostenEen nieuwe host aanzetten
ProductieDaadwerkelijk uitrollen
SecretsDe waarden zelf — Hetzner-token, GHCR-token, Resend-key
Domein + DNSRegistreren en wijzen

Voorbereidende skills

Staat de deploy-vraag nog open, dan zijn dit de skills die hem beantwoorden vóór onboard-solution begint:

SkillBeslissing
cicd-pipeline-designHoe de pipeline eruitziet
iac-planningInfrastructure-as-code-aanpak
environment-strategyDev / staging / productie
secrets-management-designWaar secrets wonen en hoe ze roteren
cloud-architecture-design · networking-designDe hostomgeving
zero-trust-architectureHet toegangsmodel
disaster-recovery-planning · support-rollback-planningWat er gebeurt als het misgaat
sla-definition · slo-sli-definitionWat je belooft en hoe je het meet
observability-strategyWat je ziet als het draait

Volgende

Gates & orchestratie

Seifer — interne documentatie. Bron van waarheid blijft de repo zelf.