Leseprobe · Selfhost-Standards Pack v1.1.0

Drei echte Auszüge. Unverändert.

Damit du nicht blind kaufst: Hier sind Original-Ausschnitte aus drei der fünf Templates — genau so, wie sie im ZIP liegen.

1 · Die DoD-Checkliste aus Template 01 (VM-/Container-Standard)

Jede Neuanlage endet mit dieser Checkliste — copy-paste ins Ticket oder in die Agenten-Session:

[ ] Registry frisch regeneriert, VMID + IP daraus, mehrstufiger Duplikat-Check §1.3 gelaufen
[ ] Name nach Schema §2, description-Block gesetzt, Tags = <ip>;<bereich>;<rolle>;<lifecycle>,
    guest-map.txt ergänzt + Resource Pool zugeordnet
[ ] net0: statische IP, GW passend zum Node, MTU (zweistufig!), firewall final, kein ip6
[ ] unprivileged=1 / agent=1 (VM: `qm agent <id> ping` antwortet!), onboot=1, Sizing-Tier begründet
[ ] Egress-Test (ping + HTTP 80/443) + MTU-Test (ping -M do mit Grenzgrößen)
[ ] DNS-Test: FQDN gegen ALLE autoritativen NS, kein stale AAAA
[ ] TLS-Test bei Public-Diensten: curl -sSI von extern, Cert-Kette + Ablauf ok
[ ] Backup-Klasse eingetragen + erster Lauf ok; DB-Dienst → zusätzlich §5a-Dump eingerichtet
[ ] Monitoring-5 eingebunden (je ein konkreter Nachweis)
[ ] IP-Registry aktualisiert + Changelog-Eintrag (→ Template 04)
Quelle: 01-vm-container-standard.md, §8 — vollständig im Pack: 8 Abschnitte, ~280 Zeilen

2 · Code aus orphan-scan.sh (Template 03)

Der Kern der Verwaisungs-Erkennung: Welche Gäste hatten echten Service-Traffic — Monitoring und SSH zählen bewusst nicht:

# Admin-/Monitoring-Verkehr, der NICHT als Nutzung zaehlt (in /etc/orphan-scan.env anpassen):
EXCL_DPORT=${EXCL_DPORT:-'^(22|161|9100)$'}   # SSH, SNMP, node_exporter
EXCL_SRC=${EXCL_SRC:-'^$'}                    # Monitoring-/Gateway-Quellen

# ---- Gastliste: laufende LXC + VMs, IP aus dem IP-Tag ----
guest_list() {  # gibt "vmid typ name ip" aus; ip=- wenn kein IP-Tag
    pct list 2>/dev/null | awk 'NR>1 && $2=="running"{print $1" lxc "$3}' | while read -r id t name; do
        ip=$(pct config "$id" 2>/dev/null | sed -n 's/^tags: //p' | tr ';' '\n' \
             | grep -m1 -E "^${IP_PREFIX}" || echo -)
        echo "$id $t $name $ip"
    done
    ...
}
Quelle: 03-orphan-scan/orphan-scan.sh — vollständig im Pack: ~150 Zeilen + Installations-README mit Tuning-Anleitung

3 · Eine Beispiel-Memory aus Template 04 (Incident-Memory-Struktur)

name: audit-gate-tote-endpoints
description: „⚠️ Paketmanager-Audit liefert HTTP 410 (Endpoints abgeschaltet) — Gate NICHT abschalten, Bulk-Advisory-Skript nutzen"
type: incident

Das Audit-Gate im Deploy brach fleet-weit mit HTTP 410: npm hat die Legacy-Audit-Endpoints abgeschaltet.

Warum: Erste Reaktion war „dann nehmen wir das Gate halt raus, blockt ja alles." Genau dieses Gate hätte zwei Monate vorher den Einsatz einer Bibliothek mit bekannter RCE verhindert. Ein Gate, das nervt, tut seinen Job.

So wendest du es an: Gate durch repo-versioniertes Skript gegen den Bulk-Advisory-Endpoint ersetzen (fail-closed — kein Ergebnis = kein Deploy). NIE ein Security-Gate „vorübergehend" deaktivieren.

Quelle: 04-incident-memory-struktur.md, §4 — das Template erklärt Format, Schreib-Workflow und die „ersten 10 Memories"

Alle Dateien im Pack (v1.1.0, Stand 25.07.2026)

00-README.md                        Einführungs-Fahrplan (5 Wochen), Zielgruppe, Support
01-vm-container-standard.md         VMIDs, IP-Registry, Naming/Tags, Sizing, Backup, DoD
02-golive-security-checkliste.md    Härtung, Uploads, Dependency-Gates, Monitoring-5
03-orphan-scan/orphan-scan.sh       Verwaisungs-Erkennung (conntrack + TTL)
03-orphan-scan/README.md            Installation, Cron, Tuning, Grenzen
04-incident-memory-struktur.md      Ein Fakt pro Datei, Index, Changelog, Decision-Log
05-agenten-betrieb/README.md        Konzept: Agenten sicher auf Infrastruktur
05-agenten-betrieb/AGENTS.md-vorlage.md      Repo-Ebene: Arbeitsregeln + DoD
05-agenten-betrieb/CLAUDE.md-vorlage.md      Global: harte Guardrails
05-agenten-betrieb/preflight-prompt.md       7 Fragen vor jeder Änderung
05-agenten-betrieb/eskalationsregeln.md      4 Stufen: autonom → Mensch-Pflicht
CHANGELOG.md · LICENSE.md           Versionen · Lizenzstufen
Zurück zum Pack — ab 79 €