Merge pull request 'add Container pihole' (#6) from pihole into main

Reviewed-on: #6
This commit is contained in:
kevinheyer 2025-03-19 18:41:53 +00:00
commit 1ea9c2693f
3 changed files with 60 additions and 0 deletions

5
pihole/.env-example Normal file
View file

@ -0,0 +1,5 @@
# PiHole Version (Standard: latest)
PIHOLE_VERSION=latest
# PiHole Domain
PIHOLE_DOMAIN=pihole.example.com

0
pihole/README.md Normal file
View file

55
pihole/docker-compose.yml Normal file
View file

@ -0,0 +1,55 @@
# 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