Prüfung / pruefung (push) Canceled after 0s
deploy/update.sh und deploy/backup.sh konnten nur Docker. Beide erkennen die Installationsart jetzt selbst und beherrschen auch die Installation als Dienst: npm ci, prisma migrate deploy, bauen, systemctl restart - und pg_dump ueber DATABASE_URL fuer die Sicherung. Beim Durchspielen gegen einen laufenden Stapel zwei Fehler gefunden: 1. Die Zustandspruefung des Web-Containers konnte nie gelingen. Next bindet im Standalone-Modus an die Adresse aus HOSTNAME, und Docker setzt dort den Containernamen - der Server lauschte nur auf der Container-IP. Der Dienst web blieb dauerhaft auf "health: starting". Behoben mit ENV HOSTNAME=0.0.0.0; geprueft wird jetzt ueber 127.0.0.1. 2. Eine fehlgeschlagene Sicherung hielt die Aktualisierung nicht auf. Jetzt bricht sie ab, bevor etwas veraendert wird, und nennt die Auswege. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
46 lines
1.7 KiB
Markdown
46 lines
1.7 KiB
Markdown
# Sicherung und Wiederherstellung
|
||
|
||
## Was gesichert werden muss
|
||
|
||
| Sache | Wo | Ohne sie |
|
||
|---|---|---|
|
||
| Datenbank | PostgreSQL | alles weg: Hosts, Kunden, Laufzeiten, Rechnungen |
|
||
| `APP_SECRET` | `.env` | alle Sitzungen ungültig, SMTP- und Webhook-Zugangsdaten unlesbar |
|
||
| Hochgeladene PDFs | `/data/uploads` (Docker-Volume) bzw. `/opt/proxledger/data/uploads` | Rechnungsanhänge fehlen |
|
||
|
||
Die Agents brauchen **keine** Sicherung: Sie registrieren sich neu, und die Zuordnung hängt an der
|
||
Maschinenkennung, nicht an einem Token.
|
||
|
||
## Sichern
|
||
|
||
```bash
|
||
bash deploy/backup.sh /var/backups/proxledger
|
||
```
|
||
|
||
Das Skript erkennt selbst, ob die Installation mit Docker oder als Dienst läuft, und sichert in beiden
|
||
Fällen Datenbank, Uploads und `.env`. Beim LXC-Weg reicht zusätzlich die gewohnte Proxmox-Sicherung
|
||
des Containers.
|
||
|
||
Vor jeder Aktualisierung läuft es ohnehin automatisch – [`deploy/update.sh`](../../deploy/update.sh)
|
||
ruft es als Erstes auf und bricht ab, wenn es fehlschlägt.
|
||
|
||
## Zurückspielen
|
||
|
||
```bash
|
||
# Docker
|
||
docker compose down
|
||
docker compose up -d postgres
|
||
gunzip -c sicherung.sql.gz | docker compose exec -T postgres psql -U proxledger proxledger
|
||
docker compose up -d
|
||
```
|
||
|
||
Danach die `.env` mit **demselben** `APP_SECRET` zurücklegen wie zum Zeitpunkt der Sicherung. Ein
|
||
anderer Wert lässt die gespeicherten Zugangsdaten unlesbar werden; das Dashboard sagt das beim
|
||
nächsten Versand deutlich, aber die Werte müssen dann neu eingetragen werden.
|
||
|
||
## Das Wichtigste
|
||
|
||
**Eine Sicherung, die nie zurückgespielt wurde, ist keine Sicherung.** Spielen Sie sie einmal in eine
|
||
leere Testumgebung ein und melden Sie sich dort an. Erst dann wissen Sie, dass Sicherung und
|
||
`APP_SECRET` zusammenpassen.
|