Files
oikos/containers/107-dns.md
dtoro 563dbe21b1 arch-migration P2: Technitium dns LXC (107); retire LXC 124
- containers/107-dns.md: new Technitium DNS server page
- dns.md: dnsmasq -> Technitium changelog; flags 3 overlapping DNS sources + router DHCP action
- 124-authentik: marked RETIRED (shut down)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-01 22:10:18 +02:00

2.5 KiB

107 — dns

Homelab DNS server (Technitium). Replaces the dnsmasq that lived on 124 — authentik; single-purpose, one job.

At a glance

  • Hostname: dns
  • IP: 192.168.8.2 (static — stable, decoupled from any app)
  • Privilege: privileged (Docker-in-LXC, features: nesting=1)
  • Resources: 1 core / 1 GiB / 8 GiB rootfs
  • Created: 2026-06-01, Debian 13. Its own resolver is 1.1.1.1 (no circular dependency on the DNS it serves).

Role

Authoritative split-horizon DNS for hubris.network on the LAN/mesh, plus recursive forwarding (1.1.1.1, 8.8.8.8) for everything else. Technitium runs in Docker (technitium/dns-server:latest, network_mode: host), web console on :5380.

The hubris.network zone

  • Specific A overrides: app names → 192.168.8.175 (Caddy), nfs-export → 192.168.8.200, auth/sso/... as needed.
  • auth.hubris.network → 82.165.190.79 (VPS Authentik), sso.hubris.network → 192.168.8.175 (LAN forward-auth outpost).
  • Wildcard *.hubris.network → 82.165.190.79 — mirrors the public IONOS wildcard so undefined names (e.g. netbird) resolve to the VPS, matching public behaviour.
  • MX / SPF-TXT / CAA replicated from public so an authoritative zone doesn't shadow hubris.network email/cert records.

Config / access

  • /opt/technitium/docker-compose.yml; admin password in /opt/technitium/admin_password.txt (mode 600 — sops-encrypt in Phase 5).
  • Console: http://192.168.8.2:5380 (user admin).
  • API: http://192.168.8.2:5380/api/... (token via /api/user/login). Zone was built via the API.

Who points here

  • NetBird mesh peers: nameserver group home-lab-dns (hubris.network → this server). Note: the NetBird managed DNS zone still answers most app names directly, bypassing this — see the single-source-of-truth decision.
  • Plain LAN clients: router DHCP should hand out 192.168.8.2 (update the router — the old .180/dnsmasq is gone).
  • Secondary: Mac Mini (planned, Phase 3) via AXFR zone transfer.

Changelog

2026-06-01 — created; replaced dnsmasq on 124

Stood up Technitium at 192.168.8.2, imported the split-horizon zone (specific A + wildcard + MX/SPF/CAA), made it the primary nameserver in the NetBird home-lab-dns group. Verified all names resolve with dnsmasq/124 stopped; LXC 124 retired.