Files
homelab-infra/ops/policy-checks
Micha f2923aac62 F-19 prep: document mem-limits baseline plan (no compose changes)
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>
2026-05-30 11:58:54 +02:00
..
2026-05-26 19:42:01 +02:00
2026-05-26 19:42:01 +02:00
2026-05-26 19:42:01 +02:00
2026-05-26 19:42:01 +02:00

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 --quiet fuer alle Compose-Dateien
  • SHA256-Digests nur dann, wenn ein Digest im Image steht
  • keine echten .env- oder stack.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: true oder network_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 Findings
  • 1: mindestens ein kritisches Finding

Warnings brechen den Lauf nicht.