This is a DDNS client with minimal requirements.
- posix-compatible shell (tested with bash on Fedora)
glibcordigfor DNS queriescurlfor API calls (raise an issue if you needwgetsupport)
- Download the ddns-client.sh script and make it executeable
- Set required parameters as ENV variable (see here)
- Run script
- Cloudflare: Update IPs ind Cloudflares DNS API
- Cloudflare (default): Using Cloudflares 1.1.1.1 DNS Server
- getent (default): Part of glibc
- dig
ℹ️ Note: All parameters must be set as ENV variables. There are no CLI-Arguments
General Parameters:
| Name | Description |
|---|---|
| DDNS_MODE | lazy-update: check first, update only when required update-now: Perform DDNS Update check: Check if DDNS update is required help (default): print help noop: Do nothing. Allows script includes |
| DDNS_CONF | Source/Read a file at startup and set ENV variables. NOTE: The config-file is executed as a shel script! |
| DDNS_LOG_LEVEL | 0...Only Fatal Errors 1...Info: Log important steps 2...Debug1: Log human-readable debug info 3...Debug2: Everything, including dumps |
| DDNS_IP_PROVIDER | Set Public-IP-Query-Service |
| DDNS_PROVIDER | DDNS_SERVICE |
| DDNS_HOSTNAMES | List of hostnames (no domain) to update |
| DDNS_DOMAIN | Your domain |
| DDNS_QUERY | Query spcific DNS entry (must be FQDN) to check if DDNS-update is required. |
Cloudflare (DDNS_PROVIDER=cloudflare):
| Name | Description |
|---|---|
| DDNS_CF_AUTHTYPE | Use token or key authentication" |
| DDNS_CF_TOKEN | Token. Permissions nedded: All Zones Read, DNS Edit" |
| DDNS_CF_APIUSER | Cloudflare Username for apikey authentication" |
| DDNS_CF_APIKEY | Cloudflare API Key for apikey authentication" |
We are using BASH Automated Testing System.
# Make executable
make
# Run Tests
make test