Server aktualisieren und Backups
Aktualisieren
ℹ️ Dieser Weg gilt für den eigenen Server. Betreibt ihr jotti per Windows-Doppelklick, folgt stattdessen Aktualisieren (Standardweg).
Tragt in der .env unter JOTTI_VERSION die gewünschte Release-Version ein (die
aktuelle Nummer steht auf der
GitHub-Releases-Seite) und führt
make prod-update aus. Das Skript sichert die Datenbank automatisch, bevor es die
neuen Images zieht und die Migrationen ausführt, und prüft danach die Gesundheit.
Bleibt der Stack ungesund, bricht es ab und zeigt, wie ihr mit dem eben erstellten
Backup zurückkehrt.
🔁 Nur vorwärts, kein Downgrade. Updates verändern die Datenbank und lassen sich nicht zurücknehmen; eine ältere Version kann mit den neuen Daten nicht mehr starten. Wollt ihr zurück, spielt ein Backup ein (
make prod-restore).
Backups
jotti speichert alle Daten in einem Docker-Volume. Macht regelmäßige Backups, schon wegen der gesetzlichen 10-Jahre-Aufbewahrung.
-
Sichern:
make prod-backupzieht einen komprimiertenpg_dumpin den OrdnerBACKUP_DIR(Standard./backups) und behält die neuestenBACKUP_KEEPStück. -
Wiederherstellen:
make prod-restorefragt eine Bestätigung ab und spielt das neueste Backup zurück. Das überschreibt die aktuelle Datenbank. Einen bestimmten Dump stellt ihr per Argument wieder her:./scripts/prod-restore.sh <datei>. Die Bestätigung nennt Dump und Compose-Datei; standardmäßigdocker-compose.prod.yml, überCOMPOSE_FILEauf einen anderen Stack umstellbar (gilt ebenso fürmake prod-backup). -
Prüfen (gelegentlich):
make prod-backup-verifyspielt das neueste Backup in einen Wegwerf-Postgres ein und meldet die Tabellenzahl. So wisst ihr, dass ein Backup wirklich wiederherstellbar ist, ohne den laufenden Betrieb anzufassen. Einen bestimmten Dump prüft ihr per Argument:./scripts/prod-backup-verify.sh <datei>. -
Täglich automatisch: Für einen täglichen Dump liegen Vorlagen im Repository (systemd-Timer unter
packaging/systemd/oder cron unterpackaging/cron/); die Installationsschritte stehen als Kommentar in den Dateien. -
Überwachung (optional): Tragt unter
BACKUP_PING_URLdie URL eines Überwachungsdienstes ein (z. B. healthchecks.io). Nach jedem erfolgreichen Backup ruft das Skript sie einmal auf. Bleibt der Aufruf aus, schlägt der Dienst Alarm (Dead-Man-Switch). So merkt ihr, wenn ein automatischer Lauf still ausfällt. Welchen Dienst ihr nutzt, ist frei wählbar; ein Fehlschlag des Aufrufs gefährdet das Backup nicht. -
Extern kopieren: Holt die Dumps auf einen anderen Rechner, damit sie einen Serverausfall überstehen. Ein Einzeiler dafür, vom Zielrechner aus (Pfad und Zugang anpassen):
Terminal-Fenster rsync -avz admin@SERVER:/pfad/zu/jotti/backups/ ./jotti-backups/
💾 Backups außer Haus kopieren. Ein Backup, das nur auf demselben Server liegt, hilft bei dessen Ausfall nicht. Kopiert die Dumps regelmäßig weg.