Pi-hole
- Source: https://github.com/pi-hole/pi-hole
- License: EUPL-1.2
- UI:
https://pihole.<domain>
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
| Service | Port |
|---|---|
| DNS | 53 (TCP + UDP) |
| Web UI | 42480 (HTTP), 42443 (HTTPS) |
| DHCP (optional) | 67 |
| NTP (optional) | 123 |
Setup
- Enable it in
.env.shared:EXIST_IS_HOSTING_PIHOLE=true - Render and start, from the repo root:
./existential.sh && docker compose up -d
- 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