# More info at https://github.com/pi-hole/docker-pi-hole/ and https://docs.pi-hole.net/ services: pihole: image: pihole/pihole:${PIHOLE_VERSION:-latest} container_name: pihole restart: unless-stopped networks: - traefik ports: # DNS Ports - "53:53/tcp" - "53:53/udp" # Default HTTP Port - "80:80/tcp" # Default HTTPs Port. FTL will generate a self-signed certificate - "443:443/tcp" # Uncomment the line below if you are using Pi-hole as your DHCP server #- "67:67/udp" # Uncomment the line below if you are using Pi-hole as your NTP server #- "123:123/udp" environment: # Set the appropriate timezone for your location (https://en.wikipedia.org/wiki/List_of_tz_database_time_zones), e.g: TZ: 'Europe/Berlin' # Set a password to access the web interface. Not setting one will result in a random password being assigned FTLCONF_webserver_api_password: '${PIHOLE_PASSWORD}' # If using Docker's default `bridge` network setting the dns listening mode should be set to 'all' FTLCONF_dns_listeningMode: 'all' # Volumes store your data between container upgrades volumes: # For persisting Pi-hole's databases and common configuration file - './data/etc-pihole:/etc/pihole' cap_add: # See https://github.com/pi-hole/docker-pi-hole#note-on-capabilities # Required if you are using Pi-hole as your DHCP server, else not needed #- NET_ADMIN # Required if you are using Pi-hole as your NTP client to be able to set the host's system time #- SYS_TIME # Optional, if Pi-hole should get some more processing time #- SYS_NICE labels: - "traefik.enable=true" - "traefik.docker.network=traefik" - "traefik.http.routers.pihole.entrypoints=http" - "traefik.http.routers.pihole.rule=Host(`${PIHOLE_DOMAIN:?error}`)" - "traefik.http.middlewares.pihole-https-redirect.redirectscheme.scheme=https" - "traefik.http.routers.pihole.middlewares=pihole-https-redirect" - "traefik.http.routers.pihole-secure.entrypoints=https" - "traefik.http.routers.pihole-secure.rule=Host(`${PIHOLE_DOMAIN:?error}`)" - "traefik.http.routers.pihole-secure.tls=true" - "traefik.http.routers.pihole-secure.service=pihole" - "traefik.http.services.pihole.loadbalancer.server.port=80" networks: traefik: external: true