50 lines
1.8 KiB
YAML
50 lines
1.8 KiB
YAML
version: "3.7"
|
|
|
|
services:
|
|
pihole:
|
|
container_name: pihole
|
|
image: pihole/pihole:2024.06.0
|
|
restart: unless-stopped
|
|
hostname: pihole
|
|
dns:
|
|
- 127.0.0.1
|
|
ports:
|
|
- ${NETWORK_INTERFACE:-0.0.0.0}:53:53/tcp
|
|
- ${NETWORK_INTERFACE:-0.0.0.0}:53:53/udp
|
|
- ${APP_PORT}:80
|
|
volumes:
|
|
- ${APP_DATA_DIR}/data/pihole:/etc/pihole
|
|
- ${APP_DATA_DIR}/data/dnsmasq:/etc/dnsmasq.d
|
|
environment:
|
|
TZ: ${TZ}
|
|
WEBPASSWORD: ${APP_PASSWORD}
|
|
cap_add:
|
|
- NET_ADMIN
|
|
networks:
|
|
- tipi_main_network
|
|
labels:
|
|
# Main
|
|
traefik.enable: true
|
|
traefik.http.middlewares.pihole-web-redirect.redirectscheme.scheme: https
|
|
traefik.http.services.pihole.loadbalancer.server.port: 80
|
|
# Web
|
|
traefik.http.routers.pihole-insecure.rule: Host(`${APP_DOMAIN}`)
|
|
traefik.http.routers.pihole-insecure.entrypoints: web
|
|
traefik.http.routers.pihole-insecure.service: pihole
|
|
traefik.http.routers.pihole-insecure.middlewares: pihole-web-redirect
|
|
# Websecure
|
|
traefik.http.routers.pihole.rule: Host(`${APP_DOMAIN}`)
|
|
traefik.http.routers.pihole.entrypoints: websecure
|
|
traefik.http.routers.pihole.service: pihole
|
|
traefik.http.routers.pihole.tls.certresolver: myresolver
|
|
# Local domain
|
|
traefik.http.routers.pihole-local-insecure.rule: Host(`pihole.${LOCAL_DOMAIN}`)
|
|
traefik.http.routers.pihole-local-insecure.entrypoints: web
|
|
traefik.http.routers.pihole-local-insecure.service: pihole
|
|
traefik.http.routers.pihole-local-insecure.middlewares: pihole-web-redirect
|
|
# Local domain secure
|
|
traefik.http.routers.pihole-local.rule: Host(`pihole.${LOCAL_DOMAIN}`)
|
|
traefik.http.routers.pihole-local.entrypoints: websecure
|
|
traefik.http.routers.pihole-local.service: pihole
|
|
traefik.http.routers.pihole-local.tls: true
|