# Repository Map Stand: 2026-05-31 Kurzkarte des Repositories. Diese Datei ist bewusst kein zweites Handbuch; fuer Details gilt immer die betroffene Compose-Datei oder das jeweilige Runbook. ## Top-Level | Pfad | Zweck | |---|---| | `apps/` | produktive Anwendungen und vorbereitete App-Stacks | | `core/` | Basisdienste, aktuell Gitea | | `docs/` | aktive Betriebsdoku, Restore, Inventare, Arbeitsregeln | | `env/` | nicht geheime Beispiel-Env-Dateien | | `host-services/` | host-nahe Dienste mit direkten Ports oder Host-Netz | | `infra/` | technische Infrastruktur wie PostgreSQL, Redis, DDNS | | `monitoring/` | Prometheus, Grafana, Loki, InfluxDB 3 Core | | `ops/` | Admin-, Backup-, Restore- und Wartungswerkzeuge | | `security/` | Authelia, Vaultwarden und Security-Konfiguration | | `services/` | Host-seitige Betriebsskripte und Recovery-Hilfen | | `traefik/` | Reverse Proxy und dynamic File-Provider-Konfiguration | ## Einstiegspunkte | Datei | Wann lesen | |---|---| | `README.md` | Repo-Einstieg | | `HOMELAB_ARCHITECTURE_MASTER_V2.md` | Architektur, Netzmodell, Ausnahmen | | `docs/WORKFLOW.md` | vor operativen Aenderungen | | `docs/SERVICE_CATALOG.md` | Service-Zweck, Pfade, Besonderheiten | | `docs/DISASTER_RECOVERY.md` | echter Wiederanlauf | | `docs/RESTORE_MATRIX.md` | Restore-Quelle je Dienst | | `docs/SECRETS_MAP.md` | Secret-Namen und Pfade ohne Werte | | `docs/GITOPS_DRIFT_RUNBOOK.md` | Git/Gitea/Komodo/Docker/Host-Drift | | `docs/MASTER_TODO.md` | einzige operative Statusliste | | `docs/DECISIONS.md` | Entscheidungs-Register (ADR-light) | | `docs/DR_WORKSTATION_SETUP.md` | Schritt-fuer-Schritt-Runbook fuer den DR-Gaming-PC (WSL2 + Borg-Client + SSH-Keys) | | `docs/runbooks/komodo-bulk-deploy-dns.md` | Bulk-Deploy-Pulls scheitern an DNS, wenn AdGuard im selben Batch recreated wird | ## Wichtige Skripte | Datei | Zweck | |---|---| | `ops/borg-ui/scripts/pre-backup-dumps.sh` | Dump-Erzeugung vor Borg | | `ops/borg-ui/scripts/gitea-bundle-mirror.sh` | Gitea-Bundles fuer DR | | `ops/restore-tests/run-restore-checks.sh` | Restore-Test-Einstieg | | `ops/restore-tests/schedule.md` | Restore-Test-Kadenz | | `services/posture-check/posture-check.sh` | Host-Posture-Check | | `services/posture-check/export-prometheus-textfile.sh` | Borg-/Container-/Drift-Metriken | | `services/authelia-diff.sh` | Authelia ACL Repo-zu-Host-Vergleich | | `ops/h-drive-nearline/pull-critical-backups.ps1` | H:/ Nearline-Pull | ## Doku-Regeln 1. **Ein Fakt, ein Zuhause.** Status -> `docs/MASTER_TODO.md`; Entscheidungen -> `docs/DECISIONS.md`; Zielbild -> `HOMELAB_ARCHITECTURE_MASTER_V2.md`/Inventare/`SERVICE_CATALOG`; Ablauf -> genau ein Runbook; Beleg -> Host-Report (`/mnt/user/backups/restore-reports/`) oder Git-Commit. Alle anderen Stellen verlinken statt kopieren. 2. **Erledigt = raus aus der Arbeitskopie.** Abgeschlossene Plaene, Sprints, Audits und Drills nach `docs/archive/` (Belege mit Referenzwert) oder loeschen (Sprint-Boards, erledigte Listen) - Git ist das Archiv. 3. **Neue Datei nur mit klarem Typ:** Einstieg/Index, Architektur, Inventar/Referenz, Runbook, Entscheidung, Status oder befristeter Snapshot. Sonst ist es ein Eintrag in einer bestehenden Datei. 4. **Done-Eintraege max. 3 Zeilen**, Details in Commit/Report; Kurzlog in `MASTER_TODO` max. 5 Eintraege. 5. **Datum im Dateinamen nur fuer Snapshots**; datierte Dateien im `docs/`-Root sind per Definition Aufraeum-Kandidaten. 6. **Index-Pflicht:** jede neue/geloeschte Doku-Datei aktualisiert `docs/README.md` im selben Commit. 7. **Quartals-Gaertnern (~15 min):** Datiertes archivieren, Done-/Review-Logs kuerzen, tote Links pruefen. 8. **Kopfzeile je Dokument:** `Typ: ... · Stand: YYYY-MM-DD · Status: ...`. Bestandsnamen (SCREAMING_SNAKE) bleiben; neue Dateien in Unterordnern in kebab-case.