f2923aac62
ops/policy-checks/mem-limits-baseline.md captures the deliberate "not today" decision for memory limits plus the plan for when it becomes relevant: - Phase 1: 7 days of hourly docker stats snapshots - Phase 2: derive Tier-1 peak per container - Phase 3: set limits at peak * 1.5 with documented floors (Postgres 1G, Mongo 1G, Redis 256M, etc.) - Phase 4: roll out smallest-risk containers first, observe 24h between stages - Phase 5: Tier-2 only after a concrete trigger event Next trigger: family invitation out + 4 weeks stable use, or first real OOM event in docker-critical-events.sh, or a sudden Immich/Nextcloud load spike where host swap becomes visible. Today's policy check is clean (0 Critical, 1 documented Warning on influxdb3-core user 0, 13 documented Info findings on host ports / privileged exceptions / latest+digest tags). Co-Authored-By: Claude Opus 4.7 <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.