Unveränderter Stand von certvia/dev (a48c5fb) plus Craftvia-Spezifikation und Brandbook unter docs/craftvia/. ISMS-Module werden im Folgecommit entfernt. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
3.0 KiB
3.0 KiB
Kickoff-Prompt — Lane A: Garage Infra & Deployment
Du übernimmst Lane A der Objektspeicher-Umstellung MinIO → Garage. Lies zuerst das Gesamtkonzept: docs/KONZEPT-garage-migration.md (v. a. §3 Reibungspunkt, §5 Zielarchitektur, §6 Lane A, §7 Runbook). Randbedingung: nur Test-Instanzen, keine Datenmigration — kompletter Neu-Deploy.
Repo & Branch
- origin:
git.certvia.de/msolarczek/certvia— Basis-Branchdev. - Zweiter Remote (interner Coolify-Test):
local-gitea=gitea.192.168.1.155.sslip.io/msolarczek/ISMS-Tool. Ein Push aufdevlöst den Test-Deploy aus. - Arbeite auf
feature/garage-infra(ausdev), PR nachdev. Nach Mergedevauf beide Remotes pushen.
Ziel
Garage als Compose-Service, der minio in docker-compose.coolify.yml ersetzt — lauffähig auf der Test-Instanz, Admin-API erreichbar, Single-Node-Layout „ready".
Scope (nur diese Dateien/Bereiche)
docker-compose.coolify.yml:minio-Service durchgarageersetzen (nicht sofort löschen — auskommentiert/parallel lassen, bis Lane D abnimmt).garage.toml(neu, als Config-Mount oder über Env) + ggf.docs/DEPLOY-COOLIFY.mdergänzen.- Keine App-Code-Änderung (das ist Lane C).
Vorgaben
- Image pinnen auf eine aktuelle stabile Garage-Version (
dxflrs/garage:vX.Y.Z), nichtlatest. - Ports: 3900 = S3-API (von der App genutzt), 3903 = Admin-API (clusterintern, für Healthcheck/Provisioning), 3902 = Web optional. Nichts nach außen (Traefik) freigeben — genau wie MinIO bisher.
garage.toml:replication_factor = 1(Single-Node),metadata_dir,data_dir,rpc_secret(ausGARAGE_RPC_SECRET), Block[s3_api] s3_region = "us-east-1",api_bind_addr = "[::]:3900", Block[admin] api_bind_addr = "[::]:3903",admin_token(ausGARAGE_ADMIN_TOKEN).- Volumes:
garage_meta → /var/lib/garage/meta(KRITISCH),garage_data → /var/lib/garage/data. - Security analog Bestand:
security_opt: no-new-privileges,cap_drop: ALL, Resource-Limits,restart: unless-stopped. - Healthcheck gegen Admin-API
/health(3903). - Layout-Bootstrap dokumentieren: nach erstem Start Node einer Zone mit Kapazität zuweisen (
garage layout assign …→garage layout apply). Falls möglich, an Lane B (Provisioning-Job) delegieren — dann hier nur vorbereiten. - Secrets:
GARAGE_RPC_SECRET(32-byte hex) undGARAGE_ADMIN_TOKENals Coolify-Env, literal setzen (nicht über${…}referenzieren — bekannte Coolify-Interpolationsfalle). Keine echten Secrets ins Repo oder in Logs.
Definition of Done
- Garage-Container startet in der Test-Instanz, Admin-
/healthgrün, Layout „ready". S3_ENDPOINT=http://garage:3900intern erreichbar (kurzeraws s3 ls/curl-Nachweis).garage_metaals zu sicherndes Volume indocs/DEPLOY-COOLIFY.mdvermerkt.- Übergabepunkt an Lane B (Provisioning) klar dokumentiert (wie CLI/Admin-API erreichbar ist).
Abhängigkeiten
Lane B (Provisioning) baut direkt auf dir auf. Stimme das CLI-/Admin-API-Zugriffsmodell mit Lane B ab.