Our take
Activeregular commits and releases- Activity
- 57
- Community
- 43
- Issues
- 45
- Pull requests
- 72
+37 stars in the last 30 days
An actively maintained, feature-rich Cloudflare DDNS tool with recent releases, broad configuration options, and a clear Docker-first path for self-hosted deployments.
Good fit if
- You use Cloudflare DNS and want a scheduled updater for changing public IP addresses.
- You want IPv4/IPv6 controls, WAF list management, or notification integrations alongside DNS updates.
- You can supply a scoped Cloudflare API token and prefer Docker, or are comfortable running Go software directly.
Look elsewhere if
- You need first-party Kubernetes manifests or maintained Podman-specific deployment instructions, which the README says are not provided.
- Your DNS provider is not Cloudflare, or you need a DDNS client that uses a legacy global Cloudflare API key.
- You need an updater with a dedicated configuration interface; the documented setup is driven by environment variables and deployment files.
All health signals
| Last commit | 2026-09-29 (18 days ago) |
|---|---|
| Commits, last 90 days | 40 |
| Releases, last 12 months | 5 (latest v1.17.1, 2026-09-20) |
| Contributors | 8 (top contributor: 66% of commits) |
| Issues closed, last 90 days | 6 (typically closed in 27 days) |
| Pull requests merged, last 90 days | 40 (typically merged in 0 days) |
| Project age | 5 years |
Checked on 2026-10-18 with the GitHub API.
Project history
Daily GitHub snapshots since Oct 7, 2026. History covers stars and forks; health signals are not tracked historically.
Stars
2,975Forks
119Change since Nov 13, 2026: +2 stars·0 forks
Overview
cloudflare-ddns is a Go-based updater for Cloudflare DNS. It detects a machine’s public IP addresses and reconciles them with DNS records through the Cloudflare API, helping self-hosters keep domains pointed at changing home or server connections. It runs as a small Docker image or directly from Go source.
Beyond basic dynamic DNS, it can maintain Cloudflare WAF lists and send status or change notifications. Its design emphasizes secure IP detection over HTTPS or DNS over HTTPS, preservation of existing DNS record attributes, and recovery from transient network failures.
Key Features
- Manages
AandAAAArecords for domains across Cloudflare zones, including wildcard and internationalized domain names. - Detects public IPv4 and IPv6 addresses through Cloudflare trace or DNS-over-HTTPS, with configurable alternative providers.
- Preserves existing DNS proxy settings, TTLs, and comments where possible, with configurable fallback values.
- Optionally maintains Cloudflare WAF lists with detected addresses.
- Supports scheduled updates, one-time runs, and cleanup of managed records when stopping.
- Integrates with Healthchecks, Uptime Kuma, and notification services supported by shoutrrr.
- Provides Docker deployment options with security-hardening guidance and supports running directly from Go source.
Use Cases
- A self-hoster can keep a home server’s Cloudflare DNS records current as the ISP changes its public IP.
- A user with IPv4-only or IPv6-only connectivity can manage just the address family their network supports.
- A Cloudflare administrator can publish changing IP ranges to WAF lists for use in Cloudflare rules.
- An operator can monitor a scheduled updater with Healthchecks, Uptime Kuma, or a shoutrrr-supported notification service.
What you need
Detected in the repository
- Go 1.27.0 or newer (from go.mod)
- A Dockerfile, so it can run in a container
- A test suite and automated checks on GitHub Actions
License in plain words
Apache-2.0permissive
- Commercial use: yes
- Modify and redistribute: yes
- You must keep: the license, the NOTICE file and a note of your changes
- Share your changes: no
- Includes an explicit patent grant from the contributors:
A summary, not legal advice: the LICENSE file is what applies.
Getting Started
Create a Cloudflare API token with the required DNS edit permission, then run the Docker image with your token and domains:
docker run --network host \
-e CLOUDFLARE_API_TOKEN=YOUR-CLOUDFLARE-API-TOKEN \
-e DOMAINS=example.org,www.example.org \
favonia/cloudflare-ddns:1
See the README for Docker Compose setup, token permissions, settings, and alternative deployment options.
Considerations
- The project is active: it has recent commits, regular releases, and recent merged pull requests. Its contributor base includes eight people, and the measured contributor concentration is not flagged as a project risk.
- The updater needs outbound network access to detect addresses and reach the Cloudflare API. The default providers use Cloudflare endpoints; some local-interface detection modes require access to the host network.
- Docker Compose and Kubernetes-specific instructions are not maintained as first-party deployment guidance. The README suggests generating Kubernetes configuration from the Compose template, but does not provide maintained manifests.
- The project is licensed under Apache-2.0. Review the license terms for your distribution and use.
Found this useful?
Share it with someone who would like cloudflare-ddns.