COMPOSE_PROJECT_NAME=coredns # Custom CoreDNS image tag (CalVer). Built locally via `docker compose # build coredns` using ./coredns/Dockerfile; pulls plugins from the # referenced git repos at build time. Bump this when re-rolling. COREDNS_IMAGE_TAG=2026.05.21 # Legacy pin (no longer the active image; kept for emergency rollback # to upstream CoreDNS if the custom build needs to be reverted). COREDNS_IMAGE=coredns/coredns:1.11.3 # Host ports. systemd-resolved usually binds 53, so default to 5353. # Override to 53 if you actually want this to be the host's resolver. DNS_PORT=5353 METRICS_PORT=9153 # 8080 is famously contested (dev servers, alternate HTTP). 8081 less so. HEALTH_PORT=8081 # DoT (DNS-over-TLS, RFC 7858) — IANA port 853. Host port 8853 to # stay unprivileged. DOT_PORT=8853 # DoH (DNS-over-HTTPS, RFC 8484) — typically 443. Host port 8443 # because Caddy already owns 443 on this host. DOH_PORT=8443 # --- Production cert provisioning (Caddy sidecar + Let's Encrypt) --- # Hostname the cert is issued for. Must be a name you control and that # resolves via the public DNS server holding the zone (Vultr's NS). CADDY_HOSTNAME=dns.supported.systems # Contact email registered with Let's Encrypt for expiry notifications. ACME_EMAIL=rpm@malloys.us # VULTR_API_KEY is intentionally NOT stored here. Caddy reads it from # the shell environment via docker compose's variable interpolation — # export it in your shell (or in ~/.zshenv) before `make tls-up`.