Repolode
qdm12

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. 1

    Install the program with Go

    go install github.com/qdm12/ddns-updater/cmd/ddns-updater@latest
  2. 2

    Create a data directory and a config.json file in it

  3. 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