67ec40b762
Six files had outdated status notes that the F-09 first run on 2026-05-30 made wrong: - ops/restore-tests/komodo-bootstrap-runbook.md: "Erster echter Lauf steht noch aus" -> first run confirmed - ops/restore-tests/komodo-bootstrap-plan.md: "Noch offen vor dem ersten echten Lauf" section -> "Bestaetigte Laeufe" table with the --what-if and --keep-data runs - ops/restore-tests/immich-runbook.md: status note still said "Erster echter Lauf steht noch aus" although the Immich first run was 2026-05-27; correcting in the same sweep - docs/AUDIT_2026-05-25_TODO.md: Sprint 2 entry on Komodo bootstrap path no longer carries the "Trockenlauf-Skript bleibt als offene Folgeaufgabe" tail - docs/SERVICES_RECOVERY.md: replaced the "Trockenlauf-Idee (Doku-only, nicht ausgefuehrt)" section with the confirmed repo-script flow and marked the two "Naechste Aufgaben" rows about the dry-run as done - docs/RESTORE_DRILL_ROUTINE.md: Q2 2026 DR-Sanity-Check entry now splits Komodo-Bootstrap-Pfad (done) from the two still-open items (Gitea bundles, secrets inventory) No behavior change, only documentation consistency. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Restore Tests
Kontrollierte Restore-Tests fuer homelab-infra.
Ziel:
- Backups durch echte Test-Restores verifizieren
- produktive Pfade nicht beschreiben
- Testlaeufe spaeter weitgehend automatisieren
Grundregeln
- Restore-Quelle bleibt im Backup-Bereich, z. B.
/mnt/user/backups/borg - Test-Restores laufen nur in
/mnt/user/backups/restore-lab - Reports landen in
/mnt/user/backups/restore-reports - Test-Container nutzen das Praefix
restoretest- - keine produktiven Volumes schreibend mounten
- keine produktiven Domains fuer Testinstanzen uebernehmen
Geplante Struktur
schedule.md: Intervalle und Verantwortlichkeitenvaultwarden-restore-test.ps1: erster Mini-Restore-Ablaufvaultwarden-restore-test.sh: hosttauglicher Vaultwarden-Restore-Jobvaultwarden-plan.md: konkreter Vaultwarden-Testplanvaultwarden-compose.test.yml: isolierte Testinstanz fuer Vaultwardengitea-restore-test.ps1: Gitea-Mini-Restore-Ablaufgitea-restore-test.sh: hosttauglicher Gitea-Restore-Jobgitea-plan.md: konkreter Gitea-Testplangitea-compose.test.yml: isolierte Testinstanz fuer Giteapaperless-restore-test.ps1: Paperless-Mini-Restore-Ablaufpaperless-restore-test.sh: hosttauglicher Paperless-Restore-Jobpaperless-plan.md: konkreter Paperless-Testplanpaperless-compose.test.yml: isolierte Testinstanz fuer Paperless inkl. Test-Postgres und Test-Redisimmich-restore-test.ps1: Immich-Mini-Restore-Ablauf als Plan-/Windows-Scaffoldimmich-restore-test.sh: hosttauglicher Immich-Restore-Job, erster echter Lauf noch offenimmich-plan.md: konkreter Immich-Testplanimmich-runbook.md: Operator-Runbook fuer den ersten Immich-Laufimmich-compose.test.yml: isolierte Testinstanz fuer Immich inkl. pgvecto-rs Test-Postgres und Test-Redischeck-restore-freshness.ps1: woechentlicher Frische-Check fuer Dumps und Reportsrun-restore-checks.ps1: einfacher Dispatcher fuer Restore-Jobscheck-restore-freshness.sh: hosttauglicher Frische-Checkrun-restore-checks.sh: hosttauglicher Dispatchercommon.sh: gemeinsame Host-Helferfunktionenautomation-plan.md: Host-Job- und Automatisierungsmodell
Automatisierungsmodell
- Ausfuehrung: Unraid User Script / Host-Job
- Logik: Repo-Skripte in diesem Verzeichnis
- Ergebnis: Markdown-Report
- Meldung:
ntfy - Hermes: optional nur fuer Zusammenfassung und Auswertung
Wichtig:
- die Bash-Skripte
*.shsind die produktive Host-Variante check-restore-freshness.ps1und die*.ps1-Dateien bleiben als lokale Plan-/Hilfsvariante nutzbar- im Windows-Clone fehlen die
/mnt/user/...-Pfade naturgemaess
Validiertes Grundmuster
Stand nach dem ersten echten Vaultwarden-Test:
- Borg-Quelle bleibt das produktive Remote-Repo bei Hetzner
- Borg-Zugriff laeuft praktisch ueber den vorhandenen
borg-ui-Container - SSH-Trust wird ueber
known_hostsimborg-ui-Container hergestellt - die Borg-Passphrase kommt fuer Restore-Tests aus einer Host-Secret-Datei
- Restore-Ziel liegt immer getrennt unter
/mnt/user/backups/restore-lab - Reports liegen unter
/mnt/user/backups/restore-reports - Testinstanzen bekommen keine produktive Domain und keine Traefik-Route
Das ist das bevorzugte Muster fuer weitere dateibasierte Restore-Tests wie gitea.
Fuer datenbankgestuetzte Dienste wie paperless kommt zusaetzlich ein isolierter Dump-Restore in Test-Postgres dazu.
Status
Aktuell ist das erste validierte Muster vorhanden.
- echter Vaultwarden-Restore am 2026-05-07 erfolgreich verifiziert
- echter Gitea-Restore am 2026-05-07 erfolgreich verifiziert
- echter Paperless-Restore am 2026-05-07 erfolgreich verifiziert
- Immich-Restore-Test am 2026-05-26 vorbereitet; erster echter Lauf mit Report steht noch aus
- Bash-Dispatcher und Bash-Restore-Jobs am 2026-05-07 erfolgreich hostseitig verifiziert
- Restore-Lab und Report-Pfade auf dem Host angelegt
- V1-Ablauf weiter ohne
ntfy, mit Bereinigung nach Erfolg - naechster grosser Kandidat ist der erste echte Immich-Lauf mit Zeitmessung; erst danach in die Rotation aufnehmen
Vor dem ersten echten Testlauf muessen Zielpfade, Quellpfade und Bereinigungsschritte bewusst freigegeben werden.