Wiki source for germaniumplan
======Germanium Project Plan======
Developement for Germanium will be done in sections. This way it will ensure multiple people can design the system and not step on toes. This wiki page will contain the plan for moving forward with the recode of Galimufred into Germanium.
There are two parts I envision for this system;
- frontend (lamp)
- backend (perl + ""MyDNS"")
Here we will discuss the parts and plan in detail.
=====Frontend=====
====DB Structure====
===DNS DB Structure===
The DB structure is very important. The DNS record keeping needs to match the schema ""MyDNS"" uses. By doing this it allows;
- ""MyDNS"" server to work natively with Germanium
- ""MyDNS"" Export will be able to export the DB zones to real zone files
{{color fg="lightgreen" bg="black" text="dns_soa"}}
----
This table is used to store DNS SOA information. The userid field links the domain to a user. The nsset field links the domain to its nsset in the dns_nsset table. The fields in this table that need to be preserved for ""MyDNS"" are; origin, ns, mbox, serial, refresh, retry, expire, minimum, ttl, active
{{table columns="6" cellpadding="1" cells="Field;Type;Null;Key;Default;Extra;id;int(10) unsigned;NO;PRI;NULL;auto_increment;userid;int(11) unsigned;NO;;NULL;;nsset;varchar(255);NO;;NULL;;expiredate;int(11) unsigned;NO;;NULL;;period;int(11) unsigned;NO;;NULL;;origin;varchar(255);NO;UNI;NULL;;ns;varchar(255);NO;;NULL;;mbox;varchar(255);NO;;1;;serial;int(11) unsigned;NO;;NULL;;refresh;int(11) unsigned;NO;;28800;;retry;int(11) unsigned;NO;;7200;;expire;int(11) unsigned;NO;;604800;;minimum;int(11) unsigned;NO;;86400;;ttl;int(11) unsigned;NO;;86400;;active;enum('N','Y');NO;MUL;NULL;"}}
{{color fg="lightgreen" bg="black" text="dns_rr"}}
----
{{table columns="6" cellpadding="1" cells="Field;Type;Null;Key;Default;Extra;id;int(11) unsigned;NO;PRI;NULL;auto_increment;zone;int(11) unsigned;NO;MUL;NULL;;type;varchar(64);YES;;enum('A','AAAA','ALIAS','CNAME','HINFO','MX','NAPTR','NS','PTR','RP','SRV','TXT');;data;varchar(255);NO;;NULL;;aux;int(11) unsigned;NO;;0;;ttl;int(11) unsigned;NO;;86400;;active;enum('N','Y');NO;;Y;;stamp;timestamp;NO;;CURRENT_TIMESTAMP;;serial;int(10) unsigned;YES;;NULL;"}}
{{color fg="lightgreen" bg="black" text="dns_nsset"}}
----
{{table columns="6" cellpadding="1" cells="Field;Type;Null;Key;Default;Extra;id;int(10) unsigned;NO;PRI;NULL;auto_increment;userid;int(11) unsigned;NO;;NULL;;nsset;varchar(255);NO;UNI;NULL;;ns1ip;varchar(255);NO;;NULL;;ns2ip;varchar(255);NO;;NULL;;ns3ip;varchar(255);NO;;NULL;;ns4ip;varchar(255);NO;;NULL;;cid;varchar(255);NO;;NULL;"}}
====UI====
----
CategoryArchitecture
Developement for Germanium will be done in sections. This way it will ensure multiple people can design the system and not step on toes. This wiki page will contain the plan for moving forward with the recode of Galimufred into Germanium.
There are two parts I envision for this system;
- frontend (lamp)
- backend (perl + ""MyDNS"")
Here we will discuss the parts and plan in detail.
=====Frontend=====
====DB Structure====
===DNS DB Structure===
The DB structure is very important. The DNS record keeping needs to match the schema ""MyDNS"" uses. By doing this it allows;
- ""MyDNS"" server to work natively with Germanium
- ""MyDNS"" Export will be able to export the DB zones to real zone files
{{color fg="lightgreen" bg="black" text="dns_soa"}}
----
This table is used to store DNS SOA information. The userid field links the domain to a user. The nsset field links the domain to its nsset in the dns_nsset table. The fields in this table that need to be preserved for ""MyDNS"" are; origin, ns, mbox, serial, refresh, retry, expire, minimum, ttl, active
{{table columns="6" cellpadding="1" cells="Field;Type;Null;Key;Default;Extra;id;int(10) unsigned;NO;PRI;NULL;auto_increment;userid;int(11) unsigned;NO;;NULL;;nsset;varchar(255);NO;;NULL;;expiredate;int(11) unsigned;NO;;NULL;;period;int(11) unsigned;NO;;NULL;;origin;varchar(255);NO;UNI;NULL;;ns;varchar(255);NO;;NULL;;mbox;varchar(255);NO;;1;;serial;int(11) unsigned;NO;;NULL;;refresh;int(11) unsigned;NO;;28800;;retry;int(11) unsigned;NO;;7200;;expire;int(11) unsigned;NO;;604800;;minimum;int(11) unsigned;NO;;86400;;ttl;int(11) unsigned;NO;;86400;;active;enum('N','Y');NO;MUL;NULL;"}}
{{color fg="lightgreen" bg="black" text="dns_rr"}}
----
{{table columns="6" cellpadding="1" cells="Field;Type;Null;Key;Default;Extra;id;int(11) unsigned;NO;PRI;NULL;auto_increment;zone;int(11) unsigned;NO;MUL;NULL;;type;varchar(64);YES;;enum('A','AAAA','ALIAS','CNAME','HINFO','MX','NAPTR','NS','PTR','RP','SRV','TXT');;data;varchar(255);NO;;NULL;;aux;int(11) unsigned;NO;;0;;ttl;int(11) unsigned;NO;;86400;;active;enum('N','Y');NO;;Y;;stamp;timestamp;NO;;CURRENT_TIMESTAMP;;serial;int(10) unsigned;YES;;NULL;"}}
{{color fg="lightgreen" bg="black" text="dns_nsset"}}
----
{{table columns="6" cellpadding="1" cells="Field;Type;Null;Key;Default;Extra;id;int(10) unsigned;NO;PRI;NULL;auto_increment;userid;int(11) unsigned;NO;;NULL;;nsset;varchar(255);NO;UNI;NULL;;ns1ip;varchar(255);NO;;NULL;;ns2ip;varchar(255);NO;;NULL;;ns3ip;varchar(255);NO;;NULL;;ns4ip;varchar(255);NO;;NULL;;cid;varchar(255);NO;;NULL;"}}
====UI====
----
CategoryArchitecture