This is a simple DNS server that wraps up dnsmasq and the nextdns client into a single package
Here is an example docker-compose.yml file that will setup three docker services.
- The autoheal service from willfarrell/autoheal that will kill the container if DNS services fail.
- The DNS service itself
- Will auto update nextdns-proxy
version: '2' services: watchtower: container_name: watchtower restart: always image: v2tec/watchtower environment: WATCHTOWER_CLEANUP: "true" volumes: - /var/run/docker.sock:/var/run/docker.sock autoheal: container_name: autoheal image: jstrader/autoheal volumes: - /var/run/docker.sock:/var/run/docker.sock restart: always nextdns-proxy: image: "ghcr.io/terafin/nextdns-proxy:latest" container_name: nextdns-proxy hostname: nextdns-proxy labels: autoheal: "true" ports: - "53:53/udp" environment: # Note, these are ALL optional NEXTDNS_CONFIG: <<Your NextDNS Config/Endpoint ID here, this can be found on the NextDNS Setup page> NEXTDNS_CONFIG_CUSTOM1: <<Your conditional routing pattern here. Documentation here: https://github.com/nextdns/nextdns/wiki/Conditional-Configuration> NEXTDNS_CONFIG_CUSTOM2: <<Your conditional routing pattern here. Documentation here: https://github.com/nextdns/nextdns/wiki/Conditional-Configuration> NEXTDNS_CONFIG_YOUR_CUSTOM_SUFFIX: <<Your conditional routing pattern here. Documentation here: https://github.com/nextdns/nextdns/wiki/Conditional-Configuration> NEXTDNS_FORWARDING_DOMAIN: <<Your Local DNS Name Here, eg: myfancyhome.net>> NEXTDNS_FORWARDING_DNSIP: <<Your Local Router's IP Here, eg: 10.0.1.1>> NEXTDNS_MAX_TTL: <<Maximum TTL in seconds for hostnames from NextDNS - defaults to 15>> NEXTDNS_CACHE_SIZE: <<Cache size for NextDNS - defaults to 10MB>> restart: always To use the compose file, just make it in the directory of your choice, then simply run:
docker-compose up -d
Note, for Raspberry Pi deployment, change the line: image: jstrader/autoheal to be: image: jstrader/autoheal:latest-arm