UNMAINTAINED, PLEASE SEE OTHER ALTERNATIVES BELOW
Rind
Rind is a DNS server with REST interface for records management, best use is for your local service discovery, DNS forwarding and caching.
Examples
See complete example here
Start DNS server:
import github.com/owlwalks/rind
rind.Start("rw-dirpath", []net.UDPAddr{{IP: net.IP{1, 1, 1, 1}, Port: 53}})
Manage records
// Add a SRV record
curl -X POST \
http://localhost/dns \
-H 'Content-Type: application/json' \
-d '{
"Host": "_sip._tcp.example.com.",
"TTL": 300,
"Type": "SRV",
"SRV": {
"Priority": 0,
"Weight": 5,
"Port": 5060,
"Target": "sipserver.example.com."
}
}'
// Update an A record from 124.108.115.87 to 127.0.0.1
curl -X PUT \
http://localhost/dns \
-H 'Content-Type: application/json' \
-d '{
"Host": "example.com.",
"TTL": 600,
"Type": "A",
"OldData": "124.108.115.87",
"Data": "127.0.0.1"
}'
// Delete a record
curl -X DELETE \
http://localhost/dns \
-H 'Content-Type: application/json' \
-d '{
"Host": "example.com.",
"Type": "A"
}'
Features:
- DNS server
- DNS forwarding
- DNS caching
- A record
- NS record
- CNAME record
- SOA record
- PTR record
- MX record
- AAAA record
- SRV record
- REST server
- Create records
- Read records
- Update records
- Delete records
Todo:
- Primary, secondary model