#031 Update- und Sicherungsskript für beide Installationsarten #31

Closed
opened 2026-10-03 14:20:38 +00:00 by florian.wilde · 0 comments
Owner

Ziel

deploy/update.sh und deploy/backup.sh konnten nur Docker. Die Installation als Dienst (Node und
PostgreSQL direkt im LXC) ging leer aus – dort half nur der Weg über das Gerüst der community-scripts.

Aufgaben

  • Beide Skripte erkennen die Installationsart selbst (systemd-Dienst oder Docker)
  • Dienst-Weg: npm ci, prisma migrate deploy, bauen, systemctl restart
  • Sicherung für den Dienst-Weg: pg_dump über DATABASE_URL, Uploads aus UPLOAD_DIR
  • Fehlgeschlagene Sicherung bricht die Aktualisierung ab – vor jeder Änderung
  • Hinweis am Ende von deploy/lxc-installer.sh auf die Skripte umgestellt
  • Handbuch und Betriebsdoku angepasst
  • Docker-Weg vollständig durchgespielt

Zwei Fehler beim Durchspielen gefunden

  1. Die Zustandsprüfung des Web-Containers konnte nie gelingen. Next bindet im Standalone-Modus an
    die Adresse aus HOSTNAME – und Docker setzt darin den Containernamen. Der Server lauschte also
    nur auf der Container-IP, nicht auf 127.0.0.1. Der Dienst web blieb dauerhaft auf
    „health: starting“; von außen war er trotzdem erreichbar, deshalb fiel es bisher nicht auf.
    Behoben mit ENV HOSTNAME=0.0.0.0 im Dockerfile; die Prüfungen verwenden jetzt 127.0.0.1
    statt localhost (das löst im Container auch auf ::1 auf).
  2. Die Sicherung scheiterte stumm an fehlenden Rechten (/var/backups gehört root) und die
    Aktualisierung lief trotzdem weiter. Jetzt bricht sie ab und nennt die drei Auswege.

Prüfung

Vollständiger Durchlauf gegen einen laufenden Stapel: Sicherung (Datenbank 6,3 KB mit 25 Tabellen,
Uploads, .env), Abbilder gebaut, migriert, neu gestartet, Dashboard nach zwei Sekunden wieder da.
Danach stand web zum ersten Mal auf healthy.


Quelle: docs/issues/031-update-skript-beide-varianten.md – dort wird dieses Issue gepflegt.

## Ziel `deploy/update.sh` und `deploy/backup.sh` konnten nur Docker. Die Installation als Dienst (Node und PostgreSQL direkt im LXC) ging leer aus – dort half nur der Weg über das Gerüst der community-scripts. ## Aufgaben - [x] Beide Skripte erkennen die Installationsart selbst (systemd-Dienst oder Docker) - [x] Dienst-Weg: `npm ci`, `prisma migrate deploy`, bauen, `systemctl restart` - [x] Sicherung für den Dienst-Weg: `pg_dump` über `DATABASE_URL`, Uploads aus `UPLOAD_DIR` - [x] Fehlgeschlagene Sicherung bricht die Aktualisierung ab – **vor** jeder Änderung - [x] Hinweis am Ende von `deploy/lxc-installer.sh` auf die Skripte umgestellt - [x] Handbuch und Betriebsdoku angepasst - [x] Docker-Weg vollständig durchgespielt ## Zwei Fehler beim Durchspielen gefunden 1. **Die Zustandsprüfung des Web-Containers konnte nie gelingen.** Next bindet im Standalone-Modus an die Adresse aus `HOSTNAME` – und Docker setzt darin den Containernamen. Der Server lauschte also nur auf der Container-IP, nicht auf `127.0.0.1`. Der Dienst `web` blieb dauerhaft auf „health: starting“; von außen war er trotzdem erreichbar, deshalb fiel es bisher nicht auf. Behoben mit `ENV HOSTNAME=0.0.0.0` im Dockerfile; die Prüfungen verwenden jetzt `127.0.0.1` statt `localhost` (das löst im Container auch auf `::1` auf). 2. **Die Sicherung scheiterte stumm an fehlenden Rechten** (`/var/backups` gehört root) und die Aktualisierung lief trotzdem weiter. Jetzt bricht sie ab und nennt die drei Auswege. ## Prüfung Vollständiger Durchlauf gegen einen laufenden Stapel: Sicherung (Datenbank 6,3 KB mit 25 Tabellen, Uploads, `.env`), Abbilder gebaut, migriert, neu gestartet, Dashboard nach zwei Sekunden wieder da. Danach stand `web` zum ersten Mal auf **healthy**. --- Quelle: `docs/issues/031-update-skript-beide-varianten.md` – dort wird dieses Issue gepflegt.
florian.wilde added this to the v0.20.0 milestone 2026-10-03 14:20:38 +00:00
florian.wilde added the deployment label 2026-10-03 14:20:38 +00:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: florian.wilde/ProxLedger#31