explaingit

newfuture/ddns

Analysis updated 2026-07-03

4,666PythonAudience · ops devopsComplexity · 2/5Setup · moderate

TLDR

A background tool that automatically updates your domain's DNS records whenever your home or server IP address changes, so your website or service stays reachable under the same address.

Mindmap

mindmap
  root((repo))
    What it does
      Updates DNS records
      Detects IP changes
      Runs on a schedule
    Supported providers
      Cloudflare
      DNSPod
      No-IP
      Alibaba DNS
    Setup options
      Docker container
      Standalone binary
      pip install
    Config sources
      JSON settings file
      Environment variables
      Command-line args
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

Keep a home server reachable at a fixed domain name even though your internet provider changes your IP address regularly.

USE CASE 2

Run a self-hosted service like a game server or file share with a stable web address without buying a static IP.

USE CASE 3

Point a custom domain to a small VPS or cloud instance that gets reassigned IP addresses on restarts.

USE CASE 4

Update both IPv4 and IPv6 DNS records automatically across providers like Cloudflare, No-IP, or DNSPod.

What is it built with?

PythonDocker

How does it compare?

newfuture/ddnsagent-infra/sandboxhhatto/autopep8
Stars4,6664,6664,668
LanguagePythonPythonPython
Setup difficultymoderateeasyeasy
Complexity2/53/52/5
Audienceops devopsdeveloperdeveloper

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

How do you get it running?

Difficulty · moderate Time to first run · 30min

Requires an API token from your DNS provider before the tool can update any records.

In plain English

This repository is a tool that automatically keeps your domain name pointing to your current internet address, even when that address changes. Many home internet connections and some small hosting setups receive a different IP address each time they reconnect. This tool, called DDNS (Dynamic DNS), runs in the background and updates your domain's records whenever it detects a change, so people can always find your server under the same web address. The tool supports more than fifteen DNS service providers, including Cloudflare, Alibaba DNS, Tencent Cloud DNS, Huawei Cloud DNS, DNSPOD, No-IP, NameSilo, and several others. It handles both the older IPv4 address format and the newer IPv6 format, and can detect whether your machine is using a local network address or a public one, updating the correct record automatically. You can run it in several ways: as a Docker container (the recommended method), as a standalone binary file that does not require Python, via the Python package manager using pip, or directly from the source code. Configuration is flexible, accepting command-line arguments, a JSON settings file, or environment variables, with command-line arguments taking the highest priority when multiple sources conflict. The project is primarily documented in Chinese, which reflects its main user base, though the configuration table headers and provider list are readable in English. Setup involves obtaining an API token from your DNS provider, specifying which domain names to update, and then running the tool on a schedule. It includes a local cache to avoid unnecessary API calls when the IP has not changed, and supports HTTP proxies for networks that require them. This is a utility for people who run their own servers or services at home and want a stable web address without paying for a fixed IP from their internet provider.

Copy-paste prompts

Prompt 1
Set up newfuture/ddns with Docker to keep my Cloudflare domain pointing to my home server. Show me the docker-compose.yml and the minimum config I need.
Prompt 2
I use No-IP for dynamic DNS. How do I configure newfuture/ddns with a JSON settings file to update my No-IP hostname every 5 minutes?
Prompt 3
My home server gets both an IPv4 and IPv6 address. How do I configure newfuture/ddns to update both A and AAAA records on Cloudflare automatically?
Prompt 4
Show me how to run newfuture/ddns as a standalone binary on a Raspberry Pi without installing Python.
Prompt 5
I need newfuture/ddns to work behind an HTTP proxy at my office. How do I set the proxy in the config?

Frequently asked questions

What is ddns?

A background tool that automatically updates your domain's DNS records whenever your home or server IP address changes, so your website or service stays reachable under the same address.

What language is ddns written in?

Mainly Python. The stack also includes Python, Docker.

How hard is ddns to set up?

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

Who is ddns for?

Mainly ops devops.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Scan in gitsafehub Deploy in gitdeployhub newfuture on gitmyhub

Verify against the repo before relying on details.