2.9 KiB
2.9 KiB
Gitea Restore Runbook
Vorbedingungen
- Borg-Quelle ist verfuegbar
- 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
- produktive Gitea-Daten liegen unter
/mnt/user/services/gitea/data - Borg-Scope fuer Gitea ist
/local/gitea/data restore-labundrestore-reportssind auf dem Host vorhanden
Bestaetigter Teststand
- echter Mini-Restore am
2026-05-07erfolgreich gelaufen - Restore-Ziel war
/mnt/user/backups/restore-lab/gitea/data - Testcontainer
restoretest-gitealief lokal auf127.0.0.1:13000und127.0.0.1:12222 - HTTP
200 OK, HTML-Titel und SSH-Port wurden erfolgreich verifiziert - Report liegt unter
/mnt/user/backups/restore-reports/gitea-2026-05-07.md
Platzhalter
ARCHIVE_NAME: Borg-Archiv fuer den Restore-TestREPORT_DATE: z. B.2026-05-07BORG_REPO: Host-Borg-RepoBORG_PASSPHRASE_FILE:/mnt/user/appdata/secrets/borg_repo_passphrase.txt
Ablauf
- Testpfade vorbereiten
mkdir -p /mnt/user/backups/restore-lab/gitea/data
mkdir -p /mnt/user/backups/restore-reports
rm -rf /mnt/user/backups/restore-lab/gitea/data/*
- Gitea-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/gitea
borg extract "$BORG_REPO" "::ARCHIVE_NAME" local/gitea/data
mv /mnt/user/backups/restore-lab/gitea/local/gitea/data /mnt/user/backups/restore-lab/gitea/data
rmdir /mnt/user/backups/restore-lab/gitea/local/gitea
rmdir /mnt/user/backups/restore-lab/gitea/local
Wenn das Archiv den Pfad anders ablegt, zuerst mit borg list "$BORG_REPO" "::ARCHIVE_NAME" den exakten Eintrag pruefen.
- Testcontainer starten
docker compose -f /mnt/user/services/homelab/ops/restore-tests/gitea-compose.test.yml up -d
- Smoke-Test
curl -I http://127.0.0.1:13000
ssh -p 12222 -o BatchMode=yes -o StrictHostKeyChecking=no git@127.0.0.1
docker logs restoretest-gitea --tail 50
Minimal erfolgreich:
- HTTP-Antwort kommt
- Login-Seite ist erreichbar
- SSH-Port antwortet
- Restore-Lab enthaelt Gitea-Daten
- Testcontainer wieder stoppen
docker compose -f /mnt/user/services/homelab/ops/restore-tests/gitea-compose.test.yml down
- Report schreiben
Ziel:
/mnt/user/backups/restore-reports/gitea-REPORT_DATE.md
- Testdaten nach erfolgreichem Lauf bereinigen
rm -rf /mnt/user/backups/restore-lab/gitea/data
Festgelegte Entscheidungen
- Testdaten werden nach erfolgreichem Lauf geloescht.
ntfywird nicht im ersten echten Lauf eingebunden.- Die Borg-Passphrase wird fuer Restore-Tests aus einer Host-Secret-Datei gelesen, nicht aus Borg-UI-Interna.