diff --git a/docs/install.md b/docs/install.md old mode 100644 new mode 100755 index eef01bb..631adcf --- a/docs/install.md +++ b/docs/install.md @@ -75,4 +75,32 @@ flux get helmreleases -n matrix --watch # Zeigt, wie die Pods hochfahren: kubectl get pods -n matrix -w ``` -Sobald alle Pods auf `Running` stehen und die Zertifikate über Let's Encrypt validiert wurden (`kubectl get certificate -n matrix`), ist dein Matrix-Stack unter `https://axion1337.chat` erreichbar. \ No newline at end of file +Sobald alle Pods auf `Running` stehen und die Zertifikate über Let's Encrypt validiert wurden (`kubectl get certificate -n matrix`), ist dein Matrix-Stack unter `https://axion1337.chat` erreichbar. + +--- + +## 🔁 Recovery: lokalen age-Key wiederherstellen (Server läuft bereits) + +Anders als Schritt 2 oben (neuen Key **erzeugen**) — falls der Server bereits läuft und nur der +lokale Rechner den age-Key verloren hat (z.B. nach einer Neuinstallation), lässt sich der +**bestehende** Private Key direkt aus dem Cluster zurückholen, ohne einen neuen zu generieren +(das würde `.sops.yaml` und alle bereits verschlüsselten Secrets ungültig machen): + +```bash +mkdir -p ~/.age +kubectl get secret sops-age -n flux-system -o jsonpath='{.data.age\.agekey}' | base64 -d > ~/.age/keys.txt +chmod 600 ~/.age/keys.txt + +# Public Key zur Kontrolle gegen .sops.yaml abgleichen: +grep 'public key:' ~/.age/keys.txt +grep 'age:' .sops.yaml +``` + +Voraussetzung: laufender Kubeconfig-Zugriff auf den Cluster (siehe Schritt 1 oben — auch das +ist reines Zurückkopieren, kein Neu-Erzeugen). + +**Bekannte Schwachstelle**: Dieser Key existiert aktuell nur an zwei Orten — im +`sops-age`-Secret selbst (auf demselben Server) und lokal bei wem auch immer ihn zuletzt +zurückgeholt hat. Es gibt kein separates, offsite Backup. Fällt der Server komplett aus +(nicht nur der lokale Rechner), sind alle SOPS-verschlüsselten Secrets im Repo unlesbar. +Siehe Issue-Backlog für die Entscheidung, ob/wie das abgesichert wird. \ No newline at end of file