43 lines
1.4 KiB
Markdown
43 lines
1.4 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.dyndns.backup-duration | DDNSCLIENT_DYNDNS_BACKUP_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.
|