Etappe 6: Marken-Dateien, README mit Screenshots, Docker Compose und LXC-Installer. Refs #017, #018, #019 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
30 lines
1.5 KiB
Markdown
30 lines
1.5 KiB
Markdown
# #019 Docker-Image und LXC-Installer
|
||
**Status:** erledigt
|
||
**Meilenstein:** v0.6.0
|
||
**Labels:** infrastruktur
|
||
**Geschätzt:** 6 h **Tatsächlich:** 0 h 20 min
|
||
|
||
## Ziel
|
||
Produktionsbetrieb per Docker Compose oder in einem Debian-LXC.
|
||
|
||
## Aufgaben
|
||
- [x] Dockerfile (standalone, non-root), Compose mit migrate – lokal komplett hochgefahren (migrate → app healthy, worker bereit, Anmeldung)
|
||
- [x] `deploy/install-lxc.sh` (auf dem Proxmox-Host) + `deploy/im-container.sh`, Update-Pfad (`--aktualisieren`, drei Fassungen zum Zurückgehen)
|
||
- [x] Gemeinsames Laufzeit-Paket `scripts/paket-bauen.sh` für beide Wege
|
||
- [x] Migrationen ohne Prisma-CLI (`src/betrieb/migrieren.ts`), kompatibel zu `_prisma_migrations`
|
||
|
||
## Akzeptanzkriterien
|
||
- [x] 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.
|