Note: This software is deprecated, and is not recommended for production use. Use at your own risk!
The design of Galiumfred
Galiumfred has been designed to create a web based solution for DNS registrations. It is based on the hard work from Timgws. This page will cover the design of the current galiumfred. Galiumfred is really a registry for alt-TLDs. It provides means to have remote registrar's so other can reigster DNS names in your registry. It is currently lacking a lot of functions that are needed and is bug prone. I am writing this information in as much detail as I can so;
- people understand the purpose of galiumfred
- people understand basically how it works
- people can start declaring what parts they'd like to fix
The back end
I will try and explain the parts of the back end galiumfred uses below.
DB
The back end is kept on a DB using MySQL. It uses a the table structure required for MyDNS, so the package can use a galiumfred DB natively. This is to prevent a re-invention of the wheel, as MyDNS is a good solution for the problem at hand. This also allows for the other great MyDNS tools to be used against galiumfred.
Below are the tables in the galiumfred DB.
- countries
- dns_nsset
- dns_rr
- dns_soa
- domain_dns_txt
- domain_words
- errorlog
- tlds
- users
Scripts
Below I detail the scripts involved in galiumfred.
createdb.pl
There is only one perl script that does the back end heavy-towing. This script is only used if bind9 is the DNS server in use. Its job is to go through the DB and generate the required zone files. It then transfers a bind9 include file to the slave server's. Bind9 is then reloaded, and all the required zones are transferred using bind9.
The script is written in perl and uses perl's DBD module for database interaction. YAML::Syck is used so the perl app can read in it's configuration file.
The script determines what zone to generate by comparing the SOA to the currently loaded version of the zone. If they do not match, or it does not exist yet, the script moves onto the zone generation part.
Before a generated zone file is pushed into the config file, it is first checked over using named-checkzone util. This ensures that zones made active are error free. The bind9 configuration is built every run, but only applied if an md5sum's off both generated files do not match. This indicates that a change has been produced. Once the bind9 configuration is built, it is checked over using named-checkconfig util. Again this makes sure that all config files can be loaded before a reload is issued.
This script is general run every 30 minutes.
The frontend
The front end is all LAMP powered. I do not have much to say about the front end as it was designed my Timgws. The best way to learn about the front end is to grab the code from the download section, and read it!
CategoryRegistry
CategoryDeprecated