Categorygithub.com/muka/ddns
module
1.0.0
Repository: https://github.com/muka/ddns.git
Documentation: pkg.go.dev

# 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

# Packages

Package api is a reverse proxy.
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author