About this project

DDNS-GO automatically detects public IPv4/IPv6 addresses and updates the corresponding domain's A/AAAA records to configured DNS providers. It supports Alibaba Cloud, Alibaba Cloud ESA, Tencent Cloud, Dnspod, Cloudflare, Huawei Cloud, Baidu Cloud, Porkbun, GoDaddy, Namecheap, NameSilo, Dynadot, DNSLA, EraNet, Eranet, Tnethk, Gcore, EdgeOne, IBM NS1 Connect, Rain Cloud, deSEC, and Callback. IP addresses can be obtained via interfaces, network cards, or commands. By default, the program synchronizes every 5 minutes. Parameters can be adjusted to modify the listening address, synchronization interval, configuration file path, provider comparison count, custom DNS server, and certificate verification. It can be installed as a system service on macOS, Linux, and Windows, or run via Docker, supporting x86, ARM, and RISC-V architectures. Users complete configuration through a local web interface, which by default blocks public access. It supports configuring multiple DNS providers, multiple domains, and multi-level domains simultaneously, allows setting TTL, and displays the last 50 logs. Some DNS providers also support passing custom parameters for scenarios such as geo-based resolution or multiple IPs. Webhooks can be sent upon successful or failed domain updates, with notification content referencing IPv4/IPv6 addresses, update results, domain names, and timestamps. The documentation includes configuration examples for Server酱, Bark, DingTalk, Feishu, Telegram, PushPlus, Discord, and WeChat. Callback performs line-by-line callbacks based on configured domains, with variables including IP, domain, record type, and TTL, facilitating integration with more third-party DNS services. When building from source, use the provided Makefile by executing 'make build' to generate the executable, or 'make build_docker_image' to build the Docker image.