ddnsclient/README.md

43 lines
1.5 KiB
Markdown
Raw Normal View History

2024-11-26 14:54:30 +01:00
# 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
2024-11-27 10:39:33 +01:00
| 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 | DDNS_CLIENT_BACKOFF_DURATION | e.g. "60s", "1m" | "60s" |
2024-11-26 14:54:30 +01:00
## 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.