All new Registrations are manually reviewed and approved, so a short delay after registration may occur before your account becomes active.
Opensource Bind9 GUI
This is a pet project I've been working on this week.
Having tried my hand at maintaining a set of nameservers on lowend boxes (64-128 MB boxes), by editing zonefiles by hand, I decided to simplify matters for myself, by creating a GUI, which can create, edit, add DNS records into zonefiles, start and stop bind9, import and export zone files, and synchronize the changes across all SSH servers.
I've also added some error checking logic for detecting errors while creating and editing records, and offering suggestions according to RFC 1912, RFC 1035.
It works on two layers. The GUI is written wholly in php, and does not use databases, hence freeing up some RAM (at the cost of disk IO?). Beneath the layer, communicating with bind is a perl script which has specific functions, and run with sudo rights. It can start, stop bind9, and copy final zone files generated by the GUI, to the bind files, run checkzone and report messages.
At the moment, I'm thinking of sharing it as an open source project, possibly Apache licensed.
Screenshots:
http://sdumps.net/bH
http://sdumps.net/by
http://sdumps.net/bj
http://sdumps.net/bg
http://sdumps.net/bf
http://sdumps.net/bQ
http://sdumps.net/bA
Does this kind of work have any commercial potential?
Thoughts on possible features good to have, and any useful input would be appreciated.
Comments
I have been looking for something like this for ages, but never found a nice / easy to use one
Would love to have this if you release it
It looks nice, but these days is there any reason to use BIND over powerDNS for those "in the know"?
Nice!
It would be great if there is an option that uses DBMS for zone data.
It looks very promising. Supporting nsd3 instead of/additionally to bind would be really nice. I prefer nsd3 on lowendboxes, because it really uses much much less memory than bind. Since nsd3 can read bind zone format, the support I'm talking about is just reload/restart of nsd3 if the zone file has been changed.
@joelgm im interested in test-driving and contributing to the PHP code
I was thinking of something like this but for maradns
I'll drop a line with the Git URL once I finalize everything
Hmm.. I've not used nsd3 before, and will have to try it out/read about it. If it's just a reload needed, it seems to be too easy to adapt the scripts, as only the perl script needs the necessary changes to detect nsd3.
Sure. I'm only a beginner in PHP, and wrote this to primarily as an exercise in learning the language too. Once I make the Git public, I'll let you know.
Are relational databases really required? So far, the scripts share data between functions via POST requests, and it works fine. I have intentionally held off using databases because of the trade off in memory while running an additional service.
very nice job. good wish.
Awesome!
^_ I rarely use that word. Good job.
Any idea or plans on supporting PowerDNS? We use a custom panel to work with PowerDNS on MySQL, but it is getting more expensive and difficult to maintain it.
If you do go commercial, please keep it open source. It helps build a lot of confidence with your customers when you are still starting up.
BIND is too old. Get rid of it.
I don't know how much work is required for nsd3 without knowing the code, but I will look into it as soon as you release it
>
I'm all for keeping it open source. However to discourage blatant ripoffs, I'd need an open source license before I release. Can anyone suggest licensing mechanisms for open source projects, which can prevent blatant copying and rebranding, and at the same time enable collaboration, and commits which can be approved by the original author?
Maybe Creative Commons license: http://creativecommons.org/choose/
Unfortunately, I read this:
@joelgm sorry, I know creative commons from http://www.jamendo.com (cc music portal) , tought that maybe would even work with software.
Maybe this table can help you http://en.wikipedia.org/wiki/Comparison_of_free_software_licenses
http://en.wikipedia.org/wiki/BSD_license
@joelgm GPL?
@joelgm, looks nice
Not based on his requirement, rebranding and re-distributing GPL software is completely allowable under the terms of the license - providing you keep original credits in place.
In reality, pretty much all opensource license allow this. If this is something you specifically don't want then an opensource license isn't for you. The flipside being opensource licensed projects are more likely to attract contribution where closed license projects wont.
Thanks for the insight.
Or use AGPL where all derative works need to be published as well under the same license.
Do you use the dns protocol itself (axfer, ixfer) to synchronize changes across hosts?
So far, it's been rsync.
Hello @joelgm, how is the work going in this? Did you decide already about publishing the code? Or setting up some demo page? I would be interested in trying it out.
Yes, work is proceeding fine indeed. The framework is already done. Right now, I'm doing the javascript based validation of input to make sure that user input is correct according to standards. Since it may be very buggy without proper validation, I'm holding off releasing a demo. Another problem is that the testing is being done on a 64 MB RAM LEB, which would probably not be able to cope up with public use.
I might provide a closed beta group, if people are interested. Or if a provider wants to provide a VPS for the demo, I might be able to provide a public beta (with an ad in the GUI).
I haven't coded an installation script yet.
Fantastic! Looks great, and very well executed. And BIND9 is just fine!
@joelgm Looks nice!
It does, doesn't it?
I could use a hand in coding a multi user mysql based secure authentication page, for this project. If anyone can contribute, do let me know. I'm thinking bcrypt.
Great work @joelgm, this makes me think.. would you be interested in working with me on creating a new hosting control panel?
Ah. I'm not a professional programmer.
I'm a programmer but i suck at any html/css web design
Then you should check out bootstrap. I use it extensively.