Skip to main content

Pi-hole

Network-wide DNS ad blocker and optional DHCP server. Blocks ads, trackers, and malicious domains for all devices on the network by acting as the primary DNS resolver.

Ports

ServicePort
DNS53 (TCP + UDP)
Web UI42480 (HTTP), 42443 (HTTPS)
DHCP (optional)67
NTP (optional)123

Setup

  1. Enable it in .env.shared:
    EXIST_IS_HOSTING_PIHOLE=true
  2. Render and start, from the repo root:
    ./existential.sh && docker compose up -d
  3. Point your router's DNS to the host running Pi-hole

Pi-hole then resolves the whole of EXIST_DOMAIN locally via a single wildcard record, which removes the stack's dependency on public DNS. It is an upgrade, not a requirement — see How It Works.

Debugging

docker compose logs pihole
# Check DNS resolution
docker exec pihole nslookup example.com