Files
ProxLedger/docs/issues/014-deployment.md
T
florian.wildeandClaude Opus 5 0af9187079 feat(deploy): Docker-Abbild, Compose, LXC-Installer und Sicherung (#014)
Mehrstufiges Abbild mit Standalone-Ausgabe, eigener Migrationsdienst, Worker als
ESM-Buendel, LXC-Installer fuer Proxmox, Reverse-Proxy-Beispiele, Sicherungsskript
und Zustandspruefung. Stapel gebaut und mit Agent-Durchlauf geprueft.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-17 23:12:29 +02:00

1.8 KiB
Raw Blame History

#014 Deployment und Dokumentation

Status: erledigt Meilenstein: v0.10.0 Labels: deployment, docs Geschätzt: 8 h Tatsächlich: 0 h 40 min

Ziel

ProxLedger einfach per Docker Compose oder als LXC-Container auf Proxmox betreiben.

Aufgaben

  • Dockerfile (Multi-Stage, Standalone-Output, Non-root)
  • docker-compose.yml (web, worker, postgres), .env.example
  • Migrationen beim Start, Healthcheck
  • LXC-Installer im Stil der Community-Scripts (Debian, Ressourcenabfrage, systemd-Dienste)
  • Reverse-Proxy-Beispiele (Caddy, nginx, Traefik)
  • README (Deutsch): Dashboard installieren → Enrollment-Token → Agent ausrollen
  • Backup-/Restore-Anleitung für die Datenbank und Uploads

Akzeptanzkriterien

  • docker compose up -d auf frischem System ergibt lauffähiges Dashboard
  • LXC-Installer auf PVE 9 erfolgreich

Abhängigkeiten

#013

Notizen / Entscheidungen

  • Migrationen als eigener Dienst: Das Laufzeit-Abbild enthält keine Prisma-CLI mehr. Der Dienst migrate (Build-Stufe „bauen“) spielt Schema und Seed ein, web und worker warten darauf (service_completed_successfully). Vorher scheiterte der Start an fehlenden CLI-Abhängigkeiten.
  • Worker als ESM-Bündel: Der erzeugte Prisma-Client nutzt import.meta.url, das CommonJS nicht kennt. Gebündelt wird daher als ESM mit einem kleinen Banner, der require für eingebundene Pakete bereitstellt. Extern bleiben nur @prisma/client, @node-rs/argon2 und pg-native.
  • Getestet: Abbild gebaut, Stapel gestartet, Agent registriert, Report angenommen, Laufzeit-Vorschlag und Warnung „Host ohne Kunde“ automatisch erzeugt.
  • Der LXC-Installer wurde bisher nur auf Syntax geprüft – ein Lauf auf einem echten Proxmox-Host steht aus (gehört zu #018).