Files

3.7 KiB

Restore Test Schedule

Ziel

Regelmaessige Restore-Tests mit wenig Handarbeit und klaren Nachweisen.

Intervalle

Woechentlich:

  • Backup-/Dump-Frische pruefen
  • keine echten Restore-Container starten
  • pruefen:
    • Dump-Dateien vorhanden
    • Dump-Dateien nicht zu alt
    • letzte Reports vorhanden

Monatlich:

  • vaultwarden Mini-Restore
  • gitea Mini-Restore, versetzt zum Vaultwarden-Lauf

Alle 2 Monate:

  • paperless Mini-Restore

Quartalsweise:

  • Restore-/DR-Sanity-Check
  • immich Restore-Smoke-Test (DB + UI, ohne produktive Foto-Mounts; Erstlauf 2026-05-27 erfolgreich)
  • pruefen:
    • Restore-Lab-Struktur
    • Reports
    • Skripte und Pfade
    • Doku noch passend

Quartals-Belegung:

Quartal Mini-Restore Sanity-Fokus
Q1 paperless Tier-1-Reihenfolge, Posture-Check, Borg-Frische
Q2 immich Komodo-Bootstrap, Gitea-Bundles, Secrets-Inventur
Q3 mealie oder nextcloud DNS-Pfad und Cert-Expiry-Sicht
Q4 vaultwarden oder gitea Externe Abhaengigkeiten, Hetzner, GitHub-Mirror

Bestaetigte Mini-Restores: Vaultwarden, Gitea und Paperless am 2026-05-07; Immich am 2026-05-27; Paperless erneut am 2026-05-31.

Konkreter Kalender

  • Jeden Montag, 06:30:
    • check-restore-freshness.sh
  • Jeden 1. Samstag im Monat, 07:00:
    • vaultwarden
  • Jeden 3. Samstag im Monat, 07:00:
    • gitea
  • Jeden 2. Samstag in ungeraden Monaten, 08:00:
    • paperless
  • Jeden 1. des Monats, 09:00:
    • monthly-random-restore.sh
  • Quartalsweise am 1. Werktag des Quartals:
    • DR-/Restore-Sanity-Check
  • Quartalsweise am 2. Sonntag im zweiten Quartalsmonat, 08:30:
    • immich

Unraid User Scripts Cron

Script Cron Bedeutung
restore-freshness-weekly 30 6 * * 1 jeden Montag 06:30
restore-vaultwarden-monthly 0 7 1-7 * 6 erster Samstag im Monat 07:00
restore-gitea-monthly 15 7 15-21 * 6 dritter Samstag im Monat 07:15
restore-paperless-bimonthly 0 8 8-14 1,3,5,7,9,11 * zweiter Samstag in ungeraden Monaten 08:00
restore-immich-quarterly 30 8 8-14 2,5,8,11 0 zweiter Sonntag in Feb/Mai/Aug/Nov 08:30
monthly-random-restore 0 9 1 * * erster Kalendertag im Monat 09:00

Betriebsmodus

  • V1:
    • Bash-Jobs laufen hostseitig manuell oder per User Script
    • ntfy ist optional und folgt nach stabiler Basis
    • Hermes wertet spaeter nur Reports aus
  • V2:
    • fester Host-Schedule
    • ntfy bei Erfolg/Fehler
    • Hermes erzeugt Zusammenfassungen und Overviews

Automatisierung

Automatisch:

  • Testpfad vorbereiten
  • Restore in restore-lab
  • Testcontainer restoretest-* starten
  • Smoke-Test ausfuehren
  • Markdown-Report schreiben
  • ntfy Erfolg/Fehler senden
  • alte Testartefakte bereinigen

Manuell:

  • neue Testfaelle einfuehren
  • riskante oder produktionsnahe Sondertests
  • Aenderungen an Restore-Logik
  • Freigabe fuer den ersten echten Restore je Dienst

Ablage

  • Quelle: /mnt/user/backups/borg
  • Restore-Lab: /mnt/user/backups/restore-lab
  • Reports: /mnt/user/backups/restore-reports

Quartals-Sanity

Kurz pruefen:

  • docs/DISASTER_RECOVERY.md Phase 1-5 passt noch zum Repo.
  • docs/RESTORE_MATRIX.md Tier-Klassifizierung und letzte Restore-Erfolge stimmen.
  • docs/SECRETS_MAP.md enthaelt die noetigen Secret-Pfade ohne Werte.
  • Gitea-Bundles sind frisch und klonbar.
  • GitHub-Mirror ist erreichbar und aktuell.
  • ntfy-Testnachricht an homelab-info kommt an.
  • Offline-Kopie der Borg-Passphrase ist auffindbar.
  • Capacity-Stand passt zu docs/CAPACITY_AND_LIFECYCLE.md.

Erfolgsregel

Ein Test gilt erst dann als erfolgreich, wenn:

  • Restore abgeschlossen ist
  • Testcontainer startet
  • definierter Smoke-Test erfolgreich ist
  • Report geschrieben wurde

Nur "Container laeuft" reicht nicht.