.mvn/wrapper | ||
.woodpecker | ||
src | ||
.dockerignore | ||
.gitignore | ||
mvnw | ||
mvnw.cmd | ||
pom.xml | ||
README.md |
ddnsclient
This application can be use to update dynamic hostnames. Currently it implements the following DynDNS providers:
- ddnss.de
- duckdns.org
This project uses Quarkus.
Configuration
ddnsclient requires a configuration in json format. It expects to find a file config.json
in its working directory.
The configuration can contain a list of update targets:
[
{
"provider": "<dyndns-provider>",
"username" : "<username>",
"password" : "<password>",
"token": "<update-token>",
"hostname": "<dynamic-hostname>"
}
]
Depending on your dyndns provider you can either use username
/password
or token
in a configuration.
ddnssclient can also be configured using some properties or environment variables
Property | Environment variable | Value | Default |
---|---|---|---|
ddnsclient.interval | DDNSCLIENT_INTERVAL | e.g. "3600s", "60m", "1h" | "5m" |
ddnsclient.ip-provider | DDNSCLIENT_IP_PROVIDER | an ip lookup provider (see below) | null (random) |
ddnsclient.dns.resolver | DDNSCLIENT_DNS_RESOLVER | e.g. "9.9.9.9", "1.1.1.1" | "9.9.9.9" |
ddnsclient.backoff-duration | DDNSCLIENT_BACKOFF_DURATION | e.g. "60s", "1m" | "300s" |
ddnssclient.config-file | DDNSCLIENT_CONFIG_FILE | e.g. "/path/to/your/config.json" | "config.json" |
IP lookup
In order to update a hostname, ddnsclient needs to know about the current public ip addresses of the machine it runs on. For this, it uses one of the following ip lookup providers:
- ifconfig.me
- ipify.org
- ident.me
- nnev.de
- icanhazip.com
If no specific provider has been configured (see above), each request chooses a random provider from this list.