Einleitung
Die Einzelteile kennst du: DNS-Optionen (0002), Terraform für öffentliches DNS (0004), Module (0006), Deploy (0007). Heute verbindest du sie zum Alltagsweg „neuen Lab-Service anbinden“, wie in operations.md und lab-ipam.md.
Selbststudium: Schritte am Repo nachvollziehen und die richtige Entscheidung (direct vs. reverse-proxy) treffen. Live-Deploy bleibt optional.
Der Standardweg (Lab-HTTP hinter Caddy)
-
Freie Lab-IP wählen:
just lab-ipam -
Host-Datei anlegen, typisch:
Kein zweiter Eintrag in# net/lab/hosts/mein-dienst.nix { name = "mein-dienst"; ipv4 = "192.168.200.40"; dns = { name = "mein-dienst.lab"; target = "reverse-proxy"; upstream = "http://192.168.200.40:8080"; }; }net/dns/groupdir.de.nixnötig — die Zone mergednet/lab/dns-records.nix. -
Lokal prüfen, dass die Config noch baut:
nix build .#nixosConfigurations.lab-gateway.config.system.build.toplevel -
Gateway deployen (DNS intern + Caddy-Route):
colmena apply --on lab-gateway
Der Name ist dann z. B.
mein-dienst.lab.groupdir.de im internen DNS; HTTPS
läuft über den zentralen Proxy am lab-gateway.
Wann anders?
-
Kein HTTP hinter Caddy (LDAP, DB, …):
dns = { name = "…"; }(Defaulttarget = "direct"). Siehe DNS-Records. -
Nur IP reservieren (noch kein DNS):
dns = false. -
Öffentlich bei Hetzner: Eintrag in
net/dns/groupdir.de.nixmitscope = "public"oder"both", dann Generate + Terraform untertofu/dns(Lesson 0004). Rein interne Lab-Dienste brauchen das nicht. -
Host selbst konfigurieren (Paket, Dienst, User):
Modul/Host unter
nixos/(0006), danach Colmena auf den betroffenen Host. - Kein zentraler Proxy: wenn End-to-End-TLS auf dem Backend nötig ist (operations.md: „When not to use the central proxy“).
Checkliste vor dem Merge
Lesen am Repo
- operations.md „Add a lab service“ und lab-ipam.md
-
Beispiele:
net/lab/hosts/grafana.nix(Proxy) undnet/lab/hosts/dc1.nix(direct, mehrere Namen) - Optional: Build-Befehl oben trocken üben
Üben
Retrieval
Neuer interner HTTP-Dienst hinter Caddy. Reihenfolge?
Welche Datei für einen neuen Lab-Namen hinter dem Proxy?
Nach einem rein internen Lab-Eintrag: was als Nächstes?
Primärquelle
docs/operations.md, docs/lab-ipam.md, docs/dns-records.md.
Kompakt: Referenz: Service hinzufügen.