Self-hosted tool that automatically creates Cloudflare Tunnel routes, DNS records and Access policies from Docker container labels.
qdm12/ddns-updater
A lightweight, self-hosted program that periodically updates DNS A/AAAA records across many DNS providers, with a web UI.
Open-source alternative to:DynDNS
- Stars
- 3,258
- Forks
- 286
- Open issues
- 244
- Last commit
- last month
What is it?
DDNS Updater keeps DNS A and AAAA records pointed at your current public IP address, which is useful when your home or office connection uses a dynamic IP. It runs as a single binary or a Docker/Kubernetes container, checks your public IP on a configurable period (5 minutes by default), and calls the DNS provider's API only when the record no longer resolves to that address.
It supports a long list of providers, including Cloudflare, Namecheap, GoDaddy, Route53, DuckDNS, DigitalOcean and Hetzner, and each provider has its own configuration guide. Settings are defined in a JSON file or a single environment variable, and a web UI shows the status of each record. Notifications can be sent through Shoutrrr, and a healthcheck verifies that domains resolve correctly.
Key features
- 01Updates A and AAAA records for dozens of DNS providers.
- 02Web UI for viewing record status, with desktop and mobile layouts.
- 03Runs as a zero-dependency binary or a small Docker image for amd64, arm64 and other architectures.
- 04Skips API calls when DNS resolution already shows the current IP, avoiding rate limits.
- 05Sends notifications via Shoutrrr and supports a healthchecks.io ping.
Use cases
- Keeping a home server or self-hosted service reachable when the ISP changes your IP address.
- Running a DDNS client in a Docker or Kubernetes cluster that manages records at a supported provider.
- Updating records on a router-less network from a Raspberry Pi or other small ARM device.
Quick start
- 1
Install the program with Go
go install github.com/qdm12/ddns-updater/cmd/ddns-updater@latest - 2
Create a data directory and a config.json file in it
- 3
Run the program
./ddns-updater
Things to know
- Requires writing a JSON configuration with your DNS provider credentials before it can update anything.
In collections
Topics
FAQ
- What is ddns-updater?
- A lightweight, self-hosted program that periodically updates DNS A/AAAA records across many DNS providers, with a web UI. DDNS Updater keeps DNS A and AAAA records pointed at your current public IP address, which is useful when your home or office connection uses a dynamic IP. It runs as a single binary or a Docker/Kubernetes container, checks your public IP on a configurable period (5 minutes by default), and calls the DNS provider's API only when the record no longer resolves to that address.
- Is ddns-updater free to use? What license does it have?
- ddns-updater is open source under the MIT license. Check the license terms before using it in commercial products.
- Is ddns-updater still maintained?
- Updated within 6 months. The last commit to ddns-updater was on Sep 16, 2026.
- What can I use ddns-updater for?
- Keeping a home server or self-hosted service reachable when the ISP changes your IP address. Running a DDNS client in a Docker or Kubernetes cluster that manages records at a supported provider. Updating records on a router-less network from a Raspberry Pi or other small ARM device.
- How do I install ddns-updater?
- Install the program with Go: go install github.com/qdm12/ddns-updater/cmd/ddns-updater@latest Create a data directory and a config.json file in it Run the program: ./ddns-updater
- Where can I get ddns-updater?
- The source code and installation instructions are on GitHub: https://github.com/qdm12/ddns-updater
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
Self-hosted network gateway for homelabs and NAS boxes: DDNS, port forwarding, reverse proxy, ACME certificates, WAF and more in one binary.
Self-hosted server control panel for deploying web apps, managing databases, Docker containers, DNS, backups and security on a VPS or dedicated server.
Self-hosted real-time monitoring dashboard for Proxmox, Docker, Kubernetes, TrueNAS and vSphere, with alerts and scheduled AI patrols.
A self-hosted home dashboard with drag-and-drop layout, 80+ service integrations, built-in icons, and user authentication.
A lightweight web UI for managing Docker, Swarm, Podman, Kubernetes and ACI container environments.