42 lines
1.5 KiB
Markdown
42 lines
1.5 KiB
Markdown
# ddnsclient
|
|
|
|
This application can be use to update dynamic hostnames. Currently it implements only the ddnss.de provider, but it
|
|
is extensible and more providers can be added easily.
|
|
|
|
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>",
|
|
"token": "<update-token>",
|
|
"hostname": "<dynamic-hostname>"
|
|
}
|
|
]
|
|
```
|
|
|
|
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 |
|
|
| ddnsclient.backoff-duration | DDNSCLIENT_BACKOFF_DURATION | e.g. "60s", "1m" | "60s" |
|
|
|
|
## 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.
|