README_EN.md
中文 | English
Automatically obtain your public IPv4 or IPv6 address and resolve it to the corresponding domain name service.
Aliyun Aliyun ESA Tencent Dnspod Cloudflare Huawei Callback Baidu Porkbun GoDaddy Namecheap NameSilo Dynadot DNSLA Nowcn Eranet Gcore EdgeOne IBM NS1 Connect Rainyun[!NOTE] If you enable public network access, it is recommended to use Nginx and other reverse proxy software to enable HTTPS access to ensure security.
sudo ./ddns-go -s install.\ddns-go.exe -s installhttp://localhost:9876 for initial configurationsudo ./ddns-go -s uninstall.\ddns-go.exe -s uninstall-l listen address-f sync frequency(seconds)-cacheTimes interval N times compared with service providers-c custom configuration file path-noweb does not start web service-skipVerify skip certificate verification-dns custom DNS server-resetPassword reset password./ddns-go -s install -f 600 -c /Users/name/.ddns_go_config.yaml
./ddns-go -s install -f 10 -cacheTimes 180
./ddns-go -resetPassword 123456
Mount the host directory, use the docker host mode. You can replace /opt/ddns-go with any directory on your host, the configuration file is a hidden file
docker run -d --name ddns-go --restart=always --net=host -v /opt/ddns-go:/root jeessy/ddns-go
Please open the browser and visit http://DOCKER_IP:9876 for initial configuration
[Optional] Use ghcr.io mirror
docker run -d --name ddns-go --restart=always --net=host -v /opt/ddns-go:/root ghcr.io/jeessy2/ddns-go
[Optional] Support startup with parameters -llisten address -fSync frequency(seconds)
docker run -d --name ddns-go --restart=always --net=host -v /opt/ddns-go:/root jeessy/ddns-go -l :9877 -f 600
[Optional] Without using docker host mode
docker run -d --name ddns-go --restart=always -p 9876:9876 -v /opt/ddns-go:/root jeessy/ddns-go
[Optional] Reset password
docker exec ddns-go ./ddns-go -resetPassword 123456
docker restart ddns-go
Support webhook, when the domain name is updated successfully or not, the URL filled in will be called back
Support variables
| Variable name | Comments |
|---|---|
| #{ipv4Addr} | The new IPv4 |
| #{ipv4Result} | IPv4 update result: no changed success failed |
| #{ipv4Domains} | IPv4 domains,Split by , |
| #{ipv6Addr} | The new IPv6 |
| #{ipv6Result} | IPv6 update result: no changed success failed |
| #{ipv6Domains} | IPv6 domains,Split by , |
| #{timestamp} | Current UTC+0 timestamp in seconds |
If RequestBody is empty, it is a GET request, otherwise it is a POST request
Webhook URL copied from Discord in the URL{
"content": "The domain name #{ipv4Domains} dynamically resolves to #{ipv4Result}.",
"embeds": [
{
"description": "Domains: #{ipv4Domains}, Result: #{ipv4Result}, IP: #{ipv4Addr}",
"color": 15258703,
"author": {
"name": "DDNS"
},
"footer": {
"text": "DDNS #{ipv4Result}"
}
}
]
}
Support more third-party DNS service providers through custom callback
Callback will be called as many times as there are lines in the configured domain name
Support variables
| Variable name | Comments |
|---|---|
| #{ip} | The new IPv4/IPv6 address |
| #{domain} | Current domain |
| #{recordType} | Record type A or AAAA |
| #{ttl} | TTL |
If RequestBody is empty, it is a GET request, otherwise it is a POST request