Claude ready
5.5 KiB
Claude Code Context - Homelab Infra
Stand: 2026-05-04
Dieses Repository ist die GitOps-Quelle fuer das KalliLab CORE Homelab auf einem Unraid-Host. Es verwaltet Docker-Compose-Stacks fuer Core-Dienste, Security, Infrastruktur, Apps, Operations-Tools, Host-nahe Dienste und Traefik. Gitea Online ist die operative Quelle der Wahrheit; Komodo konsumiert den Git-Stand und deployed daraus.
Vor jeder Aenderung lesen
Claude muss vor jeder fachlichen oder technischen Aenderung mindestens diese Dateien lesen:
HOMELAB_ARCHITECTURE_MASTER_V2.mddocs/WORKFLOW.mddocs/REPO_MAP.mddocs/SERVICE_CATALOG.md- die betroffene
docker-compose.yml
Zusaetzlich je nach Thema:
- Restore / Host-Ausfall:
docs/DISASTER_RECOVERY.mdunddocs/RESTORE_MATRIX.md - Rollback:
docs/ROLLBACK.md - Secrets:
docs/SECRETS_MAP.md - GitOps-/Komodo-/Runtime-Drift:
docs/GITOPS_DRIFT_RUNBOOK.md - Gesamtbild fuer KI-Agenten:
docs/AI_CONTEXT.md - Home Assistant / Ecowitt / InfluxDB:
docs/HOME_ASSISTANT_INFLUXDB_ECOWITT.md
Projektbeschreibung
- Host: Unraid, Hostname
Kallilabcore - Domain:
kaleschke.info - Reverse Proxy: Traefik v3
- DNS: AdGuard Home + Unbound
- VPN/Remote: Tailscale
- Git: Gitea unter
git.kaleschke.info - Deployment: Komodo als primaerer und einziger produktiver Stack-Manager
- Lokale Arbeitskopie: Windows/GitHub Desktop
- Persistenz: ueberwiegend
/mnt/user/appdata, Nutzdaten in/mnt/user/documents,/mnt/user/photos, GitOps/Gitea in/mnt/user/services
Architekturprinzipien
- Traefik ist der einzige oeffentliche HTTP(S)-Einstiegspunkt.
- Service-Routing erfolgt per Docker-Labels, nicht ueber neue Traefik File-Provider-Service-Routen.
frontend_netist das Web-/Proxy-Netz.backend_netistinternal: truefuer Datenbanken, Redis und interne Backends.- App-interne Netze sind erlaubt, wenn sie eine App und ihre Datenbank/Worker sauber isolieren.
- Datenbanken und Caches duerfen nicht im
frontend_netliegen. - Direkte Host-Ports sind nur mit dokumentierter Ausnahme erlaubt.
- Komodo bleibt bewusst ohne pauschale zentrale Authelia-ForwardAuth-Middleware.
- Secrets gehoeren niemals ins Git-Repository.
- Produktive Container sollen als Compose/Git-Stack verwaltet werden.
GitOps-Regeln
Quelle der Wahrheit:
- Gitea
origin/master - lokaler Clone
- Komodo Stack Workspace
- laufende Docker-Container
- Host-Zustand
Standard-Workflow:
- Lokal synchronisieren (
Fetch, ggf.Pull) - Betroffene Docs und Compose-Datei lesen
- Zielzustand und Rollback klaeren
- Lokal minimal aendern
- Validieren
- Commit und Push durch den Benutzer oder nach expliziter Freigabe
- Komodo-Deploy/Runtime pruefen
- Dokumentation nachziehen
Wenn Drift vermutet wird, nicht raten. Erst die Pflichtmatrix in docs/GITOPS_DRIFT_RUNBOOK.md abarbeiten.
Sicherheitsregeln
- Secret-Werte niemals ausgeben. Wenn Werte auftauchen: redakten.
- Nur Secret-Namen, Env-Key-Namen und Pfade dokumentieren.
- Keine produktiven
.env- oder Stack-Env-Werte zitieren. - Keine Compose-Aenderung ohne vorherigen Architektur-/Workflow-Abgleich.
- Keine Deployments, Host-Hotfixes oder Docker-Schreibbefehle ohne ausdrueckliche Anweisung.
- Keine direkten Host-Ports fuer Web-UIs, ausser dokumentierte Ausnahmen.
privileged: true, Docker-Socket und Host-Netz nur als dokumentierte Ausnahme.- Traefik dynamic config unter
traefik/dynamic/wird nicht automatisch von Komodo deployed und muss bei Aenderungen manuell auf den Host synchronisiert werden.
Bekannte dokumentierte Ausnahmen
traefik: Host-Ports 80/443gitea: SSH-Port 222AdGuard Home: DNS-Port 53 und LAN-Admin-Port 8082tailscale:network_mode: hostPlex-Media-Server: historischer Host-Netz-Sonderfall, nicht als Repo-Stack enthaltenscrutiny:privileged: truefuer SMART/LaufwerkszugriffKomodo: Docker-Socket und native Auth ohne pauschale ForwardAuthtraefik/dynamic/*: manuelle Host-Sync-Ausnahmeinfluxdb3-core: LAN-only Host-Port 8181 fuer Home Assistant Writer, keine Traefik-Route, nicht imfrontend_net
No-Go-Regeln
- Keine produktiven Aenderungen direkt in Komodo.
- Keine
docker run-Ad-hoc-Container als Dauerzustand. - Keine Compose-Dateien, Secrets oder Host-Konfigurationen stillschweigend aendern.
- Keine Deployments ausloesen, wenn der Benutzer nur Analyse oder Dokumentation verlangt.
- Kein
push --forceaufmasterals Standard-Rollback. - Keine History-Rewrites ohne ausdrueckliche Freigabe.
- Keine Loesch-, Reset- oder Migrationsbefehle ohne klaren Zielzustand und Rollback.
- Keine neuen
latest-/mutable Image-Tags ohne bewusste Versionsentscheidung.
Rollback-Erwartungen
Jede Aenderung braucht vor dem Deploy eine klare Rueckkehrstrategie:
- letzter bekannter funktionierender Git-Stand
- betroffener Stack und Persistenzpfade
- ob Datenpfade unveraendert bleiben
- ob Secrets/ENV betroffen sind
- konkrete Smoke-Tests nach Rollback
Standard-Rollback ist ein Ruecknahme-Commit oder gezielte Rueckaenderung mit Push nach Gitea. Produktive Datenpfade unter /mnt/user/appdata, /mnt/user/documents, /mnt/user/photos, /mnt/user/services und /mnt/user/backups nicht blind loeschen.
Arbeitsweise fuer Claude
- Erst lesen, dann handeln.
- Bei Unsicherheit Zustand messen, nicht erraten.
- Aenderungen klein halten und nur den betroffenen Bereich anfassen.
- Bestehende Doku und Repo-Konventionen bevorzugen.
- Bei Secret-/Runtime-/Komodo-Fragen besonders konservativ sein.
- Wenn zwei Reparaturversuche nicht funktionieren: stoppen, Pflichtmatrix ausfuellen, eine abweichende Ebene benennen.