A lightweight, self-hosted program that periodically updates DNS A/AAAA records across many DNS providers, with a web UI.
jeessy2/ddns-go
A lightweight Go tool that automatically detects your public IPv4/IPv6 address and updates DNS records at many DNS providers.
- Stars
- 17,526
- Forks
- 1,900
- Open issues
- 16
- Last commit
- 5 days ago
What is it?
DDNS-GO keeps domain names pointing at a home or office connection whose public IP changes over time. It detects the current public IPv4 or IPv6 address from a web API, a network interface, or a custom command, then updates the matching DNS records when the address changes.
It supports a broad set of DNS providers, including Alibaba Cloud, Tencent Cloud, DNSPod, Cloudflare, Huawei Cloud, Baidu Cloud, Porkbun, GoDaddy, and Namecheap. A custom Callback option covers providers not on the list. Several providers can be configured at once, and multiple domains, including multi-level subdomains, can be updated together. Configuration is done through a built-in web page on port 9876, which also shows recent logs.
The program runs on macOS, Windows, and Linux across ARM, x86, and RISC-V, and can be installed as a system service or run in Docker. Webhook notifications can report update results to services such as Discord, Feishu, DingTalk, and Telegram.
Key features
- 01Detects public IPv4 and IPv6 addresses via web APIs, network interfaces, or commands.
- 02Supports many DNS providers, plus custom providers through Callback.
- 03Updates multiple domains and providers at the same time.
- 04Configuration through a built-in web UI, with recent logs.
- 05Runs as a system service on macOS, Windows, and Linux, or in Docker.
- 06Sends Webhook notifications on update success or failure.
Use cases
- Pointing a domain at a home server or NAS whose public IP changes.
- Remote access to a self-hosted service without a static IP address.
- Keeping DNS records current on a router, VM, or Raspberry Pi.
- Sending IP-change alerts to a chat app via Webhook.
Quick start
- 1
Download and extract ddns-go from the Releases page
- 2
Install it as a system service (Mac/Linux)
sudo ./ddns-go -s install - 3
Open http://localhost:9876 in a browser to finish setup
Things to know
- Web setup and configuration are on port 9876 by default, so enabling public access requires a reverse proxy with HTTPS for security.
In collections
Topics
FAQ
- What is ddns-go?
- A lightweight Go tool that automatically detects your public IPv4/IPv6 address and updates DNS records at many DNS providers. DDNS-GO keeps domain names pointing at a home or office connection whose public IP changes over time. It detects the current public IPv4 or IPv6 address from a web API, a network interface, or a custom command, then updates the matching DNS records when the address changes.
- Is ddns-go free to use? What license does it have?
- ddns-go is open source under the MIT license. Check the license terms before using it in commercial products.
- Is ddns-go still maintained?
- Actively maintained. The last commit to ddns-go was on Nov 2, 2026.
- What can I use ddns-go for?
- Pointing a domain at a home server or NAS whose public IP changes. Remote access to a self-hosted service without a static IP address. Keeping DNS records current on a router, VM, or Raspberry Pi. Sending IP-change alerts to a chat app via Webhook.
- How do I install ddns-go?
- Download and extract ddns-go from the Releases page Install it as a system service (Mac/Linux): sudo ./ddns-go -s install Open http://localhost:9876 in a browser to finish setup
- Where can I get ddns-go?
- The source code and installation instructions are on GitHub: https://github.com/jeessy2/ddns-go
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
Self-hosted server control panel for deploying web apps, managing databases, Docker containers, DNS, backups and security on a VPS or dedicated server.
All-in-one self-hostable domain service platform combining short links, disposable email inboxes, subdomain DNS management, file storage and an open API, with an admin panel.
Self-hosted tool that automatically creates Cloudflare Tunnel routes, DNS records and Access policies from Docker container labels.
Self-hosted network gateway for homelabs and NAS boxes: DDNS, port forwarding, reverse proxy, ACME certificates, WAF and more in one binary.
A fully-replicated DNS, DHCP and TFTP server backed by etcd, with a web UI and ad-blocking.