A nice to have, MIT-licensed tool for using Cloudflare as a dynamic DNS provider.


Before you get started, ensure that you have a Cloudflare site (one or more, doesn't matter since it's by Zone ID) so records can be updated. Leveraging the example.json, create a file that you want to contain your own DNS A records. Run go build -v ., then leverage cloudflare-sync.exe -h for the specifics.


There is a Dockerfile you can use to push to your own registry, if you want. You can also leverage my pre-built one at if you want. Here is a template command you'll want:

docker run \
    -ti \
    -e "API_TOKEN=''" \
    -e "ZONE_ID=''" \
    -e "FREQUENCY=30" \
    -e "RECORDS_FILE_NAME=production.json" \

Don't forget to pass in your own production.json file via docker volumes.


There is a kubernetes.yml file which you can use to deploy a ConfigMap and Deployment for this. You shouldn't ever need more than one replica. Fill out the ConfigMap, spec.template.spec.containers[0].env values, and data.production.json with your configuration.