TimothyYe / godns

A dynamic DNS client tool that supports AliDNS, Cloudflare, Google Domains, DNSPod, HE.net & DuckDNS & DreamHost, etc, written in Go.
https://timothyye.github.io/godns/
Apache License 2.0
1.5k stars 221 forks source link

Support for bind and other dns direct records zones updates or using a single url\request. #11

Closed elico closed 5 years ago

elico commented 6 years ago

I have been working with bind and have a dynamic DNS system up and running. The most successful system I have built is based on http\https api and bind zone control with keys. Technically I would expect from a "general" service to use a username+password+domain+other specific options set as a simple GET or POST methods. And on the other hand there is the "Zone update" option which is a part of the DNS standard. What do you think about each of these general options to be added later on?

TimothyYe commented 6 years ago

@elico I'm not sure with your requirement. This project is just a Dynamic DNS client, not a DNS server or a service. To provide REST API or DNS zone update interface is not in the plan. But still thanks for your suggestion.

elico commented 6 years ago

@TimothyYe not to provide.... to use a generic REST API or DNS zone updates as a client software. A dynamic DNS client can interact with the service provider via a REST API or some other DNS zone update. Did I answer you right?(it's an idea not a requirement..)

TimothyYe commented 6 years ago

@elico GoDNS already use REST API to interact with DNS service providers. But for different service providers, their APIs are different from each other. I use an interface to abstract the DNS zone update logic, and use different handlers to interact DNS service by their REST APIs.

In the source code, you can see dnspod_handler.go for DNSPod, and he_handler.go for HE.net. In the future, GoDNS can extend more handlers to support different DNS services.

elico commented 6 years ago

@TimothyYe I got this and seen it in the code but was thinking about two specific generic REST API's. I will look at the code later on, will do my homework and we will continue this from there. I am packaging couple pieces of software for CentOS,RHEL,Debian,Ubuntu,OpenSUSE,SLES. I was thinking about packaging GoDNS for these, what do you think( a bit off topic but I will open another issue for that).