Skip to content
/ rind Public
forked from owlwalks/rind

DNS server with REST interface for records management built on Golang

License

Notifications You must be signed in to change notification settings

max19931/rind

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

75 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

UNMAINTAINED, PLEASE SEE OTHER ALTERNATIVES BELOW

Rind

GoDoc Build Status

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

About

DNS server with REST interface for records management built on Golang

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Go 100.0%