DDNS Updater provides a straightforward way to update dynamic DNS records without messing with the command-line or a file. The user-friendly interface allows for straightforward secure setup and management.
![]() |
![]() |
- Simple & User friendly UI
- Secure authentication with TOTP
- Encryption of sensitive data
- Scheduled update service
- Supports multiple IP resolvers
- Deploy as Windows Service
- Available as Docker Container
Strato
DDNSS
Dynu
Aliyun
NoIP
DD24
INWX
Note: If your DynDNS provider is not listed open an issue and I will integrate it.
It is recommended to use Compose as it is very convenient. The following examples show simple deployment options:
---
version: '3.9'
services:
ddns:
image: plaenkler/ddns-updater:latest
container_name: ddns
restart: always
networks:
- web
ports:
- 80:80
volumes:
- ./ddns:/app/data
environment:
- DDNS_INTERVAL=600
- DDNS_TOTP=false
- DDNS_PORT=80
networks:
web:
external: false
---
version: '3.9'
services:
ddns:
image: plaenkler/ddns-updater:latest
container_name: ddns
restart: always
networks:
web:
ipv4_address: 10.10.10.2
volumes:
- ./ddns:/app/data
environment:
- DDNS_INTERVAL=600
- DDNS_TOTP=false
- DDNS_PORT=80
networks:
web:
name: web
driver: macvlan
driver_opts:
parent: eth0
ipam:
config:
- subnet: "10.10.10.0/24"
ip_range: "10.10.10.0/24"
gateway: "10.10.10.1"
Note: DDNS Updater can also be deployed behind a proxy like Traefik or NGINX.
From the root of the source tree, run:
go build -o ddns-updater.exe cmd/main.go
Note: Make sure that CGO is operational!
Depending on personal preferences, there are several ways to configure DDNS Updater. Users can select from three different methods:
1. User Interface (Frontend)
The easiest way to configure DDNS Updater is to use the integrated web interface. This can be accessed via the browser at http://host-ip
.
Changes to the interval take effect immediately. The program must be restarted for the other settings to take effect.
2. Configuration File
A config.yaml file is provided to store all settings. In the absence of this file, the program generates one. Users have the option to directly modify settings within this file. It is important to note that changes made here will only take effect upon restarting the program. Default settings within the file are as follows:
# How often the IP address is checked in seconds
Interval: 600
# Enable TOTP authentication
TOTP: false
# Port for the web interface
Port: 80
# Custom IP resolver returns IPv4 address in plain text
Resolver: ""
3. Environment Variables
An alternative to the configuration file are environment variables. During the program start these are read they are superordinate to the configuration file.
DDNS_INTERVAL=600
DDNS_TOTP=false
DDNS_PORT=80
DDNS_RESOLVER=ipv4.example.com