ddns

module
v1.0.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 11, 2017 License: MIT

README

Dynamic DNS Service

Simple dynamic DNS service for LAN use

Supported record

  • A / AAAA + (PTR)
  • CNAME
  • MX

Running with docker

docker run -v `pwd`/data:/data raptorbox/ddns-amd64 --debug

Setup

Ensure protoc is installed and the *.proto includes reachable. Eg.

wget https://github.com/google/protobuf/releases/download/v3.3.0/protoc-3.3.0-linux-x86_64.zip
mkdir tmp
cd tmp
unzip protoc-3.3.0-linux-x86_64.zip
sudo cp include/google/ /usr/local/include/ -r
sudo cp bin/protoc /usr/bin/

Get the following go dependencies


go get -u -f ./...

go get -u github.com/grpc-ecosystem/grpc-gateway/protoc-gen-grpc-gateway
go get -u github.com/grpc-ecosystem/grpc-gateway/protoc-gen-swagger
go get -u github.com/golang/protobuf/protoc-gen-go
go get -u github.com/go-swagger/go-swagger/cmd/swagger
go get -u github.com/go-openapi/runtime
go get -u golang.org/x/net/context
go get -u golang.org/x/net/context/ctxhttp

Running

make build
./build/ddns --debug

or go run cli/cli --debug

Rest API

Offers a gRPC (:50551) and HTTP/JSON (:5551) endpoint. See also generated ./api/api.swagger.json for usage reference.

Create a record
curl -X POST http://localhost:5551/v1/record \
  -H 'content-type: application/json' \
    -d '{
	"ip": "127.0.0.1",
	"domain": "foobar.local.lan",
	"type": "A",
	"expires": 1498454965
}'
Remove Record

curl -X DELETE http://localhost:5551/v1/record/foobar.local.lan/A

Test Record

nslookup foobar.local.lan localhost -port=10053

nsupdate support

Run go run main.go --tsig some_key:c29tZV9rZXk=

Using nsupdate

Update with nsupdate nsupdate.txt

Test records

nslookup test1.local.lan localhost -port=10053

Credits

Inspired by this post of Mateusz Kaczanowski

License

MIT License

Directories

Path Synopsis
Package api is a generated protocol buffer package.
Package api is a generated protocol buffer package.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL