Skip to content

Setup DDNS-Updater

Overview

Program to keep DNS A and/or AAAA records updated for multiple DNS providers

Important DDNS-Updater Files

Fill in the zone_identifier, domain, host, and token in the json file.

Variable Description
zone_identifier Zone Key on cloudflare's Domain Page.
domain Root Domain of the host.
host Subdomain that you will want to be updated with the IP Address.
token API Key that you can generate using Create a Cloudflare API Key
config.json file
{
    "settings": [
      {
        "provider": "cloudflare",
        "zone_identifier": "",
        "domain": "",
        "host": "ddns",
        "ttl": 600,
        "token": "",
        "ip_version": "ipv4",
        "ipv6_suffix": ""
      }
    ]
  }

Important Docker Files

.env file

.env
NAME=ddns-updater
APPDATA=
PORT=8000
SUB=ddns
NTFY_URL=
TZ=America/New_York

docker-compose.yml file

docker-compose.yml
services:
  ddns-updater:
    image: qmcgaw/ddns-updater
    container_name: ${NAME}
    restart: always
    networks:
      - proxy
    dns:
      - '10.1.10.1'
    volumes:
      - ${APPDATA}/${NAME}:/updater/data
    labels:
      swag: enable
      swag_address: ${NAME}
      swag_port: ${PORT}
      swag_url: ${SUB}.${DOMAIN}
      swag_auth: authelia
      com.centurylinklabs.watchtower.enable: true
    environment:
      PERIOD: 5m
      UPDATE_COOLDOWN_PERIOD: 5m
      PUBLICIP_FETCHERS: all
      PUBLICIP_HTTP_PROVIDERS: all
      PUBLICIPV4_HTTP_PROVIDERS: all
      PUBLICIPV6_HTTP_PROVIDERS: all
      PUBLICIP_DNS_PROVIDERS: all
      PUBLICIP_DNS_TIMEOUT: 3s
      HTTP_TIMEOUT: 10s
      TZ: ${TZ}
      #BACKUP_PERIOD: 0 # 0 to disable
      #BACKUP_DIRECTORY: /updater/data
      SHOUTRRR_ADDRESSES: "ntfy://${NTFY_URL}/DDNS"
networks:
  proxy: 
    external: true

Start the Container

Start the Container
docker compose up -d