This docker image create and update A record of Cloudflare DNS
and let you use Cloudflare as dynamic DNS service.
git clone https://github.com/cf-jongsik/cf-ddns.git
./install.sh
./uninstall.sh
services:
cf-ddns:
image: docker.io/neomax7/cf-ddns:latest
environment:
- TOKEN=PLACE_YOUR_OWN_TOKEN # your TOKEN from Cloudflare Dashboard (require ZONE edit)
- ZONE=PLACE_YOUR_OWN_ZONE # your ZONE ID from Cloudflare Dashboard
- RECORD=PLACE_YOUR_SUBDOMAIN # Subdomain of your choice , example: test.example.com => example.com = zone , test = subdomain
#- TIMEZONE=PLACE_YOUR_TIMEZONE # OPTIONAL: for more accurate cronjob otherwise its UTC
#- CRON=* * * * * # OPTIONAL: default is every 5 min, make sure no quote or double quote
docker compose up -d
docker run -d --rm --env TOKEN=YOUR_TOKEN --env ZONE=YOUR_ZONE_ID --env RECORD=RECORD_OF_CHOICE --env CRON="* * * * *" neomax7/cf-ddns:latest
OR use env-file
docker run -d --rm --env-file .env neomax7/cf-ddns:latest
This agent takes following environment variables
#required
TOKEN = Cloudflare API TOKEN with DNS EDIT permission
ZONE = ZONE ID from Cloudflare dashboard
RECORD = name of A record wish to register
#optional
CRON = typical cron schedule ex: */5 * * * *
TIMEZONE = your timezone
script content
- $CRON schedule fires the script
- the script searches for the $RECORD in your $ZONE
- if the $RECORD exists, delete the record
(currently Cloudflare API doenst let you patch or put with Bearer token) - create the $RECORD with public IP from ifconfig.me