Installare Pi-hole su OMV con Docker Compose e IP dedicato

Pubblicato da TheJoe il

Tempo di lettura stimato: 2 minuti

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.

Guarda qui:  Hotel "Città dei Mille" landing page

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.

TheJoe

Mantengo questo blog a livello amatoriale dal 2009. Sono appassionato di grafica, tecnologia, software Open Source. Fra i miei articoli non sarà difficile trovarne circa la musica, ed alcuni di riflessioni personali, ma preferisco indirizzare la linea del blog principalmente verso la tecnologia. Per informazioni contattami.

0 commenti

Lascia un commento

Segnaposto per l'avatar

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito utilizza Akismet per ridurre lo spam. Scopri come vengono elaborati i dati derivati dai commenti.