diff --git a/docs/AI_HANDOFF_2026-05-06.md b/docs/AI_HANDOFF_2026-05-06.md new file mode 100644 index 0000000..da3082e --- /dev/null +++ b/docs/AI_HANDOFF_2026-05-06.md @@ -0,0 +1,80 @@ +# AI Handoff 2026-05-06 + +Kompakte Quelle fuer einen neuen Chat. Ziel: nicht das ganze Repo neu auditieren, sondern mit dem bekannten Stand weiterarbeiten. + +## Aktueller Stand + +- Repo: `G:\Gitea_Clone\homelab-infra` +- Remote: `https://git.kaleschke.info/Micha/homelab-infra.git` +- Branch: `master` +- Letzter bekannter Commit: `e0e12f1 Document stale Komodo webhook cleanup` +- Unraid-Host: `ssh root@192.168.178.58` +- Push-Befehl, der zuverlaessig funktioniert: `git -C "G:\Gitea_Clone\homelab-infra" push origin master` +- Nicht anfassen ohne explizite Freigabe: untracked `Homelab_Audit_2026-05-05.pdf` und untracked `ops/hermes-agent/services.yaml`. + +## Audit-Arbeit Erledigt + +- K1: ungueltige Digests fuer Authelia, ntfy und borg-ui korrigiert und smoke-getestet. +- K2: Authelia nutzt bewusst kein Redis; Doku entsprechend korrigiert. +- K3/M1/M2 alt: Authelia Repo-Baseline geklaert, Homepage/Komodo ACL-Drift bereinigt. +- M3a/M3b: Digest-Pinning fuer stateful/Tier-1 und weitere versionierte Apps umgesetzt; Redis-Caches bewusst ohne Digest, Nextcloud bewusst offen. +- M5/N5: `.gitignore` eingefuehrt, Hermes `stack.env` zu `stack.env.example`. +- M6/M7/M8: Hermes-Domain, Grafana/Influx `user: "0"` und Tailscale-Capabilities dokumentiert. +- M9: Backup Scope / Restore Matrix erledigt. +- N-Aufraeumen: alte Compose-`version:` Felder, leere Env-Beispiele und `.keep`-Platzhalter bereinigt. +- Mail Archiver: `mail.kaleschke.info` liegt hinter `authelia@file,secure-headers@file`; Smoke-Test war 302 zu Authelia. +- Hermes: Restore/DR-Doku ergaenzt. +- Authelia SMTP: GMX SMTP eingerichtet, validiert, deployed und smoke-getestet. +- M10: `KOMODO_WEBHOOK_SECRET` ist von `KOMODO_SECRET_KEY` getrennt. + +## Wichtige Runtime-Details + +### Authelia SMTP + +- Adresse: `submission://mail.gmx.net:587` +- Mailkonto: `michideheld@gmx.de` +- SMTP-Passwort liegt nur auf dem Host: `/mnt/user/appdata/secrets/authelia_smtp_password.txt` +- Host-Config wurde vor Umstellung gesichert: `/mnt/user/appdata/authelia/config/configuration.yml.bak-20260506-smtp` +- Authelia-Compose nutzt explizite DNS-Server, weil der SMTP-Startup-Check externe Namen aufloesen muss. +- Nach Deploy war `authelia` healthy; `auth.kaleschke.info` antwortete 200, geschuetzte Routen 302 zu Authelia. + +### Komodo / M10 + +- Komodo-Runtime nur gemeinsam mit dem Betreiber aendern. +- `KOMODO_SECRET_KEY` wurde nicht geaendert. +- `KOMODO_WEBHOOK_SECRET` wurde geaendert und ist jetzt eigener 64-Zeichen-Wert. +- Neuer Wert liegt nur auf dem Host in `/mnt/user/services/stacks/komodo/.env`. +- Komodo Compose auf Host: `/mnt/user/services/stacks/komodo/compose.yaml`. +- Backups vom M10-Sprint: + - `/mnt/user/appdata/komodo/_m10_backup_20260506-184838` + - `/mnt/user/services/gitea/data/gitea/_m10_backup_20260506-184838/gitea.db.bak` +- `komodo-core` wurde gezielt recreated. +- `komodo-mongo` wurde nicht neu gestartet. +- `komodo-periphery` lief durch und meldete sich wieder am Core-Websocket an. +- Gitea-Komodo-Webhooks: 29 aktive Hooks, 29 zuletzt erfolgreich, 0 aktiv fehlgeschlagen. +- Ein stale Gitea-Webhook auf eine nicht mehr existierende Komodo-Stack-ID wurde deaktiviert, nicht geloescht. +- Eine Warnung `request branch does not match expected` ist ein Branch-Filter-Skip, kein Secret-/Auth-Fehler. +- Fuer neue Gitea-Webhooks im Standardfall den globalen `KOMODO_WEBHOOK_SECRET` aus der Komodo-Host-`.env` nutzen, ausser Komodo zeigt fuer den Stack explizit ein eigenes per-Stack-Secret. + +## Sicherheitsregeln Fuer Weitere Arbeit + +- Keine Secret-Werte im Chat oder Git ausgeben. +- Bei Host-Pruefungen nur SET/MISSING, Laengen und Pfade zeigen. +- Komodo-Compose, Komodo-Secrets und Komodo-Runtime nur bewusst und kleinschrittig aendern. +- Bei jedem Deploy pro Stack smoke-testen; nicht mehrere kritische Stacks parallel veraendern. +- Untracked Dateien nicht automatisch committen. +- Bei Authelia-Aenderungen: Host-Config sichern, `authelia validate-config` ausfuehren, dann erst neu starten. +- Bei Komodo-Aenderungen: Gitea-Webhooks und Komodo-Core-Secret-Seite zusammen betrachten. + +## Naechste Sinnvolle Next-Level-Themen + +- Grafana/Influx rootless betreiben statt `user: "0"`; eigener Sprint wegen Volume-Rechten. +- Restore-Test fuer Vaultwarden und Paperless dokumentiert durchfuehren. +- Komodo Periphery von Legacy-Passkey auf Public-Key-Modell haerten. +- Monitoring/Alerting reifer machen: externe Alarme, Restore-Test-Reminder, Backup-Erfolg sichtbar. +- Gitea/Komodo Webhook-Landschaft weiter aufraeumen und per-Stack-Secret-Strategie dokumentieren. +- DR-Test fuer `backend_net`/externe Docker-Netze explizit aufnehmen. + +## Startprompt Fuer Neuen Chat + +Bitte zuerst `docs/AI_HANDOFF_2026-05-06.md` lesen und als aktuelle Arbeitsquelle verwenden. Nicht das ganze Repo neu auditieren, ausser ich fordere es an. Beachte besonders: Komodo nur gemeinsam und kleinschrittig aendern, keine Secret-Werte ausgeben, untracked PDF und `ops/hermes-agent/services.yaml` nicht anfassen. Wir starten jetzt mit Next-Level-Hardening.