marvinruder/hetzner-dyndns
A proxy server for updating DNS records on Hetzner DNS using the DynDNS protocol
4.1K
A proxy server for updating DNS records on Hetzner DNS using the DynDNS protocol.
Start the server by running the provided binary from the latest release or using the Docker image marvinruder/hetzner-dyndns
:
docker run -p 8245:8245 -e ZONE=example.com -e TOKEN=eWVzLCBpIGFtIGEgdG9rZW4= marvinruder/hetzner-dyndns:latest
A Docker Compose setup could look like this:
services:
hetzner-dyndns:
image: marvinruder/hetzner-dyndns:latest
ports:
- 8245:8245
environment:
ZONE: example.com
TOKEN: eWVzLCBpIGFtIGEgdG9rZW4=
The server uses plain HTTP on port 8245. It is recommended to use a reverse proxy like nginx to add HTTPS support. A different port can also be configured using the reverse proxy or Docker.
The following environment variables are supported, none of which are required:
Variable | Description |
---|---|
COLOR | Whether the log output should be colored. Set to true to enforce colored output, or false to enforce plain output. If not provided, the output will be colored if the output is a terminal. |
ZONE | The DNS zone to use. The zone must still be provided as the username in every client request, but only those with the configured zone will be forwarded to Hetzner DNS API. If not provided, requests with any zone will be accepted. |
TOKEN | The token to use for authentication against the Hetzner DNS API. The token must still be provided as the password in every client request, but only those with the configured token will be forwarded to Hetzner DNS API. If not provided, requests with any token will be accepted. |
To update a DNS record, configure your DynDNS client (e.g. a router) to use
example.com
) as the username,eWVzLCBpIGFtIGEgdG9rZW4=
) as the password,home.example.com
) as the hostname,dyndns.example.com
) as the update server address,8245
) as the update server port, andHTTP
as the update protocol (or HTTPS
if you use a reverse proxy with HTTPS support, which is recommended).Your client will take care of identifying changes in its public IP address and sending the appropriate requests to the server, keeping the DNS record up to date.
A detailed description of the DynDNS protocol is published by Oracle here.
GET
method is implemented.hostname
and myip
are not implemented.Contributions are welcome!
This software is provided under the conditions of the MIT License.
docker pull marvinruder/hetzner-dyndns