mapletree/lxc1/p1-ingress/technitium.yml
admin fcfd0f821f
Some checks are pending
PVE2 Infrastructure Deploy / terraform (push) Waiting to run
update image locations
2026-02-09 12:23:19 -07:00

32 lines
1.8 KiB
YAML

services:
dns:
image: hub.mapletree.email/docker-hub/technitium/dns-server:latest
container_name: dns-${DNS_NODE_ID} # Becomes dns-1 or dns-2
restart: unless-stopped
network_mode: host
environment:
- TZ=America/Edmonton
- DNS_SERVER_DOMAIN=dns${DNS_NODE_ID}.${TRAEFIK_DNS_SUFFIX} # dns1... or dns2...
- DNS_SERVER_ADMIN_PASSWORD=${DNS_ADMIN_PASSWORD}
volumes:
# Updated path to match your new 'infrastructure' folder structure
- /docker/dns/config:/etc/dns
labels:
- "traefik.enable=${DNS_TRAEFIK_ENABLED}"
- "traefik.docker.network=dns_external"
# --- SHARED HA ROUTER ---
# The router NAME must be unique, so we add the ID here too
- "traefik.http.routers.dns-shared-${DNS_NODE_ID}.rule=Host(`dns.${TRAEFIK_DNS_SUFFIX}`)"
- "traefik.http.routers.dns-shared-${DNS_NODE_ID}.entrypoints=${TRAEFIK_ENTRY_POINTS}"
- "traefik.http.routers.dns-shared-${DNS_NODE_ID}.tls.certresolver=${TRAEFIK_RESOLVER}"
# Both point to the SAME service name to enable load balancing
- "traefik.http.routers.dns-shared-${DNS_NODE_ID}.service=dns-common-service"
# --- NODE-SPECIFIC ADMIN ROUTER ---
# Unique router name and unique Host rule
- "traefik.http.routers.dns-admin-${DNS_NODE_ID}.rule=Host(`dns${DNS_NODE_ID}.${TRAEFIK_DNS_SUFFIX}`)"
- "traefik.http.routers.dns-admin-${DNS_NODE_ID}.entrypoints=${TRAEFIK_ENTRY_POINTS}"
- "traefik.http.routers.dns-admin-${DNS_NODE_ID}.tls.certresolver=${TRAEFIK_RESOLVER}"
- "traefik.http.routers.dns-admin-${DNS_NODE_ID}.service=dns-common-service"
# --- THE SHARED SERVICE ---
# This name MUST be identical on Node 1 and Node 2
- "traefik.http.services.dns-common-service.loadbalancer.server.port=${DNS_TRAEFIK_PORT}"