Pi-hole: DNS & Ad-Blocking
This service provides network-wide ad blocking and custom local DNS resolution for the home media pipeline. You can see my setup at my GitHub repo.
Deployment
Deployed as a Docker container using host networking for direct network visibility.
Configuration (docker-compose.yml):
services:
pihole:
container_name: pihole
image: pihole/pihole:latest
network_mode: "host"
environment:
TZ: '${TZ}'
FTLCONF_webserver_api_password: '${ADMIN_PASSWORD}'
WEBTHEME: 'default-dark'
volumes:
- './etc-pihole:/etc/pihole'
- './etc-dnsmasq.d:/etc/dnsmasq.d'
restart: unless-stopped
Configuration
- Ad-Blocking
I utilize the Steven Black list to filter telemetry and advertisements at the DNS level.
- Management: Update lists via the Pi-hole Admin Interface under Group Management > Adlists.
- Local DNS Entries
Custom domains are defined to resolve internal services to static local IPs.
- Entry:
netflix.home - Target:
[INSERT_SERVER_IP_HERE] - Purpose: Provides a consistent internal hostname for the Emby media server, regardless of underlying infrastructure changes.
- Entry:
Maintenance & Backup
Because the configuration is bound to the ./etc-pihole and ./etc-dnsmasq.d directories, backups are handled by simply backing up these host folders.
- To Update:
- Teleporter: For a manual backup, use the Tools > Teleporter feature in the web interface to export a
.tar.gzarchive of your settings.