Dyndns client for the netcup DNS API written in go. Not related to netcup GmbH. It is heavily inspired by this project which might be also a good solution for your dynamic DNS needs.
- Multi domain support
- Subdomain support
- TTL update support
- Creation of a DNS record if it doesn't already exist
- Multi host support (nice when you need to update both
@
and*
) - IPv6 support
- Allow setting custom IP service
If you need additional features please open up an Issue.
docker run -d \
-v $(pwd)/config.yml:/config.yml \
-e INTERVAL=300 \
ghcr.io/hentra/dyndns-netcup-go
The environment variable INTERVAL
defines the interval of DNS updates in
seconds.
- Download the lastest binary for your OS
cd
to the file you downloaded and unzip- Put
dyndns-netcup-go
somewhere in your path
First, install Go as recommended. After that run following commands:
git clone https://github.com/Hentra/dyndns-netcup-go.git
cd dyndns-netcup-go
go install
This will create a binary named dyndns-netcup-go
and install it to your go
binary home. Make sure your GOPATH
environment variable is set.
Refer to Usage for further information.
- You need to have a netcup account and a domain, obviously.
- Then you need an apikey and apipassword. Here is a description (in German) on how you get those.
- Move/rename the example configuration
config/example.yml
toconfig.yml
and fill out all the fields. There are some comments in the file for further information. - Run
dyndns-netcup-go -v
in the same directory as your configuration file and it will configure your DNS Records. You can specify the location of the configuration file with the-c
or-config
flag if you don't want to run it in the same directory. To disable the output for information remove the-v
flag. You will still get the output from errors.
It might be necessary to run this program every few minutes. That interval depends on how you configured your TTL.
For a list of all available command line flags run dyndns-netcup-go -h
.
Without the cache the application would lookup its ip addresses and fetch the DNS records from netcup. After that it will compare the specified hosts in the DNS records with the current ip addresses and update if necessary.
As reported in this issue it would be also possible to store the ip addresses between two runs of the application and only fetch DNS records from netcup when they differ.
To enable the cache configure the two variables IP-CACHE
and
IP-CACHE-LOCATION
as according to the comments in example.yml
.
For any feature requests and or bugs open up an Issue. Feel free to also add a pull request and I will have a look on it.