DYNDNS NETCUP GO
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.
Table of Contents
Features
- 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
If you need additional features please open up an
Issue.
Installation
Docker
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.
Manual
- Download the lastest binary for your OS
cd
to the file you downloaded and unzip
- Put
dyndns-netcup-go
somewhere in your path
From source
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.
Usage
Prequisites
- 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.
Run dyndns-netcup-go
- Move/rename the example configuration
config/example.yml
to config.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.
Commandline flags
For a list of all available command line flags run dyndns-netcup-go -h
.
Cache
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
.
Contributing
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.