Files
proxdeploy/docs/issues/019-installer.md
T
florian.wildeandClaude Opus 5.5 533a821087 feat(betrieb): Docker Compose und LXC-Installer
Ein Laufzeit-Paket (scripts/paket-bauen.sh) für beide Wege: Next standalone, worker als Bundle mit nur den nötigen Paketen, Migrationen ohne Prisma-CLI. Compose lokal komplett hochgefahren; der Installer auf pve-demo in einem echten Debian-13-LXC durchgelaufen.

Closes #019

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 17:35:41 +02:00

1.5 KiB
Raw Blame History

#019 Docker-Image und LXC-Installer

Status: erledigt Meilenstein: v0.6.0 Labels: infrastruktur Geschätzt: 6 h Tatsächlich: –

Ziel

Produktionsbetrieb per Docker Compose oder in einem Debian-LXC.

Aufgaben

  • Dockerfile (standalone, non-root), Compose mit migrate – lokal komplett hochgefahren (migrate → app healthy, worker bereit, Anmeldung)
  • deploy/install-lxc.sh (auf dem Proxmox-Host) + deploy/im-container.sh, Update-Pfad (--aktualisieren, drei Fassungen zum Zurückgehen)
  • Gemeinsames Laufzeit-Paket scripts/paket-bauen.sh für beide Wege
  • Migrationen ohne Prisma-CLI (src/betrieb/migrieren.ts), kompatibel zu _prisma_migrations

Akzeptanzkriterien

  • Installer in echtem LXC durchgelaufen (pve-demo, CT 109 pd-installer); darin Server angelegt, Verbindungstest, CLI-Login, Dry-Run und ein echter LXC-Auftrag

Abhängigkeiten

#001

Notizen / Entscheidungen

  • Eigener Migrationslauf statt prisma migrate deploy: spart Prisma-CLI und Schema-Engine im Betrieb; schreibt _prisma_migrations wie Prisma (Test prüft prisma migrate status).
  • worker als esbuild-Bundle mit nur den Paketen, die er importiert (aus der Metadatei, exakte Versionen aus der Entwicklung): 103 MB statt 741 MB.
  • Node im LXC von nodejs.org mit SHA-256-Prüfung (Debian 13 hat nur Node 20).
  • ADMIN_PASSWORT wird nach dem ersten Start aus der Env-Datei entfernt; das Passwort steht nur in der Ausgabe.
  • Image 559 MB (node:24.21.0-trixie-slim), läuft als UID 1000; PostgreSQL 17.11.