Unfortunately, there isn’t a pihole addon in the Synology package center. But you can build your pihole in a docker container instead 🙂
The reason you must use docker-compose instead of the Synology docker package itself is that you want to bridge net NIC of your Synology and place the pihole direct in your network. You cannot do this with the GUI.
The steps:
- Install docker with the package center
- Activate SSH
- Download de image pihole/pihole:latest
- Login with ssh
- type vi docker-compose.yaml
- Paste the content from the docker-compose.yaml example into the vi
- Change the IP adressen to your own network
- Type :wr to save the file
- Type :q to quit vi
- Type “sudo docker-compose up”
- Have fun!
Docker-compose.yaml Example
# Note: 192.168.123.xxx is an example network, you must update all these to match your own.
version: '2'
services:
pihole:
container_name: pihole
image: pihole/pihole:latest
hostname: pihole
domainname: localhost # <-- Update
mac_address: d0:ca:ab:cd:ef:01
cap_add:
- NET_ADMIN
networks:
pihole_network:
ipv4_address: 192.168.123.199 # <-- Update
dns:
- 127.0.0.1
- 1.1.1.1
ports:
- 443/tcp
- 53/tcp
- 53/udp
- 67/udp
- 80/tcp
environment:
ServerIP: 192.168.123.199 # <-- Update (match ipv4_address)
VIRTUAL_HOST: pihole.localhost # <-- Update (match hostname + domainname)
WEBPASSWORD: "justarondompassword" # <-- Add password (if required)
restart: unless-stopped
networks:
pihole_network:
driver: macvlan
driver_opts:
parent: ovs_eth0
ipam:
config:
- subnet: 192.168.123.0/24 # <-- Update
gateway: 192.168.123.1 # <-- Update
ip_range: 192.168.123.192/28 # <-- Update
When you want to update the docker container, all you have to do is:
sudo docker-compose down
and
sudo docker-compose up
A good article I used to figure everything out is: http://tonylawrence.com/posts/unix/synology/free-your-synology-ports/