services: dns: image: technitium/dns-server:latest container_name: dns-${NODE_ID} # Becomes dns-1 or dns-2 restart: unless-stopped ports: - "53:53/udp" - "53:53/tcp" - "5381:5380/tcp" environment: - TZ=America/Edmonton - DNS_SERVER_DOMAIN=dns${NODE_ID}.mapletree.email # dns1... or dns2... - DNS_SERVER_ADMIN_PASSWORD=${DNS_ADMIN_PASSWORD} volumes: # Updated path to match your new 'infrastructure' folder structure - /docker/core/dns/config:/etc/dns networks: - dns_external labels: - "traefik.enable=true" - "traefik.docker.network=dns_external" # Dynamic Router Name (dns1 vs dns2) - "traefik.http.routers.dns${NODE_ID}.rule=Host(`dns${NODE_ID}.mapletree.email`)" - "traefik.http.routers.dns${NODE_ID}.entrypoints=web,websecure" - "traefik.http.routers.dns${NODE_ID}.tls.certresolver=myresolver" - "traefik.http.services.dns${NODE_ID}.loadbalancer.server.port=5380" networks: dns_external: external: true