No description
Find a file
2021-11-20 00:42:04 +01:00
.drone.yml drone-ci: also generate sha512 checksum for releases 2021-10-16 22:30:00 +02:00
.gitignore add gitignore 2021-10-16 22:16:34 +02:00
config.example.toml restructure config to allow user credentials to update multiple records 2021-09-10 11:11:56 +02:00
config.go config.go: iterate slices via indices to get pointers instead of copies 2021-09-11 22:14:39 +02:00
config_test.go add various tests for prepareConfig and update go dependencies 2021-09-11 22:14:39 +02:00
go.mod update go.mod and go.sum 2021-10-16 22:09:31 +02:00
go.sum update go.mod and go.sum 2021-10-16 22:09:31 +02:00
main.go rewrite most code; removes database to solely rely on config file 2021-07-13 13:36:37 +02:00
nameserver.go nameserver.go: add TODO for enhancing executeQuery 2021-10-16 22:07:40 +02:00
nameserver_test.go nameserver.go: refactor requiresRRUpdate and add basic tests 2021-10-16 22:06:51 +02:00
README.md add README.md 2021-11-20 00:42:04 +01:00
web.go nameserver.go: use custom resolver to avoid update delays caused by dns caching 2021-09-12 02:08:53 +02:00
web_test.go add various tests for web.go 2021-09-12 01:19:51 +02:00

dyndns-server

dyndns-server is a simple self-hosted dynamic DNS API service which can be used together with e.g. AVM FritzBox's DynDNS functionality or ddclient. It implements a subset of the API described by Google Domains and forwards DNS Updates to an authoritive DNS server as per RFC2136.

Requirements

  • go for building the dyndns-server binary
  • an authoritive DNS server responsible for the records to be dynamically updated which is capable of RFC2136 (e.g. knot, bind)
  • knsupdate needs to be installed for sending DNS update requests

Configuration

dyndns-server will look for a file named config.toml inside the current working directory unless a different config path has been supplied via -config <path to config file>. For details regarding the configuration file format, please consult config.example.toml.