Rust based dynamic DNS (DDNS) updater for Cloudflare
docker pull timothyjmiller/cloudflare-ddns
docker run -d --name cloudflare-ddns --restart always timothyjmiller/cloudflare-ddns:2.3.0
podman run -d --name cloudflare-ddns --restart always timothyjmiller/cloudflare-ddns:2.3.0
skopeo inspect docker://docker.io/timothyjmiller/cloudflare-ddns:2.3.0
oras pull timothyjmiller/cloudflare-ddns:2.3.0
docker compose up -d
# cloudflare-ddns โ environment-variable mode (recommended).
#
# docker compose -f docker/docker-compose.yml up -d
#
# Host networking is only needed for IPv6 detection. If you only need IPv4,
# remove `network_mode: host` and set IP6_PROVIDER=none.
services:
cloudflare-ddns:
# Pin a release tag (2.3.0, 2.3, or 2) instead of `latest` for predictable upgrades.
image: timothyjmiller/cloudflare-ddns:2.3.0
container_name: cloudflare-ddns
security_opt:
- no-new-privileges:true
network_mode: host
environment:
# Token needs Zone > DNS > Edit and Zone > Zone > Read on the target zones.
# Prefer CLOUDFLARE_API_TOKEN_FILE with a Docker secret (see README).
- CLOUDFLARE_API_TOKEN=YOUR-CLOUDFLARE-API-TOKEN
- DOMAINS=example.com,www.example.com
- PROXIED=false
- TTL=1
- UPDATE_CRON=@every 5m
# - IP6_PROVIDER=none
# - HEALTHCHECKS=https://hc-ping.com/your-uuid
# - UPTIMEKUMA=https://kuma.example.com/api/push/your-token
# - SHOUTRRR=discord://token@webhook-id
restart: unless-stopped