No description
Find a file
Ryan Harg af5c3c9c09
Some checks failed
ci/woodpecker/push/build Pipeline failed
ci/woodpecker/tag/push-image Pipeline was successful
[maven-release-plugin] prepare release v1.0.6
2024-11-29 12:16:06 +01:00
.mvn/wrapper Initial 2024-11-26 14:54:30 +01:00
.woodpecker Fix tag name 2024-11-29 09:25:13 +01:00
src Change app logo 2024-11-29 12:15:49 +01:00
.dockerignore Fix dns resolver property 2024-11-29 09:53:09 +01:00
.gitignore Initial 2024-11-26 14:54:30 +01:00
mvnw Initial 2024-11-26 14:54:30 +01:00
mvnw.cmd Initial 2024-11-26 14:54:30 +01:00
pom.xml [maven-release-plugin] prepare release v1.0.6 2024-11-29 12:16:06 +01:00
README.md Config property for config file path 2024-11-29 10:13:49 +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>",
    "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.