ddnsclient/README.md

51 lines
1.9 KiB
Markdown
Raw Permalink Normal View History

2024-11-26 14:54:30 +01:00
# ddnsclient
2024-11-29 13:54:55 +01:00
This application can be use to update dynamic hostnames. Currently it implements the following DynDNS providers:
- ddnss.de
- duckdns.org
2024-11-26 14:54:30 +01:00
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>",
2024-11-27 14:39:41 +01:00
"username" : "<username>",
"password" : "<password>",
2024-11-26 14:54:30 +01:00
"token": "<update-token>",
"hostname": "<dynamic-hostname>"
}
]
```
2024-11-27 14:39:41 +01:00
Depending on your dyndns provider you can either use `username`/`password` or `token` in a configuration.
2024-11-26 14:54:30 +01:00
ddnssclient can also be configured using some properties or environment variables
2024-11-28 08:40:26 +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 (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" |
2024-11-29 10:12:48 +01:00
| ddnssclient.config-file | DDNSCLIENT_CONFIG_FILE | e.g. "/path/to/your/config.json" | "config.json" |
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.