Installare Pi-hole su OMV con Docker Compose e IP dedicato
Pi-hole è un popolare software di DNS filtering e ad-blocking che permette di bloccare pubblicità, tracker e domini indesiderati a livello di rete. In questa guida vedremo come installarlo su un home server con OpenMediaVault (OMV), usando Docker Compose, con due accorgimenti fondamentali:
- Usare volumi fisici del disco e non mergerfs, per evitare di corrompere il database
gravity.db. - Assegnare a Pi-hole un IP statico dedicato invece di una semplice porta, così da poterlo usare come DNS primario su tutta la rete.
Prerequisiti
- Un server con OMV installato e funzionante.
- Docker e Docker Compose attivati dal plugin OMV-Extras.
- Una rete LAN configurata con DHCP (ad esempio dal tuo router).
- Un IP libero da dedicare a Pi-hole (nell’esempio useremo
192.168.5.53).
Preparare le cartelle
Per prima cosa creiamo le directory dove Pi-hole salverà i dati. È importante che queste directory siano su un disco fisico reale e non su mergerfs:
mkdir -p /srv/dev-disk-by-uuid-XXXXXX/docker_appdata/pihole/etc-pihole
mkdir -p /srv/dev-disk-by-uuid-XXXXXX/docker_appdata/pihole/etc-dnsmasq.d
Sostituisci XXXXXX con l’UUID del disco reale che vedi in OMV (il comando lsblk -f ti aiuta a identificarlo).
File docker-compose.yml
Creiamo il file nella cartella del progetto:
services:
pihole:
container_name: pihole
image: pihole/pihole:latest
environment:
TZ: 'Europe/Rome'
WEBPASSWORD: 'scegliUnaPasswordSicura'
volumes:
- /srv/dev-disk-by-uuid-XXXXXX/docker_appdata/pihole/etc-pihole:/etc/pihole
- /srv/dev-disk-by-uuid-XXXXXX/docker_appdata/pihole/etc-dnsmasq.d:/etc/dnsmasq.d
dns:
- 127.0.0.1
- 1.1.1.1
network_mode: "macvlan"
restart: unless-stopped
cap_add:
- NET_ADMIN
Configurare la rete macvlan
Per assegnare a Pi-hole un IP dedicato, bisogna creare una rete macvlan. Prima fermiamo i container, poi da terminale:
docker network create -d macvlan \
--subnet=192.168.5.0/24 \
--gateway=192.168.5.1 \
-o parent=eth0 \
pihole_network
Cambia eth0 con l’interfaccia reale del tuo server (il comando ip a ti aiuta a individuarla).
Cambia 192.168.5.0/24 e 192.168.5.1 con i parametri della tua LAN.
Poi modifichiamo il servizio in docker-compose.yml per agganciarsi a questa rete e avere un IP statico:
networks:
default:
external:
name: pihole_network
services:
pihole:
networks:
default:
ipv4_address: 192.168.5.53
Avviare Pi-hole
Lanciare il container:
docker compose up -d
Dopo qualche secondo, l’interfaccia web sarà disponibile su:
http://192.168.5.53/admin
Accedi con la password che hai scelto in WEBPASSWORD.
Configurare la rete
Ora puoi impostare l’IP 192.168.5.53 come DNS primario nel tuo router, così tutti i dispositivi della rete useranno Pi-hole. In alternativa, puoi configurare manualmente il DNS sui singoli client.
Conclusione
Con questa configurazione hai un Pi-hole:
- Stabile, perché i dati sono salvati su disco fisico.
- Accessibile con un IP dedicato in rete.
- Pronto a filtrare pubblicità e tracker a livello di LAN.



0 commenti