Pi-hole con container Docker su raspberry

In questa guida vedremo come installare sul raspberry un container con Pi-hole.

Questo container può essere affiancato anche se è già presente un server web sul raspberry poichè per accedere al pannello di amministrazione di pi-hole, le porte 80 e 443 potranno essere portforwardate.

Come prerequisito è indispensabile aver installato sul raspberry docker.

Installazione

Per prima cosa creiamo sul raspberry una cartella dedicata allo scopo:

cd ~
mkdir pihole-container
cd pihole-container

Adesso dobbiamo creare il docker-compose:

nano docker-compose.yml

E inseriamo (con opportune modifiche) il seguente codice:

pihole:
    container_name: pihole
    domainname: docker
    hostname: pihole
    image: pihole/pihole:latest
    ports:
      - '53:53/tcp'
      - '53:53/udp'
      # - '67:67/udp'
      - '9999:80'
      - '9998:443'
    restart: unless-stopped
    volumes:
      - ./:/etc/pihole
      # - ${USERDIR}/docker/pihole/pihole.log:/var/log/pihole.log
      - ./dnsmasq.d:/etc/dnsmasq.d
    cap_add:
      - NET_ADMIN
    environment:
      - ServerIP=192.168.1.xxx
      - PROXY_LOCATION=pihole
      - VIRTUAL_HOST=pihole.local
      - VIRTUAL_PORT=80
      - TZ=Europe/Rome
      - WEBPASSWORD=Password123
      - DNS1=127.0.0.1
      - DNS2=1.1.1.1
    labels:
      - "traefik.enable=true"
      - "traefik.backend=pihole"
      - "traefik.port=80"
      - "traefik.frontend.rule=HostRegexp:pihole.local,{catchall:.*}"
      - "traefik.frontend.priority=1"
      - traefik.frontend.headers.SSLRedirect=true
      - traefik.frontend.headers.STSSeconds=315360000
      - traefik.frontend.headers.browserXSSFilter=true
      - traefik.frontend.headers.contentTypeNosniff=true
      - traefik.frontend.headers.forceSTSHeader=true
      - traefik.frontend.headers.SSLHost=local
      - traefik.frontend.headers.STSIncludeSubdomains=true
      - traefik.frontend.headers.STSPreload=true
      - traefik.frontend.headers.frameDeny=true

9999: porta per accedere in http sul browser
9998: porta per accedere in https sul browser
192.168.1.xxx: l’ip (STATICO) del proprio raspberry
Password123: scegliere la propria password per accedere al pannelo admin di Pi-hole

Dopo le opportune modifiche possiamo far partire il container:

docker-compose -f ./docker-compose.yml up -d

Non ci resta che visitare il nostro pannello del pihole:

http://192.168.1.xxx:9999/admin/