# 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": "", "username" : "", "password" : "", "token": "", "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.