48 lines
1.9 KiB
Markdown
48 lines
1.9 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>",
|
|
"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.
|