backup.sh spiegelt nach dem lokalen Tarball die Backups per rsync aufs
Proxmox (root@192.168.178.108:/var/lib/vz/mc2-backups) -- Retention via
--delete mitgezogen, chmod 600 erhalten, best-effort (Fehlschlag = lokal
gilt trotzdem). restore.sh kennt den Spiegel: --list zeigt Off-Box,
--pull-offsite holt alles zurueck, und fehlt ein Backup lokal, wird es
automatisch vom Proxmox gezogen (Platte-tot-Fall). Nebenbei latenten
Abbruch in list_backups bei leerem Ordner gefixt (set -e + leeres Glob).
Auth: dedizierter, gehaerteter Key ~/.ssh/mc2_offsite. Live E2E verifiziert.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Behebt 3 von 4 Backup-Luecken (Schicht 1, lokal):
- backup.sh sichert jetzt den ECHTEN Zustand als ein Tarball mc2-state-<ts>.tar.gz:
mem0 (Chroma+history.db), ~/.hermes (config.yaml, .env, plugins/), llama-swap config.
Vorher wurde nur die alte/leere mc2-memory.db gesichert. chmod 600 (enthaelt .env).
- restore.sh: --list / --dry-run / [--yes] <datei|latest>; macht VOR dem Zurueckspielen
ein Sicherheits-Backup, stoppt/startet Dienste, Health-Check. Live round-trip verifiziert.
- mc2-backup.timer/.service: taegliches Backup ~03:30 (vorher gab es KEINE Automatik).
- backend/services/backup.py delegiert an backup.sh (eine Quelle der Wahrheit); UI-Button
+ /api/system/backups zeigen die Tarballs.
- docs/BACKUP.md: Backup/Restore-Anleitung.
Offen (Schicht 2): Off-Box-Spiegel (Box ist Bare Metal -> PBS-Client oder rsync in LXC).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>