4.2 KiB
Executable file
Pihole + Unbound + Hyperlocal
Note
IMPORTANT: When using this Docker image, please report any bugs or suggestions to this repository directly.
Upgrade Notes
Caution
!!! THE LATEST VERSION CONTAINS BREAKING CHANGES
Pi-hole v6 has been entirely redesigned from the ground up and contains many breaking changes.
Tip
Firstly pull the new image with
docker pull ghcr.io/sujiba/pihole-unbound-hyperlocal:latest
. Next stop the old container withdocker compose down
. Follow the steps described under First startup. For the upgrade transition you're going to have two folders
- old: pihole-unbound-hyperlocal
- new: pihole-unbound-hyperlocal-v6
You can delete the old folder if everything is up and running.
Overview
Acknowledgement
- Docker Pi-hole
- Unbound
- Pi-hole Unbound
- mpgirro/docker-pihole-unbound
- Pi-hole: Einrichtung und Konfiguration mit unbound – AdBlocker Teil2
Introduction
Pi-hole:
- Pi-hole is a DNS sinkhole that protects your devices from unwanted content, without installing any client-side software.
Unbound:
- Unbound is a validating, recursive, caching DNS resolver. It is designed to be fast and lean and incorporates modern features based on open standards.
Hyperlocal:
- To spare the initial DNS query to the DNS-Root-Servers by Unbound, we provide Unbound with an appropriate configuration. With each Pi-hole update, the DNS-Root-Zone (root.hints) is also updated.
Prerequisites
- Install Docker
- Install Docker-Compose
First startup
Clone the repository to your favored location and change the config.
git clone -b main https://github.com/sujiba/pihole-unbound-hyperlocal.git pihole-unbound-hyperlocal-v6
# Change the timezone, password and other pi-hole settings
cp example.pihole.env pihole.env
vi pihole.env
# Change the ports if you're running a reverse proxy on ports 80 and 443
vi docker-compose.yml
Start the container
docker compose up -d
Check the logs
docker compose logs -f
Testing
docker compose exec -it pihole-unbound sh
dig github.com @127.0.0.1 +short
dig sigfail.verteiltesysteme.net @127.0.0.1 | grep status
dig sigok.verteiltesysteme.net @127.0.0.1 | grep status
- First dig should show an IP address
- Second dig should show status: SERVFAIL
- Last dig should show status: NOERROR
DNS problems
If you are running other docker containers on the same host and cannot use name resolution within these containers, you have to modify /etc/resolvconf.conf on your host system and uncomment the following:
# If you run a local name server, you should uncomment the below line and
# configure your subscribers configuration files below.
name_servers=127.0.0.1
Write the changes to your resolv.conf:
sudo resolvconf -u
See also StackExchange