cbfbb8ca4f
Self-hosted Healthchecks (ops/healthchecks/) as the hub for internal cron/job heartbeats. The three host-down/backup watchdogs (Borg pre-hook, baerchen nearline pull, monitoring watchdog #8) deliberately stay on healthchecks.io cloud, since an on-host watcher cannot report a host outage. - frontend_net + dedicated PostgreSQL 18 in healthchecks_internal - native Healthchecks auth; ping/API exempt from Authelia (n8n/Komodo pattern) - registered as middleware_exempt in ops/policy-checks/exceptions.json - docs: DECISIONS, ARCHITECTURE (3.1/4.2/7.6/10), SERVICE_CATALOG, SECRETS_MAP, MASTER_TODO, README index docker compose config validated (exit 0). Not yet deployed: host secret file, appdata dir, Komodo stack + ENV and Gitea webhook remain operator steps. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Policy Checks
Manuelle, read-only Repo-Pruefungen fuer homelab-infra.
Ziel:
- offensichtliche Fehler vor einem Push oder Deploy erkennen
- dokumentierte Ausnahmen sichtbar halten, aber nicht als Fehlalarm behandeln
- keine Container aendern, keine Deploys ausloesen, keine Dateien ausserhalb des Reports schreiben
Start
Aus dem Repo-Root:
powershell -ExecutionPolicy Bypass -File .\ops\policy-checks\check_repo.ps1
Mit Report-Datei:
powershell -ExecutionPolicy Bypass -File .\ops\policy-checks\check_repo.ps1 -ReportPath .\ops\policy-checks\last-report.md
Was geprueft wird
docker compose config --quietfuer alle Compose-Dateien- SHA256-Digests nur dann, wenn ein Digest im Image steht
- keine echten
.env- oderstack.env-Dateien im Repo - Datenbank-/Cache-Dienste nicht im
frontend_net security_opt: no-new-privileges:true- Host-Port-Mappings
- Traefik-Router mit
Host(...)und Middleware-Standard fuer geschuetzte Admin-/Ops-Dienste - sichtbare Report-Punkte fuer dokumentierte Ausnahmen wie
user: "0",privileged: trueodernetwork_mode: host - digest-gepinnte mutable Tags bleiben sichtbar; nur explizit dokumentierte Ausnahmen werden als Info statt Warning gewertet
Wichtige Betriebsregel
Dieses Script ist absichtlich erstmal nur ein manuelles Werkzeug.
- kein Cronjob
- keine taegliche Automatik
- keine CI-Pflicht im ersten Schritt
Empfohlene Nutzung:
- vor Pushes mit Compose-/Traefik-/Netzwerk-Aenderungen
- vor neuen Stacks
- vor groesseren Hardening-Sprints
Exit-Code
0: keine kritischen Findings1: mindestens ein kritisches Finding
Warnings brechen den Lauf nicht.