docs: restore drill passed; procedure moves to the notfallhandbuch repo
The databases are no longer an assumption: notfall.sh stage 3 restored all three Borg repos into a throwaway postgres inside the pod (synapse 31908 rows, MAS 16085, authentik 325149, wiki 251), isolated from production and repeatable. Procedure and tool now live in git.lab/axion1337.chat/notfallhandbuch so an emergency needs one clone; this repo keeps a pointer. Still open: phase A/B on an empty host, Synapse media, a repeat cadence, and mirroring that new repo off git.lab. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
30e1962280
commit
b3fa132f50
@@ -139,3 +139,44 @@ Clone lesbar — der age-Key aus dem Vault ist damit tatsächlich der einzige ha
|
||||
|
||||
**Offen: Schritt 3** (einmal gegen eine Wegwerf-Umgebung durchspielen) und **Schritt 4**
|
||||
(Wiederholungsrhythmus). Das Verfahren ist bis dahin abgeleitet, aber unerprobt.
|
||||
|
||||
## Schritt 3 (teilweise) erledigt 2026-08-14 — Restore-Probe bestanden
|
||||
|
||||
Eigenes Repo **`git.lab/axion1337.chat/notfallhandbuch`** angelegt (Wunsch sorb): Einstiegs-
|
||||
README, das Verfahren (`restore-matrix.md`) und ein menügeführtes Werkzeug (`notfall.sh`).
|
||||
Das Verfahren wurde aus `docs/wiki/deployment/` dorthin verschoben — hier steht nur noch ein
|
||||
Zeiger. Begründung: im Ernstfall will man **einen** Clone, nicht drei Repos absuchen.
|
||||
|
||||
**Der Beweis, den dieses Issue verlangt, ist für die Datenbanken erbracht.** `notfall.sh`
|
||||
Stufe 3 spielt die Sicherungen in eine **Wegwerf-Postgres im Pod** zurück — isoliert, die
|
||||
Produktion bleibt unberührt, beliebig wiederholbar:
|
||||
|
||||
| Repo | Datenbank | zurückgespielte Zeilen |
|
||||
|---|---|---|
|
||||
| synapse-backup | `synapse` | **31.908** |
|
||||
| synapse-backup | `matrixauthenticationservice` | **16.085** |
|
||||
| authentik-backup | `authentik` | **325.149** |
|
||||
| wikijs-backup | `wiki` | **251** |
|
||||
|
||||
Die Sicherungen sind damit **keine Vermutung mehr** — sie wurden tatsächlich zurückgespielt.
|
||||
|
||||
**Entwurfsentscheidungen des Werkzeugs (bewusst, nicht beiläufig):**
|
||||
- Arbeit läuft **im Cluster**, nicht auf dem Laptop: `axion-backup:v2` bringt borg + pg-Tools
|
||||
mit, die Backup-Secrets verlassen den Cluster nicht, lokal genügt `kubectl`.
|
||||
- `whiptail` wird genutzt **falls vorhanden**, sonst Textmenü — ein Notfallwerkzeug darf nicht
|
||||
mit „installier erst ein Paket" beginnen (auf dem Mac fehlt whiptail).
|
||||
- **Bestehenskriterium ist die Zeilenzahl, nicht der Exitcode.** Die erste Fassung meldete bei
|
||||
fehlgeschlagenem `pg_restore` fälschlich „OK" (Pipe verschluckte den Code) — genau der
|
||||
stille Ausfall, den dieses Issue beschreibt, nur im Prüfwerkzeug selbst. Behoben und
|
||||
gegengetestet.
|
||||
|
||||
**Weiterhin offen (Rest von Schritt 3 + Schritt 4):**
|
||||
- **Phase A/B nie durchgespielt:** Wiederanlauf auf leerem Host (K3s, die zwei Bootstrap-
|
||||
Secrets, Flux) ist abgeleitet, nicht getestet — das braucht eine Wegwerf-Umgebung.
|
||||
- **Synapse-Medien** (`media_store` → PVC) nicht erprobt; ohne sie sind Bilder in Räumen tote Links.
|
||||
- **Wiederholungsrhythmus** festlegen (Stufe 3 ist gefahrlos → z.B. monatlich).
|
||||
- Homelab-Seite (GitLab/Overmind → MinIO/DSM) weiterhin ungeprüft.
|
||||
|
||||
⚠️ **Empfehlung Spiegelung:** Das Notfallhandbuch liegt bisher nur auf git.lab — also im
|
||||
Homelab, das im Ernstfall selbst nicht erreichbar sein kann. Ein Push-Mirror nach Gitea
|
||||
(rohana) wie bei den übrigen Repos wäre hier besonders sinnvoll.
|
||||
|
||||
Reference in New Issue
Block a user