# NOMAD Pi-hole / Unbound / staged Keepalived Replica - **Repo stack path:** `/home/fizzlepoof/repos/truenas-stacks/pihole/nomad` - **Former live stack path:** `/opt/pihole-nomad` - **Former node role:** NOMAD Pi-hole replica on Servers VLAN - **Former staged VIP target:** `10.5.30.53/24` - **LAN interface:** `enp5s0` - **NOMAD LAN IP:** `10.5.30.7` Status: retired on 2026-05-27 after network-wide DNS cutover to the Technitium trio. Retired state summary: - `pihole-nomad`, `unbound-pihole-nomad`, and `keepalived-pihole-nomad` were retired on 2026-05-27. - The old VIP `10.5.30.53` no longer answers. - Treat the files here as historical/reference material unless you intentionally revive this design. Bring-up: ```bash cd /opt/pihole-nomad cp .env.example .env bash bin/prepare_nomad.sh --up ``` Host note: - If `systemd-resolved` is using the local DNS stub on port 53, disable the stub listener on NOMAD before trusting Pi-hole for live DNS: ```bash sudo mkdir -p /etc/systemd/resolved.conf.d cat <<'EOF' | sudo tee /etc/systemd/resolved.conf.d/99-pihole.conf [Resolve] DNSStubListener=no EOF sudo systemctl restart systemd-resolved sudo ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf ``` Pi-hole on NOMAD is pinned to `enp5s0` with `FTLCONF_dns_interface=enp5s0` and `FTLCONF_dns_listeningMode=SINGLE` so it answers cleanly on the LAN IP without fighting Docker bridge noise. Former live containers: - `pihole-nomad` - `unbound-pihole-nomad` Former HA container: - `keepalived-pihole-nomad` Former LAN admin URL: - `http://10.5.30.7:8954/admin/`