mapletree/dns/docker-compose.yml
2026-01-26 15:03:11 -07:00

47 lines
1.4 KiB
YAML

services:
# --- Node 1 (Primary) ---
dns:
image: technitium/dns-server:latest
container_name: dns-01
restart: unless-stopped
ports:
- "53:53/udp" # Live DNS
- "53:53/tcp"
- "5381:5380/tcp" # Web UI -> 5381
environment:
- TZ=America/Edmonton
- DNS_SERVER_DOMAIN=dns1.mapletree.email
- DNS_SERVER_ADMIN_PASSWORD=${DNS_ADMIN_PASSWORD}
volumes:
#- ${CONFIG_PATH}/primary:/etc/dns/config
- /docker/dns/config:/etc/dns
networks:
dns_internal:
dns_external: {}
labels:
- "traefik.enable=true"
- "traefik.docker.network=dns_external"
- "traefik.http.routers.dns01.rule=Host(`dns1.mapletree.email`)"
- "traefik.http.routers.dns01.entrypoints=web,websecure"
- "traefik.http.routers.dns01.tls.certresolver=myresolver"
- "traefik.http.services.dns01.loadbalancer.server.port=5380"
# --- Metrics Sidecar ---
dns-exporter:
image: ghcr.io/guycalledseven/technitium-dns-prometheus-exporter:latest
container_name: dns-exporter
restart: unless-stopped
environment:
# Note the simplified variable names
- TECHNITIUM_BASE_URL=http://172.35.0.101:5380
- TECHNITIUM_TOKEN=${DNS_API_TOKEN}
ports:
- "8081:9105" # Maps container 8080 to host 8081
networks:
- dns_internal
networks:
dns_internal:
internal: true
dns_external:
external: true