Files
Docker-Compose/Security_Containers/pihole/compose.yaml
T

74 lines
2.7 KiB
YAML
Raw Normal View History

2026-02-15 23:42:25 +00:00
services:
pihole:
container_name: pihole
image: pihole/pihole:latest
hostname: pihole
domainname: ${DOMAIN_NAME} # your local domain name
2026-02-15 23:42:25 +00:00
#mac_address: de:ad:be:ef:ff:01 # can change or leave this
#cap_add: # only needed if doing DHCP
# - NET_ADMIN
restart: unless-stopped
secrets:
- piholepass
networks:
pihole_network: # same as network specified below
ipv4_address: ${Pihole_IP} # the IP of the pihole container
dns:
- 127.0.0.1 # use local DNS
ports:
- "53:53/tcp" #DNS
- "53:53/udp" #DNS
#- "67:67/udp" #DHCP
- "80:80/tcp" #HTTP
- "443:443/tcp" #HTTPS
volumes: # mount our data volumes.
- "/srv/docker/pihole/pihole:/etc/pihole"
- "/srv/docker/pihole/dnsmasq.d:/etc/dnsmasq.d"
environment: # set variables for pihole configuration.
ServerIP: ${Pihole_IP} # must match ipv4_address above
FTLCONF_LOCAL_IPV4: ${Pihole_IP}
PIHOLE_DNS_: ${Pihole_IP}
DNSSEC: "false"
VIRTUAL_HOST: ${SERVICE_NAME}.${DOMAIN_NAME} # Must be hostname + domainname from above
2026-02-15 23:42:25 +00:00
#WEBPASSWORD: "randompassword"
WEBPASSWORD_FILE: "/run/secrets/piholepass"
TZ: "America/Chicago"
labels:
### Auto create icon on Flame dashboard
- flame.type=application
- flame.name=${SERVICE_NAME}
- flame.url=https://${SERVICE_NAME}.${DOMAIN_NAME}/admin
- flame.icon=https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/pi-hole.svg
### Enable Traefik
#- traefik.enable=true
#- traefik.docker.network=traefik_network
### For HTTP
#- traefik.http.routers.${SERVICE_NAME}.rule=Host(`${SERVICE_NAME}.${DOMAIN_NAME}`)
#- traefik.http.routers.${SERVICE_NAME}.entrypoints=web
### For HTTPS
#- traefik.http.routers.${SERVICE_NAME}-https.tls=true
#- traefik.http.routers.${SERVICE_NAME}-https.tls.certresolver=cloudflare
#- traefik.http.routers.${SERVICE_NAME}-https.entrypoints=websecure
#- traefik.http.routers.${SERVICE_NAME}-https.rule=Host(`${SERVICE_NAME}.${DOMAIN_NAME}`)
### Monitor with uptime-kuma
- kuma.monitoring.group.name=Docker Containers
- kuma.${SERVICE_NAME}.docker.parent_name=monitoring
- kuma.${SERVICE_NAME}.docker.name=${SERVICE_NAME}
- kuma.${SERVICE_NAME}.docker.type=docker
- kuma.${SERVICE_NAME}.docker.docker_container=${SERVICE_NAME}
- kuma.${SERVICE_NAME}.docker.docker_host=1
- 'kuma.${SERVICE_NAME}.docker.tag_names=[{"name": "docker_tag"}]'
2026-02-15 23:42:25 +00:00
secrets:
piholepass:
file: "/srv/docker/pihole/piholepass.txt"
networks:
pihole_network: # externally created network
external: true