Files
homelab-infra/ops/restore-tests/hetzner-snapshot-runbook.md
T
Micha c4ba67b55c Activate Hetzner snapshot restore test after live validation
Codex first live run passed (SUCCESS, 7 snapshots, single-file restore from .zfs/snapshot; report hetzner-snapshot-2026-06-23.md) with no ENV overrides. Set runbook status to active, document the run, and add the monthly cadence (15th, cron 0 6 15 * *) to schedule.md and the restore-tests README. Remaining host step: create the Unraid User Script restore-hetzner-snapshot-monthly.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-23 13:15:58 +02:00

2.1 KiB

Hetzner Storage Box Snapshot Restore - Runbook

Typ: Runbook · Stand: 2026-06-23 · Status: aktiv (live validiert 2026-06-23)

Belegt den Off-site-Schutz der Hetzner Storage Box. Append-only ist bewusst NICHT umgesetzt (DECISIONS 2026-06-01); der Schutz ist snapshot-basiert (DECISIONS 2026-06-11): operative Borg-Creds koennen weiter prune/compact, die ZFS- Snapshots der Box sind hostseitig nicht loeschbar (taeglich 05:30 UTC, Retention 7 Tage).

Was der Test tut

ops/restore-tests/hetzner-snapshot-restore-test.sh (Dispatcher: hetzner-snapshot):

  1. listet .zfs/snapshot/ auf der Box (READ-ONLY, via SFTP aus dem borg-ui-Container)
  2. zaehlt Snapshots (Retention) + prueft das Alter des neuesten aus dessen Namen
  3. holt eine kleine Datei (<repo>/README) aus dem neuesten Snapshot, prueft Groesse + SHA256
  4. loescht die Temp-Datei und schreibt einen Report nach /mnt/user/backups/restore-reports/

Verbindung (user/host/port/Repo-Verzeichnis) wird aus der in borg-ui konfigurierten Borg-Repo-URL abgeleitet; SSH-Key + known_hosts liegen bereits im Container. Kein Secret im Skript, kein Schreibzugriff, kein prune/compact.

Manuell belegter Referenzlauf (2026-06-23, Codex)

  • Box u565255.your-storagebox.de, .zfs/snapshot sichtbar
  • Snapshots 2026-06-17..2026-06-23, je 05:30 -> 7 Tage Retention
  • neuester: Automatic-2026-06-23T05-30-24
  • Probe hetzner_borg_appdata_critical/README, 73 B, SHA256 erzeugt, Temp geloescht

Live-Validierung (2026-06-23, Codex): erfolgreich

Erstlauf ohne ENV-Anpassung gruen (SUCCESS), Defaults passten direkt:

  • Report: /mnt/user/backups/restore-reports/hetzner-snapshot-2026-06-23.md
  • 7 Snapshots gefunden, neuester Automatic-2026-06-23T05-30-24
  • Einzeldatei-Restore aus .zfs/snapshot erfolgreich

ENV-Override (SNAPSHOT_DIR, PROBE_FILE, SNAPSHOT_NAME_GLOB, SNAPSHOT_SSH_OPTS, MIN_SNAPSHOTS, MAX_SNAPSHOT_AGE_HOURS) bleibt fuer kuenftige Abweichungen verfuegbar.

Verbleibender Host-Schritt (Codex/Du): Unraid-User-Script restore-hetzner-snapshot-monthly anlegen (Cron 0 6 15 * *), Vorlage in unraid-user-scripts.md.