Dynamic DNS (DDNS) allows you to automatically update a domain's record with the current IP address of your device. This is particularly useful for devices with dynamic IP addresses, such as those connected to a home router.
This application provides an unofficial DDNS solution for Cloudflare users.
- IPv4 and IPv6 support
- Daemon mode for continuous updates
- Support for both API Token and API KEY authentication methods
- Pretty logger for easy debugging and troubleshooting
- JSON logger for structured logging
- Sign up for a Cloudflare account if you don't already have one. Generate an API Token or retrieve your API Key from the "My Settings" page in your Cloudflare account.
- Download
cloudflare-ddns
from the releases page. - Run the
cloudflare-ddns
command with the appropriate options. For example:
# Set the API Token
export CF_TOKEN=<api_token>
# Set the domain(s) to be updated
export CF_DOMAINS=example.com,test.com
# Execute the program
cloudflare-ddns
# or set the options via arguments
cloudflare-ddns -t <api_token> -d example.com -d test.com
This will update the DNS records for example.com
and test.com
with your current IP address.
To continuously update your DNS records at a regular interval, you can use the -r
/ --refresh-every
option, or set the CF_REFRESH_EVERY
environment variable, to enable daemon mode. For example:
# Using environment variable
export CF_REFRESH_EVERY=1h
cloudflare-ddns
# Using arguments
cloudflare-ddns -t <api_token> -d example.com -r 1h
This will update the DNS records for example.com
every hour. You can specify the interval with a unit of s
for seconds, m
for minutes, h
for hours, or d
for days.
If you encounter any issues or have any questions, please open an issue on the repository. We will do our best to assist you.
If you encounter any issues while using this application, you can enable the --json-log
option, or set the CF_JSON_LOG
environment variable, to get structured logging output that may be helpful in debugging. You can also check the documentation or open an issue on the repository for additional help.