3.5 KiB
3.5 KiB
Vaultwarden Restore Runbook
Vorbedingungen
- Borg-Quelle ist verfuegbar
- Secret-Datei vorhanden:
/mnt/user/appdata/secrets/vaultwarden_admin_token.txt - Borg-Passphrase-Datei vorhanden:
/mnt/user/appdata/secrets/borg_repo_passphrase.txt - Testpfade unter
/mnt/user/backups/restore-lab/und/mnt/user/backups/restore-reports/sind freigegeben
Bestaetigter Host-Stand
borgist im Containerborg-uiverfuegbarBORG_BACKUP_PATHist imborg-ui-Container auf/backupsgesetzt- produktive Vaultwarden-Daten liegen unter
/mnt/user/appdata/vaultwarden - produktives Admin-Token liegt unter
/mnt/user/appdata/secrets/vaultwarden_admin_token.txt restore-labundrestore-reportssind auf dem Host vorhanden
Beobachtete Borg-Hinweise
- beobachtetes produktives Repo:
ssh://u565255@u565255.your-storagebox.de:23/./hetzner_borg_appdata_critical - beobachtete Archivnamen:
Taegliche-Sicherung-2026-04-16T04:30:02.798Taegliche-Sicherung-2026-04-17T04:30:31.660- aeltere manuelle Beispiele:
manual-backup-2026-04-12T17:17:30manual-backup-2026-04-12T17:35:17
Hinweis:
Vor dem ersten echten Restore-Lauf immer das aktuelle Archiv mit borg list erneut pruefen.
Platzhalter
ARCHIVE_NAME: Borg-Archiv fuer den Restore-TestREPORT_DATE: z. B.2026-05-06BORG_REPO: Host-Borg-Repo, z. B. das produktivecritical_infraBORG_PASSPHRASE_FILE:/mnt/user/appdata/secrets/borg_repo_passphrase.txt
Ablauf
- Testpfade vorbereiten
mkdir -p /mnt/user/backups/restore-lab/vaultwarden/data
mkdir -p /mnt/user/backups/restore-reports
rm -rf /mnt/user/backups/restore-lab/vaultwarden/data/*
- Vaultwarden-Daten aus Borg in das Restore-Lab extrahieren
Archiv zuerst pruefen:
export BORG_REPO='...'
export BORG_PASSPHRASE="$(cat /mnt/user/appdata/secrets/borg_repo_passphrase.txt)"
borg list "$BORG_REPO"
Restore in das Testziel:
cd /mnt/user/backups/restore-lab/vaultwarden
borg extract "$BORG_REPO" "::ARCHIVE_NAME" local/appdata/vaultwarden
mv /mnt/user/backups/restore-lab/vaultwarden/local/appdata/vaultwarden /mnt/user/backups/restore-lab/vaultwarden/data
rmdir /mnt/user/backups/restore-lab/vaultwarden/local/appdata
rmdir /mnt/user/backups/restore-lab/vaultwarden/local
Wenn das Archiv den Pfad anders ablegt, zuerst mit borg list "$BORG_REPO" "::ARCHIVE_NAME" den exakten Eintrag pruefen.
Zielpfad nach dem Restore:
/mnt/user/backups/restore-lab/vaultwarden/data
- Testcontainer starten
docker compose -f /mnt/user/services/homelab/ops/restore-tests/vaultwarden-compose.test.yml up -d
- Smoke-Test
curl -I http://127.0.0.1:18080
docker logs restoretest-vaultwarden --tail 50
Minimal erfolgreich:
- HTTP-Antwort kommt
- Login-Seite ist erreichbar
- Vaultwarden-Daten liegen im Restore-Lab vor
- Testcontainer wieder stoppen
docker compose -f /mnt/user/services/homelab/ops/restore-tests/vaultwarden-compose.test.yml down
- Report schreiben
Ziel:
/mnt/user/backups/restore-reports/vaultwarden-REPORT_DATE.md
- Testdaten nach erfolgreichem Lauf bereinigen
rm -rf /mnt/user/backups/restore-lab/vaultwarden/data
Festgelegte Entscheidungen
- Testdaten werden nach erfolgreichem Lauf geloescht.
ntfywird nicht im ersten echten Lauf eingebunden.ntfyfolgt spaeter, wenn der manuelle Basisablauf stabil verifiziert ist.- Die Borg-Passphrase wird fuer Restore-Tests aus einer Host-Secret-Datei gelesen, nicht aus Borg-UI-Interna.