1 unstable release

0.1.0 May 4, 2024

#8 in #dns-client


189 lines


Cloudflare dynamic DNS client

A simplistic dynamic DNS client that only works with Cloudflare, for only one domain. It's easily configurable via environment variables, making it an ideal choice to use in containers.


The recommended way of using cfdydns is through containers. Built containers are available in:

  • GitHub Container Registry: ghcr.io/xjonathanlei/cfdydns:latest
  • Docker Hub: xjonathanlei/cfdydns:latest

You may also install the binary directly. With the Rust toolchain installed:

cargo install --locked --path .

Getting started

cfdydns is configurable via command line options and environment variables. Running cfdydns --help reveals the options:

Option Env var Optional Description
--fqdn CFDYDNS_FQDN No Fully-qualified domain name to set A record on
--zone CFDYDNS_ZONE No Zone name of the FQDN (e.g. example.com)
--api-token CFDYDNS_API_TOKEN No Cloudflare API token with the DNS: Edit permission for the target zone
--interval CFDYDNS_INTERVAL Yes Number of seconds to wait between each check


cfdydns does not create new records for you. The target A record for the FQDN must already exist.

Why not ddclient?

ddclient is hard to configure and barely maintained. Who cares about all the DNS provider integration when you're only using Cloudflare anyways.


Licensed under either of

at your option.


~226K SLoC