Skip to content

Instantly share code, notes, and snippets.

@williamwebb
Created February 10, 2020 04:01
Show Gist options
  • Save williamwebb/ebe0c3116fb8381e65929a86d6f1757f to your computer and use it in GitHub Desktop.
Save williamwebb/ebe0c3116fb8381e65929a86d6f1757f to your computer and use it in GitHub Desktop.
pihole cloudflared traefik
version: "3"
services:
traefik:
container_name: traefik
domainname: homedomain.lan
image: traefik:1.7
restart: unless-stopped
# Note I opt to whitelist certain apps for exposure to traefik instead of auto discovery
# use `--docker.exposedbydefault=true` if you don't want to have to do this
command: "--web --docker --docker.domain=homedomain.lan --docker.exposedbydefault=false --logLevel=DEBUG"
ports:
- "80:80"
- "443:443"
- "8080:8080"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
# - /dev/null:/traefik.toml
networks:
- default
- discovery
dns:
- 192.168.1.50
- 192.168.1.1
cloudflared:
container_name: cloudflared
image: visibilityspots/cloudflared:amd64
restart: unless-stopped
networks:
pihole_net:
ipv4_address: 10.0.0.2
pi-hole:
container_name: pi-hole
image: pihole/pihole
restart: unless-stopped
ports:
- '0.0.0.0:53:53/tcp'
- '0.0.0.0:53:53/udp'
- '0.0.0.0:67:67/udp'
- '0.0.0.0:8053:80/tcp'
environment:
- ServerIP=10.0.0.3
- DNS1='10.0.0.2#5054'
- DNS2=''
- IPv6=false
- TZ=CEST-2
- DNSMASQ_LISTENING=all
- WEBPASSWORD=admin
networks:
discovery:
pihole_net:
ipv4_address: 10.0.0.3
dns:
- 127.0.0.1
- 1.1.1.1
cap_add:
- NET_ADMIN
labels:
# required when using --docker.exposedbydefault=false
- "traefik.enable=true"
# https://www.techjunktrunk.com/docker/2017/11/03/traefik-default-server-catch-all/
- "traefik.frontend.rule=HostRegexp:pihole.homedomain.lan,{catchall:.*}"
- "traefik.frontend.priority=1"
- "traefik.backend=pihole"
- "traefik.port=80"
networks:
discovery:
# external: true
pihole_net:
driver: bridge
ipam:
config:
- subnet: 10.0.0.0/29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment