UberDNS Service where you manage your zone/records with Git
uberdns.eu
uberdns.eu
And I totally get that this was just for fun... but a variant project that still used git as the UI, but sat on top of a bigger-player DNS provider's API (Route 53, maybe?) could probably give you the best of both worlds: a weekend's worth of hacking, but still using infrastructure people felt like they could trust.
I would have the infrastructure (an anycasted network with 11 PoPs, etc) - but as you said, was only a weekend project and I wasn't about using this for the project. But hm, I could later just rewrite this away from a independend dns service to some parsing thingy to input zonefiles and use APIs of existing, reliable providers (most of the popular ones have nice APIs). It's something to think about, thanks.
Git-push integration with Dyn, Route53, Zerigo/8x8, Gandi, etc. would be an awesome feature.
Using CloudFormation to manage your Route 53 records will achieve most of the goals of this solution, although editing CloudFormation stack templates has a little more overhead than managing zone files.
I also have a more serious project regarding DNS, even with an anycasted network, dnssec, etc - but that is still in beta and I just wanted to do something for fun (Idea came while I was implementing a zonefile importer)
If you would let me know if there is anything what you don't like, then I'm happy to fix it or whatever :)
I would only consider this useful if you posted your code on github so that people can run it on their own DNS servers.
Could you share the technical details? What DNS server/software are you using? How do you handle input, errors (broken zones? do you perform sanity checks?), and reloads?
Do you enforce any limits? Support DNSSEC?
What's the web stack?
Webstack is Nginx + Ruby + Sinatra + MySQL (Datamapper, I know I should switch to Sequel) and a worker in Node.js on the slave nameserver for writing configs + reloading nsd
Servers are two small VPS, one on my own dedicated server in Frankfurt, Germany, the other in Canada from lfchosting. Nameserver is nsd, because it looked not to bad.
> How do you handle input, errors (broken zones? do you perform sanity checks?), and reloads?
I'm performing some checks, with nsd-checkconf, etc, but I'm sure there is something I could improve. It gets reloaded everytime someone enters a domain name or pushes changes to bitbucket/githup and they are posting to the specific URL.
> Do you enforce any limits? Support DNSSEC?
Nah, there are no limits, currently. DNSSEC: No, also not looking to implement it with this project, since besides that I'm working on a more serious one, even with anycast, etc and there is dnssec already possible.
I hope I was able to answer your questions as you expected it, please let me know if you want anything more detailed or have more questions for me :)