Simple dynamic DNS service for LAN use
- A / AAAA + (PTR)
- CNAME
- MX
docker run -v `pwd`/data:/data raptorbox/ddns-amd64 --debug
Run make setup
to install go dependencies and a local protoc setup
make build
./build/ddns --debug
or go run cli/cli --debug
Offers a gRPC (:50551
) and HTTP/JSON (:5551
) endpoint. See also generated ./api/api.swagger.json for usage reference.
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
}'
curl -X DELETE http://localhost:5551/v1/record/foobar.local.lan/A
nslookup foobar.local.lan localhost -port=10053
Run go run main.go --tsig some_key:c29tZV9rZXk=
Update with nsupdate nsupdate.txt
nslookup test1.local.lan localhost -port=10053
Inspired by this post of Mateusz Kaczanowski
MIT License