whatisgithub

What is ddns-go?

jeessy2/ddns-go — explained in plain English

Analysis updated 2026-06-24

16,765GoAudience · ops devopsComplexity · 2/5Setup · easy

In one sentence

A background program that watches your internet connection for IP changes and automatically updates your domain DNS records, so a name like home.example.com always reaches your machine even as your IP changes.

Mindmap

mindmap
  root((ddns-go))
    What it does
      Watches public IP
      Updates DNS records
      Checks every 5 min
    Supported providers
      Cloudflare
      GoDaddy
      Namecheap
      Aliyun
    Notifications
      Discord
      Telegram
      DingTalk
    Setup
      Web UI port 9876
      Docker image
      ARM and x86
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Self-host a personal website or game server on a home broadband line where your public IP changes regularly.

USE CASE 2

Keep a remote-access domain pointing at your home NAS or router without paying for a static IP.

USE CASE 3

Receive a notification to Discord, Telegram, or Bark whenever your home public IP address changes.

USE CASE 4

Update both IPv4 and IPv6 DNS records across multiple providers and subdomains from one lightweight tool.

What is it built with?

GoDocker

How does it compare?

jeessy2/ddns-govxcontrol/pentagiprojectdiscovery/katana
Stars16,76516,83816,687
LanguageGoGoGo
Setup difficultyeasyhardeasy
Complexity2/55/53/5
Audienceops devopsops devopsops devops

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · easy Time to first run · 30min

Requires valid credentials for your DNS provider entered through the built-in web UI on port 9876.

License not mentioned in the explanation.

So what is it?

DDNS-GO is a Dynamic DNS client. Dynamic DNS, often shortened to DDNS, is a small background program that watches your internet connection, notices when your public IP address changes (which happens automatically with most home broadband lines), and then tells your domain name provider to point your domain at the new address. The end result is that even though your IP keeps changing, a name like home.example.com always reaches your machine. The program runs on Mac, Windows, and Linux, and supports several CPU architectures including ARM, x86, and RISC-V. It can keep many DNS providers in sync, including Aliyun, Tencent Cloud, Dnspod, Cloudflare, Huawei Cloud, Baidu Cloud, Porkbun, GoDaddy, Namecheap, NameSilo, Dynadot, DNSLA, Gcore, IBM NS1 Connect, and others, plus a generic Callback option. It can get the current IP from a public lookup service, a chosen network card, or a custom shell command, and can update several providers at once, handle multiple domains, multi-level subdomains, and both IPv4 and IPv6. By default it checks every five minutes. You set everything up through a small built-in web page on port 9876, where you fill in provider credentials and the domains to keep updated, and you can also view the last fifty log entries. The README recommends running it behind an HTTPS reverse proxy such as Nginx if the web UI is exposed publicly. There is optional Webhook support, so DDNS-GO can ping a custom URL after each update, the README's examples cover Server酱, Bark, DingTalk, Feishu, Discord, Telegram, and WeChat. You'd use DDNS-GO when self-hosting on a residential connection. It is written in Go and distributed as binaries and a Docker image.

Copy-paste prompts

Prompt 1
Set up ddns-go with Docker to automatically update my Cloudflare DNS A record every time my home IP address changes.
Prompt 2
Configure ddns-go to update both an IPv4 and IPv6 record for my subdomain on Namecheap every 5 minutes.
Prompt 3
Set up a ddns-go Webhook to send a Telegram message each time my public IP address is updated.
Prompt 4
How do I run ddns-go behind an Nginx HTTPS reverse proxy to secure the web UI on port 9876?
Prompt 5
Show me how to configure ddns-go to pull my current IP from a specific network card instead of a public lookup service.

Frequently asked questions

What is ddns-go?

A background program that watches your internet connection for IP changes and automatically updates your domain DNS records, so a name like home.example.com always reaches your machine even as your IP changes.

What language is ddns-go written in?

Mainly Go. The stack also includes Go, Docker.

What license does ddns-go use?

License not mentioned in the explanation.

How hard is ddns-go to set up?

Setup difficulty is rated easy, with roughly 30min to a first successful run.

Who is ddns-go for?

Mainly ops devops.

Open on GitHub → Ask about another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.