diff --git a/interface/lib/classes/tform.inc.php b/interface/lib/classes/tform.inc.php
index dd489c365ee7cc6bc2a29bb67920ad9400b8fe68..9c9bafb316fc776cb6c221b8664171b7c1ac2481 100644
--- a/interface/lib/classes/tform.inc.php
+++ b/interface/lib/classes/tform.inc.php
@@ -805,13 +805,16 @@ class tform {
                                 }
                         }
                 }
+				
+				// Insert the server_id, if the record has a server_id
+				$server_id = ($record_old["server_id"] > 0)?$record_old["server_id"]:0;
 
                 if(count($diffrec) > 0) {
                         $diffstr = $app->db->quote(serialize($diffrec));
                         $username = $app->db->quote($_SESSION["s"]["user"]["username"]);
                         $dbidx = $this->formDef['db_table_idx'].":".$primary_id;
                         $action = ($action == 'INSERT')?'i':'u';
-                        $sql = "INSERT INTO sys_datalog (dbtable,dbidx,action,tstamp,user,data) VALUES ('".$this->formDef['db_table']."','$dbidx','$action','".time()."','$username','$diffstr')";
+                        $sql = "INSERT INTO sys_datalog (dbtable,dbidx,server_id,action,tstamp,user,data) VALUES ('".$this->formDef['db_table']."','$dbidx','$server_id','$action','".time()."','$username','$diffstr')";
                         $app->db->query($sql);
                 }
 
diff --git a/interface/lib/server_conf.master b/interface/lib/server_conf.master
new file mode 100644
index 0000000000000000000000000000000000000000..194147acb9ba94e620c1b9e8f3e923a5c7c322e7
--- /dev/null
+++ b/interface/lib/server_conf.master
@@ -0,0 +1,25 @@
+[global]
+webserver=apache
+mailserver=exim
+dnsserver=mydns
+
+[mail]
+module=exim_mysql
+maildir_path=/var/spool/mail/[domain]/[localpart]
+mailuser_uid=0
+mailuser_gid=0
+
+[web]
+module=generic
+
+[dns]
+module=generic
+
+[db]
+module=generic
+
+[file]
+module=generic
+
+[vserver]
+module=generic
\ No newline at end of file
diff --git a/interface/sql/ispconfig3db.sql b/interface/sql/ispconfig3db.sql
index 984a53c91e0b8a12a82b9afb57f0b7ec1b6c0c75..7d2fe6e521aecf2510be3a6960b236ce78378e12 100644
--- a/interface/sql/ispconfig3db.sql
+++ b/interface/sql/ispconfig3db.sql
@@ -1,511 +1,571 @@
-# phpMyAdmin MySQL-Dump
-# version 2.4.0-rc1
-# http://www.phpmyadmin.net/ (download page)
-#
-# Host: localhost
-# Erstellungszeit: 16. Februar 2006 um 22:34
-# Server Version: 4.0.23
-# PHP-Version: 5.0.3
-# Datenbank: `ispconfig3`
-# --------------------------------------------------------
-
-#
-# Tabellenstruktur für Tabelle `mail_blacklist`
-#
-
-DROP TABLE IF EXISTS mail_blacklist;
-CREATE TABLE mail_blacklist (
-  blacklist_id int(11) NOT NULL auto_increment,
-  sys_userid int(11) NOT NULL default '0',
-  sys_groupid int(11) NOT NULL default '0',
-  sys_perm_user varchar(5) NOT NULL default '',
-  sys_perm_group varchar(5) NOT NULL default '',
-  sys_perm_other varchar(5) NOT NULL default '',
-  server_id int(11) NOT NULL default '0',
-  address varchar(200) NOT NULL default '',
-  recipient varchar(200) NOT NULL default '',
-  active enum('0','1') NOT NULL default '1',
-  PRIMARY KEY  (blacklist_id),
-  KEY server_id (server_id,address,recipient)
-) TYPE=MyISAM;
-# --------------------------------------------------------
-
-#
-# Tabellenstruktur für Tabelle `mail_box`
-#
-
-DROP TABLE IF EXISTS mail_box;
-CREATE TABLE mail_box (
-  mailbox_id int(11) NOT NULL auto_increment,
-  sys_userid int(11) NOT NULL default '0',
-  sys_groupid int(11) NOT NULL default '0',
-  sys_perm_user varchar(5) NOT NULL default '',
-  sys_perm_group varchar(5) NOT NULL default '',
-  sys_perm_other varchar(5) NOT NULL default '',
-  server_id int(11) NOT NULL default '0',
-  email varchar(255) NOT NULL default '',
-  cryptpwd varchar(128) NOT NULL default '',
-  clearpwd varchar(128) NOT NULL default '',
-  name varchar(128) NOT NULL default '',
-  uid int(10) unsigned NOT NULL default '0',
-  gid int(10) unsigned NOT NULL default '0',
-  maildir varchar(255) NOT NULL default '',
-  quota varchar(255) NOT NULL default '',
-  autoresponder enum('0','1') NOT NULL default '0',
-  autoresponder_text tinytext NOT NULL,
-  active enum('0','1') NOT NULL default '1',
-  PRIMARY KEY  (mailbox_id),
-  KEY server_id (server_id,email)
-) TYPE=MyISAM;
-# --------------------------------------------------------
-
-#
-# Tabellenstruktur für Tabelle `mail_domain`
-#
-
-DROP TABLE IF EXISTS mail_domain;
-CREATE TABLE mail_domain (
-  domain_id int(11) NOT NULL auto_increment,
-  sys_userid int(11) NOT NULL default '0',
-  sys_groupid int(11) NOT NULL default '0',
-  sys_perm_user varchar(5) NOT NULL default '',
-  sys_perm_group varchar(5) NOT NULL default '',
-  sys_perm_other varchar(5) NOT NULL default '',
-  server_id int(11) NOT NULL default '0',
-  domain varchar(255) NOT NULL default '',
-  type enum('local','relay','alias') NOT NULL default 'local',
-  destination varchar(255) NOT NULL default '',
-  active tinyint(4) NOT NULL default '1',
-  PRIMARY KEY  (domain_id),
-  KEY server_id (server_id,domain,type)
-) TYPE=MyISAM;
-# --------------------------------------------------------
-
-#
-# Tabellenstruktur für Tabelle `mail_domain_catchall`
-#
-
-DROP TABLE IF EXISTS mail_domain_catchall;
-CREATE TABLE mail_domain_catchall (
-  domain_catchall_id int(11) NOT NULL auto_increment,
-  sys_userid int(11) NOT NULL default '0',
-  sys_groupid int(11) NOT NULL default '0',
-  sys_perm_user varchar(5) NOT NULL default '',
-  sys_perm_group varchar(5) NOT NULL default '',
-  sys_perm_other varchar(5) NOT NULL default '',
-  server_id int(11) NOT NULL default '0',
-  domain varchar(255) NOT NULL default '',
-  destination varchar(255) NOT NULL default '',
-  active enum('0','1') NOT NULL default '1',
-  PRIMARY KEY  (domain_catchall_id),
-  KEY server_id (server_id,domain)
-) TYPE=MyISAM;
-# --------------------------------------------------------
-
-#
-# Tabellenstruktur für Tabelle `mail_greylist`
-#
-
-DROP TABLE IF EXISTS mail_greylist;
-CREATE TABLE mail_greylist (
-  greylist_id int(11) NOT NULL auto_increment,
-  relay_ip varchar(64) default NULL,
-  from_domain varchar(255) default NULL,
-  block_expires datetime NOT NULL default '0000-00-00 00:00:00',
-  record_expires datetime NOT NULL default '0000-00-00 00:00:00',
-  origin_type enum('MANUAL','AUTO') NOT NULL default 'AUTO',
-  create_time datetime NOT NULL default '0000-00-00 00:00:00',
-  PRIMARY KEY  (greylist_id)
-) TYPE=MyISAM;
-# --------------------------------------------------------
-
-#
-# Tabellenstruktur für Tabelle `mail_mailman_domain`
-#
-
-DROP TABLE IF EXISTS mail_mailman_domain;
-CREATE TABLE mail_mailman_domain (
-  mailman_id int(11) NOT NULL auto_increment,
-  server_id int(11) NOT NULL default '0',
-  domain varchar(255) NOT NULL default '',
-  mm_home varchar(255) NOT NULL default '',
-  mm_wrap varchar(255) NOT NULL default '',
-  mm_user varchar(50) NOT NULL default '',
-  mm_group varchar(50) NOT NULL default '',
-  PRIMARY KEY  (mailman_id,server_id,domain)
-) TYPE=MyISAM;
-# --------------------------------------------------------
-
-#
-# Tabellenstruktur für Tabelle `mail_redirect`
-#
-
-DROP TABLE IF EXISTS mail_redirect;
-CREATE TABLE mail_redirect (
-  redirect_id int(11) NOT NULL auto_increment,
-  sys_userid int(11) NOT NULL default '0',
-  sys_groupid int(11) NOT NULL default '0',
-  sys_perm_user varchar(5) NOT NULL default '',
-  sys_perm_group varchar(5) NOT NULL default '',
-  sys_perm_other varchar(5) NOT NULL default '',
-  server_id int(11) NOT NULL default '0',
-  email varchar(255) NOT NULL default '',
-  destination varchar(255) NOT NULL default '',
-  type enum('alias','forward') NOT NULL default 'alias',
-  active enum('0','1') NOT NULL default '1',
-  PRIMARY KEY  (redirect_id),
-  KEY server_id (server_id,email)
-) TYPE=MyISAM;
-# --------------------------------------------------------
-
-#
-# Tabellenstruktur für Tabelle `mail_spamfilter`
-#
-
-DROP TABLE IF EXISTS mail_spamfilter;
-CREATE TABLE mail_spamfilter (
-  spamfilter_id int(11) NOT NULL auto_increment,
-  sys_userid int(11) NOT NULL default '0',
-  sys_groupid int(11) NOT NULL default '0',
-  sys_perm_user varchar(5) NOT NULL default '',
-  sys_perm_group varchar(5) NOT NULL default '',
-  sys_perm_other varchar(5) NOT NULL default '',
-  server_id int(11) NOT NULL default '0',
-  email varchar(255) NOT NULL default '',
-  spam_rewrite_score_int int(11) NOT NULL default '0',
-  spam_delete_score_int int(11) NOT NULL default '0',
-  spam_redirect_score_int int(11) NOT NULL default '0',
-  spam_rewrite_subject varchar(50) NOT NULL default '***SPAM***',
-  spam_redirect_maildir varchar(255) NOT NULL default '',
-  spam_redirect_maildir_purge int(11) NOT NULL default '7',
-  active enum('0','1') NOT NULL default '1',
-  PRIMARY KEY  (spamfilter_id),
-  KEY server_id (server_id,email)
-) TYPE=MyISAM;
-# --------------------------------------------------------
-
-#
-# Tabellenstruktur für Tabelle `mail_transport`
-#
-
-DROP TABLE IF EXISTS mail_transport;
-CREATE TABLE mail_transport (
-  whitelist_id int(11) NOT NULL auto_increment,
-  sys_userid int(11) NOT NULL default '0',
-  sys_groupid int(11) NOT NULL default '0',
-  sys_perm_user varchar(5) NOT NULL default '',
-  sys_perm_group varchar(5) NOT NULL default '',
-  sys_perm_other varchar(5) NOT NULL default '',
-  server_id int(11) NOT NULL default '0',
-  domain varchar(255) NOT NULL default '',
-  destination varchar(255) NOT NULL default '',
-  active enum('0','1') NOT NULL default '1',
-  PRIMARY KEY  (whitelist_id),
-  KEY server_id (server_id,destination),
-  KEY server_id_2 (server_id,domain)
-) TYPE=MyISAM;
-# --------------------------------------------------------
-
-#
-# Tabellenstruktur für Tabelle `mail_whitelist`
-#
-
-DROP TABLE IF EXISTS mail_whitelist;
-CREATE TABLE mail_whitelist (
-  whitelist_id int(11) NOT NULL auto_increment,
-  sys_userid int(11) NOT NULL default '0',
-  sys_groupid int(11) NOT NULL default '0',
-  sys_perm_user varchar(5) NOT NULL default '',
-  sys_perm_group varchar(5) NOT NULL default '',
-  sys_perm_other varchar(5) NOT NULL default '',
-  server_id int(11) NOT NULL default '0',
-  address varchar(255) NOT NULL default '',
-  recipient varchar(255) NOT NULL default '',
-  active enum('0','1') NOT NULL default '1',
-  PRIMARY KEY  (whitelist_id),
-  KEY server_id (server_id,address)
-) TYPE=MyISAM;
-# --------------------------------------------------------
-
---
--- Tabellenstruktur für Tabelle `reseller`
---
-
-DROP TABLE IF EXISTS `reseller`;
-CREATE TABLE `reseller` (
-  `reseller_id` bigint(20) NOT NULL auto_increment,
-  `sys_userid` int(11) NOT NULL default '0',
-  `sys_groupid` int(11) NOT NULL default '0',
-  `sys_perm_user` varchar(5) NOT NULL default '',
-  `sys_perm_group` varchar(5) NOT NULL default '',
-  `sys_perm_other` varchar(5) NOT NULL default '',
-  `company` varchar(255) NOT NULL default '',
-  `title` varchar(255) NOT NULL default '',
-  `firstname` varchar(255) NOT NULL default '',
-  `surname` varchar(255) NOT NULL default '',
-  `street` varchar(255) NOT NULL default '',
-  `zip` varchar(255) NOT NULL default '',
-  `city` varchar(255) NOT NULL default '',
-  `country` varchar(255) NOT NULL default '',
-  `telephone` varchar(255) NOT NULL default '',
-  `mobile` varchar(255) NOT NULL default '',
-  `fax` varchar(255) NOT NULL default '',
-  `email` varchar(255) NOT NULL default '',
-  `internet` varchar(255) NOT NULL default '',
-  `icq` varchar(255) NOT NULL default '',
-  `notes` text NOT NULL,
-  `limit_client` int(11) NOT NULL default '-1',
-  `limit_domain` int(11) NOT NULL default '-1',
-  `limit_subdomain` int(11) NOT NULL default '-1',
-  `limit_mailbox` int(11) NOT NULL default '-1',
-  `limit_mailalias` int(11) NOT NULL default '-1',
-  `limit_webquota` int(11) NOT NULL default '-1',
-  `limit_mailquota` int(11) NOT NULL default '-1',
-  `limit_database` int(11) NOT NULL default '-1',
-  `ip_address` text NOT NULL,
-  PRIMARY KEY  (`reseller_id`)
-) TYPE=MyISAM AUTO_INCREMENT=1 ;
-
---
--- Daten für Tabelle `reseller`
---
-
-
--- --------------------------------------------------------
-
---
--- Tabellenstruktur für Tabelle `server`
---
-
-DROP TABLE IF EXISTS server;
-CREATE TABLE server (
-  server_id bigint(20) NOT NULL auto_increment,
-  sys_userid int(11) NOT NULL default '0',
-  sys_groupid int(11) NOT NULL default '0',
-  sys_perm_user varchar(5) NOT NULL default '',
-  sys_perm_group varchar(5) NOT NULL default '',
-  sys_perm_other varchar(5) NOT NULL default '',
-  server_name varchar(255) NOT NULL default '',
-  mail_server int(11) NOT NULL default '0',
-  web_server int(11) NOT NULL default '0',
-  dns_server int(11) NOT NULL default '0',
-  file_server int(11) NOT NULL default '0',
-  mysql_server int(11) NOT NULL default '0',
-  postgresql_server int(11) NOT NULL default '0',
-  firebird_server int(11) NOT NULL default '0',
-  config text NOT NULL,
-  active int(11) NOT NULL default '1',
-  PRIMARY KEY  (server_id)
-) TYPE=MyISAM;
-
---
--- Daten für Tabelle `server`
---
-
-INSERT INTO `server` (`server_id`, `sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `server_name`, `mail_server`, `web_server`, `dns_server`, `file_server`, `mysql_server`, `postgresql_server`, `firebird_server`, `active`) VALUES (1, 1, 1, 'riud', 'riud', '', 'Server 1', 1, 0, 0, 0, 0, 0, 0, 1);
-
--- --------------------------------------------------------
-
---
--- Tabellenstruktur für Tabelle `sys_datalog`
---
-
-DROP TABLE IF EXISTS `sys_datalog`;
-CREATE TABLE `sys_datalog` (
-  `datalog_id` bigint(20) NOT NULL auto_increment,
-  `dbtable` varchar(255) NOT NULL default '',
-  `dbidx` varchar(255) NOT NULL default '',
-  `action` char(1) NOT NULL default '',
-  `tstamp` bigint(20) NOT NULL default '0',
-  `user` varchar(255) NOT NULL default '',
-  `data` text NOT NULL,
-  PRIMARY KEY  (`datalog_id`)
-) TYPE=MyISAM AUTO_INCREMENT=48 ;
-
---
--- Daten für Tabelle `sys_datalog`
---
-
--- --------------------------------------------------------
-
---
--- Tabellenstruktur für Tabelle `sys_dbsync`
---
-
-DROP TABLE IF EXISTS `sys_dbsync`;
-CREATE TABLE `sys_dbsync` (
-  `id` bigint(20) NOT NULL auto_increment,
-  `jobname` varchar(255) NOT NULL default '',
-  `sync_interval_minutes` int(11) NOT NULL default '0',
-  `db_type` varchar(255) NOT NULL default '',
-  `db_host` varchar(255) NOT NULL default '',
-  `db_name` varchar(255) NOT NULL default '',
-  `db_username` varchar(255) NOT NULL default '',
-  `db_password` varchar(255) NOT NULL default '',
-  `db_tables` varchar(255) NOT NULL default 'admin,forms',
-  `empty_datalog` int(11) NOT NULL default '0',
-  `sync_datalog_external` int(11) NOT NULL default '0',
-  `active` int(11) NOT NULL default '1',
-  `last_datalog_id` bigint(20) NOT NULL default '0',
-  PRIMARY KEY  (`id`),
-  KEY `last_datalog_id` (`last_datalog_id`)
-) TYPE=MyISAM AUTO_INCREMENT=1 ;
-
---
--- Daten für Tabelle `sys_dbsync`
---
-
-
--- --------------------------------------------------------
-
---
--- Tabellenstruktur für Tabelle `sys_filesync`
---
-
-DROP TABLE IF EXISTS `sys_filesync`;
-CREATE TABLE `sys_filesync` (
-  `id` bigint(20) NOT NULL auto_increment,
-  `jobname` varchar(255) NOT NULL default '',
-  `sync_interval_minutes` int(11) NOT NULL default '0',
-  `ftp_host` varchar(255) NOT NULL default '',
-  `ftp_path` varchar(255) NOT NULL default '',
-  `ftp_username` varchar(255) NOT NULL default '',
-  `ftp_password` varchar(255) NOT NULL default '',
-  `local_path` varchar(255) NOT NULL default '',
-  `wput_options` varchar(255) NOT NULL default '--timestamping --reupload --dont-continue',
-  `active` int(11) NOT NULL default '1',
-  PRIMARY KEY  (`id`)
-) TYPE=MyISAM AUTO_INCREMENT=1 ;
-
---
--- Daten für Tabelle `sys_filesync`
---
-
-
--- --------------------------------------------------------
-
---
--- Tabellenstruktur für Tabelle `sys_group`
---
-
-DROP TABLE IF EXISTS `sys_group`;
-CREATE TABLE `sys_group` (
-  `groupid` int(11) NOT NULL auto_increment,
-  `name` varchar(255) NOT NULL default '',
-  `description` text NOT NULL,
-  PRIMARY KEY  (`groupid`)
-) TYPE=MyISAM AUTO_INCREMENT=3 ;
-
---
--- Daten für Tabelle `sys_group`
---
-
-INSERT INTO `sys_group` (`groupid`, `name`, `description`) VALUES (1, 'admin', 'Administrators group');
-INSERT INTO `sys_group` (`groupid`, `name`, `description`) VALUES (2, 'user', 'Users Group');
-
--- --------------------------------------------------------
-
---
--- Tabellenstruktur für Tabelle `sys_user`
---
-
-DROP TABLE IF EXISTS `sys_user`;
-CREATE TABLE `sys_user` (
-  `userid` int(11) NOT NULL auto_increment,
-  `sys_userid` int(11) NOT NULL default '0',
-  `sys_groupid` int(11) NOT NULL default '0',
-  `sys_perm_user` varchar(5) NOT NULL default '',
-  `sys_perm_group` varchar(5) NOT NULL default '',
-  `sys_perm_other` varchar(5) NOT NULL default '',
-  `username` varchar(100) NOT NULL default '',
-  `passwort` varchar(100) NOT NULL default '',
-  `modules` varchar(255) NOT NULL default '',
-  `startmodule` varchar(255) NOT NULL default '',
-  `app_theme` varchar(100) NOT NULL default 'default',
-  `typ` varchar(20) NOT NULL default 'user',
-  `active` tinyint(4) NOT NULL default '1',
-  `name` varchar(100) NOT NULL default '',
-  `vorname` varchar(100) NOT NULL default '',
-  `unternehmen` varchar(100) NOT NULL default '',
-  `strasse` varchar(100) NOT NULL default '',
-  `ort` varchar(100) NOT NULL default '',
-  `plz` varchar(10) NOT NULL default '',
-  `land` varchar(50) NOT NULL default '',
-  `email` varchar(100) NOT NULL default '',
-  `url` varchar(255) NOT NULL default '',
-  `telefon` varchar(100) NOT NULL default '',
-  `fax` varchar(100) NOT NULL default '',
-  `language` varchar(10) NOT NULL default 'de',
-  `groups` varchar(255) NOT NULL default '',
-  `default_group` int(11) NOT NULL default '0',
-  PRIMARY KEY  (`userid`)
-) TYPE=MyISAM AUTO_INCREMENT=2 ;
-
---
--- Daten für Tabelle `sys_user`
---
-
-INSERT INTO `sys_user` (`userid`, `sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `username`, `passwort`, `modules`, `startmodule`, `app_theme`, `typ`, `active`, `name`, `vorname`, `unternehmen`, `strasse`, `ort`, `plz`, `land`, `email`, `url`, `telefon`, `fax`, `language`, `groups`, `default_group`) VALUES (1, 1, 0, 'riud', 'riud', '', 'admin', '21232f297a57a5a743894a0e4a801fc3', 'admin,designer,sites,dns', 'admin', 'default', 'admin', 1, '', 'Administrator', '', '', '', '', '', '', '', '', '', 'en', '1,2', 0);
-
---
--- Table structure for table `rr`
---
-
-DROP TABLE IF EXISTS `rr`;
-CREATE TABLE `rr` (
-  `id` int(10) unsigned NOT NULL auto_increment,
-  `zone` int(10) unsigned NOT NULL default '0',
-  `name` varchar(64) NOT NULL default '',
-  `type` enum('A','AAAA','ALIAS','CNAME','HINFO','MX','NS','PTR','RP','SRV','TXT') default NULL,
-  `data` varchar(128) NOT NULL default '',
-  `aux` int(10) unsigned NOT NULL default '0',
-  `ttl` int(10) unsigned NOT NULL default '86400',
-  `sys_userid` int(11) NOT NULL default '0',
-  `sys_groupid` int(11) NOT NULL default '0',
-  `sys_perm_user` varchar(5) NOT NULL default '',
-  `sys_perm_group` varchar(5) NOT NULL default '',
-  `sys_perm_other` varchar(5) NOT NULL default '',
-  PRIMARY KEY  (`id`),
-  UNIQUE KEY `rr` (`zone`,`name`,`type`,`data`)
-) TYPE=MyISAM;
-
---
--- Dumping data for table `rr`
---
-
-
--- --------------------------------------------------------
-
---
--- Table structure for table `soa`
---
-
-DROP TABLE IF EXISTS `soa`;
-CREATE TABLE `soa` (
-  `id` int(10) unsigned NOT NULL auto_increment,
-  `origin` varchar(255) NOT NULL default '',
-  `ns` varchar(255) NOT NULL default '',
-  `mbox` varchar(255) NOT NULL default '',
-  `serial` int(10) unsigned NOT NULL default '1',
-  `refresh` int(10) unsigned NOT NULL default '28800',
-  `retry` int(10) unsigned NOT NULL default '7200',
-  `expire` int(10) unsigned NOT NULL default '604800',
-  `minimum` int(10) unsigned NOT NULL default '86400',
-  `ttl` int(10) unsigned NOT NULL default '86400',
-  `active` enum('Y','N') NOT NULL default 'Y',
-  `xfer` varchar(255) NOT NULL default '',
-  `sys_userid` int(11) NOT NULL default '0',
-  `sys_groupid` int(11) NOT NULL default '0',
-  `sys_perm_user` varchar(5) NOT NULL default '',
-  `sys_perm_group` varchar(5) NOT NULL default '',
-  `sys_perm_other` varchar(5) NOT NULL default '',
-  PRIMARY KEY  (`id`),
-  UNIQUE KEY `origin` (`origin`),
-  KEY `active` (`active`)
-) TYPE=MyISAM;
-
---
--- Dumping data for table `soa`
---
-
--- --------------------------------------------------------
\ No newline at end of file
+# phpMyAdmin MySQL-Dump
+# version 2.4.0-rc1
+# http://www.phpmyadmin.net/ (download page)
+#
+# Host: localhost
+# Erstellungszeit: 24. Februar 2006 um 10:32
+# Server Version: 4.0.23
+# PHP-Version: 5.0.3
+# Datenbank: `ispconfig3`
+# --------------------------------------------------------
+
+#
+# Tabellenstruktur für Tabelle `mail_blacklist`
+#
+
+DROP TABLE IF EXISTS mail_blacklist;
+CREATE TABLE mail_blacklist (
+  blacklist_id int(11) NOT NULL auto_increment,
+  sys_userid int(11) NOT NULL default '0',
+  sys_groupid int(11) NOT NULL default '0',
+  sys_perm_user varchar(5) NOT NULL default '',
+  sys_perm_group varchar(5) NOT NULL default '',
+  sys_perm_other varchar(5) NOT NULL default '',
+  server_id int(11) NOT NULL default '0',
+  address varchar(200) NOT NULL default '',
+  recipient varchar(200) NOT NULL default '',
+  active enum('0','1') NOT NULL default '1',
+  PRIMARY KEY  (blacklist_id),
+  KEY server_id (server_id,address,recipient)
+) TYPE=MyISAM;
+
+#
+# Daten für Tabelle `mail_blacklist`
+#
+
+INSERT INTO mail_blacklist VALUES (2, 1, 0, 'riud', 'riud', '', 1, 'till@test.int', 'till@test.int', '0');
+# --------------------------------------------------------
+
+#
+# Tabellenstruktur für Tabelle `mail_box`
+#
+
+DROP TABLE IF EXISTS mail_box;
+CREATE TABLE mail_box (
+  mailbox_id int(11) NOT NULL auto_increment,
+  sys_userid int(11) NOT NULL default '0',
+  sys_groupid int(11) NOT NULL default '0',
+  sys_perm_user varchar(5) NOT NULL default '',
+  sys_perm_group varchar(5) NOT NULL default '',
+  sys_perm_other varchar(5) NOT NULL default '',
+  server_id int(11) NOT NULL default '0',
+  email varchar(255) NOT NULL default '',
+  cryptpwd varchar(128) NOT NULL default '',
+  clearpwd varchar(128) NOT NULL default '',
+  name varchar(128) NOT NULL default '',
+  uid int(10) unsigned NOT NULL default '0',
+  gid int(10) unsigned NOT NULL default '0',
+  maildir varchar(255) NOT NULL default '',
+  quota varchar(255) NOT NULL default '',
+  autoresponder enum('0','1') NOT NULL default '0',
+  autoresponder_text tinytext NOT NULL,
+  active enum('0','1') NOT NULL default '1',
+  PRIMARY KEY  (mailbox_id),
+  KEY server_id (server_id,email)
+) TYPE=MyISAM;
+
+#
+# Daten für Tabelle `mail_box`
+#
+
+INSERT INTO mail_box VALUES (1, 1, 0, 'riud', 'riud', '', 1, 'tt@test.int', '$1$tRlfKeOB$iHJgCn8mH8x/dh/XWy6v0/', '', '', 0, 0, '/var/spool/mail/till', '100', '0', '', '1');
+INSERT INTO mail_box VALUES (2, 1, 0, 'riud', 'riud', '', 1, 'moin@test.int', '$1$Ee/.7y3.$wZ4BLXs/Pa80ka9X4ikN8.', '', '', 0, 0, '/var/spool/mail/test.int/moin', '10', '0', '', '1');
+# --------------------------------------------------------
+
+#
+# Tabellenstruktur für Tabelle `mail_domain`
+#
+
+DROP TABLE IF EXISTS mail_domain;
+CREATE TABLE mail_domain (
+  domain_id int(11) NOT NULL auto_increment,
+  sys_userid int(11) NOT NULL default '0',
+  sys_groupid int(11) NOT NULL default '0',
+  sys_perm_user varchar(5) NOT NULL default '',
+  sys_perm_group varchar(5) NOT NULL default '',
+  sys_perm_other varchar(5) NOT NULL default '',
+  server_id int(11) NOT NULL default '0',
+  domain varchar(255) NOT NULL default '',
+  type enum('local','relay','alias') NOT NULL default 'local',
+  destination varchar(255) NOT NULL default '',
+  active tinyint(4) NOT NULL default '1',
+  PRIMARY KEY  (domain_id),
+  KEY server_id (server_id,domain,type)
+) TYPE=MyISAM;
+
+#
+# Daten für Tabelle `mail_domain`
+#
+
+INSERT INTO mail_domain VALUES (1, 1, 0, 'riud', 'riud', '', 1, 'test.int', 'local', '', 1);
+INSERT INTO mail_domain VALUES (2, 1, 0, 'riud', 'riud', '', 1, 'test2.int', 'alias', 'test.int', 1);
+# --------------------------------------------------------
+
+#
+# Tabellenstruktur für Tabelle `mail_domain_catchall`
+#
+
+DROP TABLE IF EXISTS mail_domain_catchall;
+CREATE TABLE mail_domain_catchall (
+  domain_catchall_id int(11) NOT NULL auto_increment,
+  sys_userid int(11) NOT NULL default '0',
+  sys_groupid int(11) NOT NULL default '0',
+  sys_perm_user varchar(5) NOT NULL default '',
+  sys_perm_group varchar(5) NOT NULL default '',
+  sys_perm_other varchar(5) NOT NULL default '',
+  server_id int(11) NOT NULL default '0',
+  domain varchar(255) NOT NULL default '',
+  destination varchar(255) NOT NULL default '',
+  active enum('0','1') NOT NULL default '1',
+  PRIMARY KEY  (domain_catchall_id),
+  KEY server_id (server_id,domain)
+) TYPE=MyISAM;
+
+#
+# Daten für Tabelle `mail_domain_catchall`
+#
+
+INSERT INTO mail_domain_catchall VALUES (1, 1, 1, 'riud', 'riud', '', 1, 'test.int', 'till@test.int', '1');
+# --------------------------------------------------------
+
+#
+# Tabellenstruktur für Tabelle `mail_greylist`
+#
+
+DROP TABLE IF EXISTS mail_greylist;
+CREATE TABLE mail_greylist (
+  greylist_id int(11) NOT NULL auto_increment,
+  relay_ip varchar(64) default NULL,
+  from_domain varchar(255) default NULL,
+  block_expires datetime NOT NULL default '0000-00-00 00:00:00',
+  record_expires datetime NOT NULL default '0000-00-00 00:00:00',
+  origin_type enum('MANUAL','AUTO') NOT NULL default 'AUTO',
+  create_time datetime NOT NULL default '0000-00-00 00:00:00',
+  PRIMARY KEY  (greylist_id)
+) TYPE=MyISAM;
+
+#
+# Daten für Tabelle `mail_greylist`
+#
+
+# --------------------------------------------------------
+
+#
+# Tabellenstruktur für Tabelle `mail_mailman_domain`
+#
+
+DROP TABLE IF EXISTS mail_mailman_domain;
+CREATE TABLE mail_mailman_domain (
+  mailman_id int(11) NOT NULL auto_increment,
+  server_id int(11) NOT NULL default '0',
+  domain varchar(255) NOT NULL default '',
+  mm_home varchar(255) NOT NULL default '',
+  mm_wrap varchar(255) NOT NULL default '',
+  mm_user varchar(50) NOT NULL default '',
+  mm_group varchar(50) NOT NULL default '',
+  PRIMARY KEY  (mailman_id,server_id,domain)
+) TYPE=MyISAM;
+
+#
+# Daten für Tabelle `mail_mailman_domain`
+#
+
+# --------------------------------------------------------
+
+#
+# Tabellenstruktur für Tabelle `mail_redirect`
+#
+
+DROP TABLE IF EXISTS mail_redirect;
+CREATE TABLE mail_redirect (
+  redirect_id int(11) NOT NULL auto_increment,
+  sys_userid int(11) NOT NULL default '0',
+  sys_groupid int(11) NOT NULL default '0',
+  sys_perm_user varchar(5) NOT NULL default '',
+  sys_perm_group varchar(5) NOT NULL default '',
+  sys_perm_other varchar(5) NOT NULL default '',
+  server_id int(11) NOT NULL default '0',
+  email varchar(255) NOT NULL default '',
+  destination varchar(255) NOT NULL default '',
+  type enum('alias','forward') NOT NULL default 'alias',
+  active enum('0','1') NOT NULL default '1',
+  PRIMARY KEY  (redirect_id),
+  KEY server_id (server_id,email)
+) TYPE=MyISAM;
+
+#
+# Daten für Tabelle `mail_redirect`
+#
+
+INSERT INTO mail_redirect VALUES (1, 1, 0, 'riud', 'riud', '', 1, 'tom@test.int', 'tt@test.int', 'alias', '1');
+# --------------------------------------------------------
+
+#
+# Tabellenstruktur für Tabelle `mail_spamfilter`
+#
+
+DROP TABLE IF EXISTS mail_spamfilter;
+CREATE TABLE mail_spamfilter (
+  spamfilter_id int(11) NOT NULL auto_increment,
+  sys_userid int(11) NOT NULL default '0',
+  sys_groupid int(11) NOT NULL default '0',
+  sys_perm_user varchar(5) NOT NULL default '',
+  sys_perm_group varchar(5) NOT NULL default '',
+  sys_perm_other varchar(5) NOT NULL default '',
+  server_id int(11) NOT NULL default '0',
+  email varchar(255) NOT NULL default '',
+  spam_rewrite_score_int int(11) NOT NULL default '0',
+  spam_delete_score_int int(11) NOT NULL default '0',
+  spam_redirect_score_int int(11) NOT NULL default '0',
+  spam_rewrite_subject varchar(50) NOT NULL default '***SPAM***',
+  spam_redirect_maildir varchar(255) NOT NULL default '',
+  spam_redirect_maildir_purge int(11) NOT NULL default '7',
+  active enum('0','1') NOT NULL default '1',
+  PRIMARY KEY  (spamfilter_id),
+  KEY server_id (server_id,email)
+) TYPE=MyISAM;
+
+#
+# Daten für Tabelle `mail_spamfilter`
+#
+
+INSERT INTO mail_spamfilter VALUES (1, 0, 0, '', '', '', 1, 'till@test.int', 100, 100, 1, '***SPAM mag ich nicht***', '/var/spool/mail/spam', 0, '1');
+INSERT INTO mail_spamfilter VALUES (2, 1, 0, 'riud', 'riud', '', 1, 'till2@test.int', 500, 1500, 700, '***SPAM***', '/var/spool/mail/till', 14, '1');
+# --------------------------------------------------------
+
+#
+# Tabellenstruktur für Tabelle `mail_transport`
+#
+
+DROP TABLE IF EXISTS mail_transport;
+CREATE TABLE mail_transport (
+  whitelist_id int(11) NOT NULL auto_increment,
+  sys_userid int(11) NOT NULL default '0',
+  sys_groupid int(11) NOT NULL default '0',
+  sys_perm_user varchar(5) NOT NULL default '',
+  sys_perm_group varchar(5) NOT NULL default '',
+  sys_perm_other varchar(5) NOT NULL default '',
+  server_id int(11) NOT NULL default '0',
+  domain varchar(255) NOT NULL default '',
+  destination varchar(255) NOT NULL default '',
+  active enum('0','1') NOT NULL default '1',
+  PRIMARY KEY  (whitelist_id),
+  KEY server_id (server_id,destination),
+  KEY server_id_2 (server_id,domain)
+) TYPE=MyISAM;
+
+#
+# Daten für Tabelle `mail_transport`
+#
+
+# --------------------------------------------------------
+
+#
+# Tabellenstruktur für Tabelle `mail_whitelist`
+#
+
+DROP TABLE IF EXISTS mail_whitelist;
+CREATE TABLE mail_whitelist (
+  whitelist_id int(11) NOT NULL auto_increment,
+  sys_userid int(11) NOT NULL default '0',
+  sys_groupid int(11) NOT NULL default '0',
+  sys_perm_user varchar(5) NOT NULL default '',
+  sys_perm_group varchar(5) NOT NULL default '',
+  sys_perm_other varchar(5) NOT NULL default '',
+  server_id int(11) NOT NULL default '0',
+  address varchar(255) NOT NULL default '',
+  recipient varchar(255) NOT NULL default '',
+  active enum('0','1') NOT NULL default '1',
+  PRIMARY KEY  (whitelist_id),
+  KEY server_id (server_id,address)
+) TYPE=MyISAM;
+
+#
+# Daten für Tabelle `mail_whitelist`
+#
+
+# --------------------------------------------------------
+
+#
+# Tabellenstruktur für Tabelle `reseller`
+#
+
+DROP TABLE IF EXISTS reseller;
+CREATE TABLE reseller (
+  reseller_id bigint(20) NOT NULL auto_increment,
+  sys_userid int(11) NOT NULL default '0',
+  sys_groupid int(11) NOT NULL default '0',
+  sys_perm_user varchar(5) NOT NULL default '',
+  sys_perm_group varchar(5) NOT NULL default '',
+  sys_perm_other varchar(5) NOT NULL default '',
+  company varchar(255) NOT NULL default '',
+  title varchar(255) NOT NULL default '',
+  firstname varchar(255) NOT NULL default '',
+  surname varchar(255) NOT NULL default '',
+  street varchar(255) NOT NULL default '',
+  zip varchar(255) NOT NULL default '',
+  city varchar(255) NOT NULL default '',
+  country varchar(255) NOT NULL default '',
+  telephone varchar(255) NOT NULL default '',
+  mobile varchar(255) NOT NULL default '',
+  fax varchar(255) NOT NULL default '',
+  email varchar(255) NOT NULL default '',
+  internet varchar(255) NOT NULL default '',
+  icq varchar(255) NOT NULL default '',
+  notes text NOT NULL,
+  limit_client int(11) NOT NULL default '-1',
+  limit_domain int(11) NOT NULL default '-1',
+  limit_subdomain int(11) NOT NULL default '-1',
+  limit_mailbox int(11) NOT NULL default '-1',
+  limit_mailalias int(11) NOT NULL default '-1',
+  limit_webquota int(11) NOT NULL default '-1',
+  limit_mailquota int(11) NOT NULL default '-1',
+  limit_database int(11) NOT NULL default '-1',
+  ip_address text NOT NULL,
+  PRIMARY KEY  (reseller_id)
+) TYPE=MyISAM;
+
+#
+# Daten für Tabelle `reseller`
+#
+
+# --------------------------------------------------------
+
+#
+# Tabellenstruktur für Tabelle `rr`
+#
+
+DROP TABLE IF EXISTS rr;
+CREATE TABLE rr (
+  id int(10) unsigned NOT NULL auto_increment,
+  zone int(10) unsigned NOT NULL default '0',
+  name varchar(64) NOT NULL default '',
+  type enum('A','AAAA','ALIAS','CNAME','HINFO','MX','NS','PTR','RP','SRV','TXT') default NULL,
+  data varchar(128) NOT NULL default '',
+  aux int(10) unsigned NOT NULL default '0',
+  ttl int(10) unsigned NOT NULL default '86400',
+  sys_userid int(11) NOT NULL default '0',
+  sys_groupid int(11) NOT NULL default '0',
+  sys_perm_user varchar(5) NOT NULL default '',
+  sys_perm_group varchar(5) NOT NULL default '',
+  sys_perm_other varchar(5) NOT NULL default '',
+  PRIMARY KEY  (id),
+  UNIQUE KEY rr (zone,name,type,data)
+) TYPE=MyISAM;
+
+#
+# Daten für Tabelle `rr`
+#
+
+INSERT INTO rr VALUES (1, 2, '1', 'PTR', 'www.ensign.de.', 0, 86400, 1, 0, 'riud', 'riud', '');
+INSERT INTO rr VALUES (2, 1, 'www', 'A', '192.168.0.1', 0, 86400, 1, 0, 'riud', 'riud', '');
+INSERT INTO rr VALUES (3, 1, 'ensign.de', 'A', '192.168.0.1', 0, 86400, 1, 0, 'riud', 'riud', '');
+# --------------------------------------------------------
+
+#
+# Tabellenstruktur für Tabelle `server`
+#
+
+DROP TABLE IF EXISTS server;
+CREATE TABLE server (
+  server_id bigint(20) NOT NULL auto_increment,
+  sys_userid int(11) NOT NULL default '0',
+  sys_groupid int(11) NOT NULL default '0',
+  sys_perm_user varchar(5) NOT NULL default '',
+  sys_perm_group varchar(5) NOT NULL default '',
+  sys_perm_other varchar(5) NOT NULL default '',
+  server_name varchar(255) NOT NULL default '',
+  mail_server tinyint(4) NOT NULL default '0',
+  web_server tinyint(4) NOT NULL default '0',
+  dns_server tinyint(4) NOT NULL default '0',
+  file_server tinyint(4) NOT NULL default '0',
+  db_server tinyint(4) NOT NULL default '0',
+  vserver_server tinyint(4) NOT NULL default '0',
+  config text NOT NULL,
+  update tinyint(4) NOT NULL default '0',
+  active tinyint(4) NOT NULL default '1',
+  PRIMARY KEY  (server_id)
+) TYPE=MyISAM;
+
+#
+# Daten für Tabelle `server`
+#
+
+INSERT INTO server VALUES (1, 1, 1, 'riud', 'riud', '', 'Server 1', 1, 0, 0, 0, 0, 0, '[global]\r\nwebserver=apache\r\nmailserver=exim\r\ndnsserver=mydns\r\n\r\n[mail]\r\nmodule=exim_mysql\r\nmaildir_path=/var/spool/mail/[domain]/[localpart]\r\nmailuser_uid=0\r\nmailuser_gid=0', 0, 1);
+# --------------------------------------------------------
+
+#
+# Tabellenstruktur für Tabelle `soa`
+#
+
+DROP TABLE IF EXISTS soa;
+CREATE TABLE soa (
+  id int(10) unsigned NOT NULL auto_increment,
+  origin varchar(255) NOT NULL default '',
+  ns varchar(255) NOT NULL default '',
+  mbox varchar(255) NOT NULL default '',
+  serial int(10) unsigned NOT NULL default '1',
+  refresh int(10) unsigned NOT NULL default '28800',
+  retry int(10) unsigned NOT NULL default '7200',
+  expire int(10) unsigned NOT NULL default '604800',
+  minimum int(10) unsigned NOT NULL default '86400',
+  ttl int(10) unsigned NOT NULL default '86400',
+  active enum('Y','N') NOT NULL default 'Y',
+  xfer varchar(255) NOT NULL default '',
+  sys_userid int(11) NOT NULL default '0',
+  sys_groupid int(11) NOT NULL default '0',
+  sys_perm_user varchar(5) NOT NULL default '',
+  sys_perm_group varchar(5) NOT NULL default '',
+  sys_perm_other varchar(5) NOT NULL default '',
+  PRIMARY KEY  (id),
+  UNIQUE KEY origin (origin),
+  KEY active (active)
+) TYPE=MyISAM;
+
+#
+# Daten für Tabelle `soa`
+#
+
+INSERT INTO soa VALUES (1, 'ensign.de.', 'ns1.example.com.', 'admin.example.com.', 2006012103, 28800, 7200, 604800, 86400, 86400, 'Y', '', 1, 0, 'riud', 'riud', '');
+INSERT INTO soa VALUES (2, '0.168.192.in-addr.arpa.', 'ns1.example.com.', 'admin.example.com.', 2006012101, 28800, 7200, 604800, 86400, 86400, 'Y', '', 1, 0, 'riud', 'riud', '');
+# --------------------------------------------------------
+
+#
+# Tabellenstruktur für Tabelle `sys_datalog`
+#
+
+DROP TABLE IF EXISTS sys_datalog;
+CREATE TABLE sys_datalog (
+  datalog_id bigint(20) NOT NULL auto_increment,
+  dbtable varchar(255) NOT NULL default '',
+  dbidx varchar(255) NOT NULL default '',
+  server_id int(11) NOT NULL default '0',
+  action char(1) NOT NULL default '',
+  tstamp bigint(20) NOT NULL default '0',
+  user varchar(255) NOT NULL default '',
+  data text NOT NULL,
+  PRIMARY KEY  (datalog_id)
+) TYPE=MyISAM;
+
+#
+# Daten für Tabelle `sys_datalog`
+#
+
+# --------------------------------------------------------
+
+#
+# Tabellenstruktur für Tabelle `sys_dbsync`
+#
+
+DROP TABLE IF EXISTS sys_dbsync;
+CREATE TABLE sys_dbsync (
+  id bigint(20) NOT NULL auto_increment,
+  jobname varchar(255) NOT NULL default '',
+  sync_interval_minutes int(11) NOT NULL default '0',
+  db_type varchar(255) NOT NULL default '',
+  db_host varchar(255) NOT NULL default '',
+  db_name varchar(255) NOT NULL default '',
+  db_username varchar(255) NOT NULL default '',
+  db_password varchar(255) NOT NULL default '',
+  db_tables varchar(255) NOT NULL default 'admin,forms',
+  empty_datalog int(11) NOT NULL default '0',
+  sync_datalog_external int(11) NOT NULL default '0',
+  active int(11) NOT NULL default '1',
+  last_datalog_id bigint(20) NOT NULL default '0',
+  PRIMARY KEY  (id),
+  KEY last_datalog_id (last_datalog_id)
+) TYPE=MyISAM;
+
+#
+# Daten für Tabelle `sys_dbsync`
+#
+
+# --------------------------------------------------------
+
+#
+# Tabellenstruktur für Tabelle `sys_filesync`
+#
+
+DROP TABLE IF EXISTS sys_filesync;
+CREATE TABLE sys_filesync (
+  id bigint(20) NOT NULL auto_increment,
+  jobname varchar(255) NOT NULL default '',
+  sync_interval_minutes int(11) NOT NULL default '0',
+  ftp_host varchar(255) NOT NULL default '',
+  ftp_path varchar(255) NOT NULL default '',
+  ftp_username varchar(255) NOT NULL default '',
+  ftp_password varchar(255) NOT NULL default '',
+  local_path varchar(255) NOT NULL default '',
+  wput_options varchar(255) NOT NULL default '--timestamping --reupload --dont-continue',
+  active int(11) NOT NULL default '1',
+  PRIMARY KEY  (id)
+) TYPE=MyISAM;
+
+#
+# Daten für Tabelle `sys_filesync`
+#
+
+# --------------------------------------------------------
+
+#
+# Tabellenstruktur für Tabelle `sys_group`
+#
+
+DROP TABLE IF EXISTS sys_group;
+CREATE TABLE sys_group (
+  groupid int(11) NOT NULL auto_increment,
+  name varchar(255) NOT NULL default '',
+  description text NOT NULL,
+  PRIMARY KEY  (groupid)
+) TYPE=MyISAM;
+
+#
+# Daten für Tabelle `sys_group`
+#
+
+INSERT INTO sys_group VALUES (1, 'admin', 'Administrators group');
+INSERT INTO sys_group VALUES (2, 'user', 'Users Group');
+# --------------------------------------------------------
+
+#
+# Tabellenstruktur für Tabelle `sys_user`
+#
+
+DROP TABLE IF EXISTS sys_user;
+CREATE TABLE sys_user (
+  userid int(11) NOT NULL auto_increment,
+  sys_userid int(11) NOT NULL default '0',
+  sys_groupid int(11) NOT NULL default '0',
+  sys_perm_user varchar(5) NOT NULL default '',
+  sys_perm_group varchar(5) NOT NULL default '',
+  sys_perm_other varchar(5) NOT NULL default '',
+  username varchar(100) NOT NULL default '',
+  passwort varchar(100) NOT NULL default '',
+  modules varchar(255) NOT NULL default '',
+  startmodule varchar(255) NOT NULL default '',
+  app_theme varchar(100) NOT NULL default 'default',
+  typ varchar(20) NOT NULL default 'user',
+  active tinyint(4) NOT NULL default '1',
+  name varchar(100) NOT NULL default '',
+  vorname varchar(100) NOT NULL default '',
+  unternehmen varchar(100) NOT NULL default '',
+  strasse varchar(100) NOT NULL default '',
+  ort varchar(100) NOT NULL default '',
+  plz varchar(10) NOT NULL default '',
+  land varchar(50) NOT NULL default '',
+  email varchar(100) NOT NULL default '',
+  url varchar(255) NOT NULL default '',
+  telefon varchar(100) NOT NULL default '',
+  fax varchar(100) NOT NULL default '',
+  language varchar(10) NOT NULL default 'de',
+  groups varchar(255) NOT NULL default '',
+  default_group int(11) NOT NULL default '0',
+  PRIMARY KEY  (userid)
+) TYPE=MyISAM;
+
+#
+# Daten für Tabelle `sys_user`
+#
+
+INSERT INTO sys_user VALUES (1, 1, 0, 'riud', 'riud', '', 'admin', '21232f297a57a5a743894a0e4a801fc3', 'admin,designer,mail,dns', 'admin', 'default', 'admin', 1, '', 'Administrator', '', '', '', '', '', '', '', '', '', 'en', '1,2', 0);
+
diff --git a/interface/web/admin/form/server.tform.php b/interface/web/admin/form/server.tform.php
index 95759ae0ac0e5278bed867c85854a4dabb849b9d..baca47ec311faba47c3eb57ab546fbf9cf060d91 100644
--- a/interface/web/admin/form/server.tform.php
+++ b/interface/web/admin/form/server.tform.php
@@ -1,124 +1,124 @@
-<?php
-
-/*
-	Form Definition
-
-	Tabledefinition
-
-	Datatypes:
-	- INTEGER (Forces the input to Int)
-	- DOUBLE
-	- CURRENCY (Formats the values to currency notation)
-	- VARCHAR (no format check, maxlength: 255)
-	- TEXT (no format check)
-	- DATE (Dateformat, automatic conversion to timestamps)
-
-	Formtype:
-	- TEXT (Textfield)
-	- TEXTAREA (Textarea)
-	- PASSWORD (Password textfield, input is not shown when edited)
-	- SELECT (Select option field)
-	- RADIO
-	- CHECKBOX
-	- CHECKBOXARRAY
-	- FILE
-
-	VALUE:
-	- Wert oder Array
-
-	Hint:
-	The ID field of the database table is not part of the datafield definition.
-	The ID field must be always auto incement (int or bigint).
-
-
-*/
-
-$form["title"] 			= "Server";
-$form["description"] 	= "";
-$form["name"] 			= "server";
-$form["action"]			= "server_edit.php";
-$form["db_table"]		= "server";
-$form["db_table_idx"]	= "server_id";
-$form["db_history"]		= "no";
-$form["tab_default"]	= "services";
-$form["list_default"]	= "server_list.php";
-$form["auth"]			= 'yes';
-
-$form["auth_preset"]["userid"]  = 0; // 0 = id of the user, > 0 id must match with id of current user
-$form["auth_preset"]["groupid"] = 1; // 0 = default groupid of the user, > 0 id must match with groupid of current user
-$form["auth_preset"]["perm_user"] = 'riud'; //r = read, i = insert, u = update, d = delete
-$form["auth_preset"]["perm_group"] = 'riud'; //r = read, i = insert, u = update, d = delete
-$form["auth_preset"]["perm_other"] = ''; //r = read, i = insert, u = update, d = delete
-
-$form["tabs"]['services'] = array (
-	'title' 	=> "Services",
-	'width' 	=> 100,
-	'template' 	=> "templates/server_edit_services.htm",
-	'fields' 	=> array (
-	##################################
-	# Begin Datatable fields
-	##################################
-		'server_name' => array (
-			'datatype'	=> 'VARCHAR',
-			'formtype'	=> 'TEXT',
-			'default'	=> '',
-			'value'		=> '',
-			'width'		=> '30',
-			'maxlength'	=> '255'
-		),
-		'mail_server' => array (
-			'datatype'	=> 'INTEGER',
-			'formtype'	=> 'CHECKBOX',
-			'default'	=> '0',
-			'value'		=> '1'
-		),
-		'web_server' => array (
-			'datatype'	=> 'INTEGER',
-			'formtype'	=> 'CHECKBOX',
-			'default'	=> '0',
-			'value'		=> '1'
-		),
-		'dns_server' => array (
-			'datatype'	=> 'INTEGER',
-			'formtype'	=> 'CHECKBOX',
-			'default'	=> '0',
-			'value'		=> '1'
-		),
-		'file_server' => array (
-			'datatype'	=> 'INTEGER',
-			'formtype'	=> 'CHECKBOX',
-			'default'	=> '0',
-			'value'		=> '1'
-		),
-		'mysql_server' => array (
-			'datatype'	=> 'INTEGER',
-			'formtype'	=> 'CHECKBOX',
-			'default'	=> '0',
-			'value'		=> '1'
-		),
-		'postgresql_server' => array (
-			'datatype'	=> 'INTEGER',
-			'formtype'	=> 'CHECKBOX',
-			'default'	=> '0',
-			'value'		=> '1'
-		),
-		'firebird_server' => array (
-			'datatype'	=> 'INTEGER',
-			'formtype'	=> 'CHECKBOX',
-			'default'	=> '0',
-			'value'		=> '1'
-		),
-		'active' => array (
-			'datatype'	=> 'INTEGER',
-			'formtype'	=> 'SELECT',
-			'default'	=> '1',
-			'value'		=> array(0 => 'No', 1 => 'Yes')
-		),
-	##################################
-	# ENDE Datatable fields
-	##################################
-	)
-);
-
-
+<?php
+
+/*
+	Form Definition
+
+	Tabledefinition
+
+	Datatypes:
+	- INTEGER (Forces the input to Int)
+	- DOUBLE
+	- CURRENCY (Formats the values to currency notation)
+	- VARCHAR (no format check, maxlength: 255)
+	- TEXT (no format check)
+	- DATE (Dateformat, automatic conversion to timestamps)
+
+	Formtype:
+	- TEXT (Textfield)
+	- TEXTAREA (Textarea)
+	- PASSWORD (Password textfield, input is not shown when edited)
+	- SELECT (Select option field)
+	- RADIO
+	- CHECKBOX
+	- CHECKBOXARRAY
+	- FILE
+
+	VALUE:
+	- Wert oder Array
+
+	Hint:
+	The ID field of the database table is not part of the datafield definition.
+	The ID field must be always auto incement (int or bigint).
+
+
+*/
+
+$form["title"] 			= "Server";
+$form["description"] 	= "";
+$form["name"] 			= "server";
+$form["action"]			= "server_edit.php";
+$form["db_table"]		= "server";
+$form["db_table_idx"]	= "server_id";
+$form["db_history"]		= "no";
+$form["tab_default"]	= "services";
+$form["list_default"]	= "server_list.php";
+$form["auth"]			= 'yes';
+
+$form["auth_preset"]["userid"]  = 0; // 0 = id of the user, > 0 id must match with id of current user
+$form["auth_preset"]["groupid"] = 1; // 0 = default groupid of the user, > 0 id must match with groupid of current user
+$form["auth_preset"]["perm_user"] = 'riud'; //r = read, i = insert, u = update, d = delete
+$form["auth_preset"]["perm_group"] = 'riud'; //r = read, i = insert, u = update, d = delete
+$form["auth_preset"]["perm_other"] = ''; //r = read, i = insert, u = update, d = delete
+
+$form["tabs"]['services'] = array (
+	'title' 	=> "Services",
+	'width' 	=> 100,
+	'template' 	=> "templates/server_edit_services.htm",
+	'fields' 	=> array (
+	##################################
+	# Begin Datatable fields
+	##################################
+		'server_name' => array (
+			'datatype'	=> 'VARCHAR',
+			'formtype'	=> 'TEXT',
+			'default'	=> '',
+			'value'		=> '',
+			'width'		=> '30',
+			'maxlength'	=> '255'
+		),
+		'mail_server' => array (
+			'datatype'	=> 'INTEGER',
+			'formtype'	=> 'CHECKBOX',
+			'default'	=> '0',
+			'value'		=> '1'
+		),
+		'web_server' => array (
+			'datatype'	=> 'INTEGER',
+			'formtype'	=> 'CHECKBOX',
+			'default'	=> '0',
+			'value'		=> '1'
+		),
+		'dns_server' => array (
+			'datatype'	=> 'INTEGER',
+			'formtype'	=> 'CHECKBOX',
+			'default'	=> '0',
+			'value'		=> '1'
+		),
+		'file_server' => array (
+			'datatype'	=> 'INTEGER',
+			'formtype'	=> 'CHECKBOX',
+			'default'	=> '0',
+			'value'		=> '1'
+		),
+		'db_server' => array (
+			'datatype'	=> 'INTEGER',
+			'formtype'	=> 'CHECKBOX',
+			'default'	=> '0',
+			'value'		=> '1'
+		),
+		'vserver_server' => array (
+			'datatype'	=> 'INTEGER',
+			'formtype'	=> 'CHECKBOX',
+			'default'	=> '0',
+			'value'		=> '1'
+		),
+		'update' => array (
+			'datatype'	=> 'INTEGER',
+			'formtype'	=> 'SELECT',
+			'default'	=> '1',
+			'value'		=> array(0 => 'No', 1 => 'Yes')
+		),
+		'active' => array (
+			'datatype'	=> 'INTEGER',
+			'formtype'	=> 'SELECT',
+			'default'	=> '1',
+			'value'		=> array(0 => 'No', 1 => 'Yes')
+		),
+	##################################
+	# ENDE Datatable fields
+	##################################
+	)
+);
+
+
 ?>
\ No newline at end of file
diff --git a/interface/web/admin/lib/lang/en_server.lng b/interface/web/admin/lib/lang/en_server.lng
index a83a900a9d4e6fd01d3e8275602a159736577a56..b8f1acf0dc1aff4152364ed2bd19c7fa9f58b78a 100644
--- a/interface/web/admin/lib/lang/en_server.lng
+++ b/interface/web/admin/lib/lang/en_server.lng
@@ -1,13 +1,12 @@
-<?php
-$wb["server_name_txt"] = 'Servername';
-$wb["mail_server_txt"] = 'Mailserver';
-$wb["web_server_txt"] = 'Webserver';
-$wb["dns_server_txt"] = 'DNS-Server';
-$wb["file_server_txt"] = 'Fileserver';
-$wb["mysql_server_txt"] = 'MySQL-Server';
-$wb["postgresql_server_txt"] = 'PostgreSQL-Server';
-$wb["firebird_server_txt"] = 'Firebird-Server';
-$wb["active_txt"] = 'Active';
-$wb["btn_save_txt"] = 'Save';
-$wb["btn_cancel_txt"] = 'Cancel';
+<?php
+$wb["server_name_txt"] = 'Servername';
+$wb["mail_server_txt"] = 'Mailserver';
+$wb["web_server_txt"] = 'Webserver';
+$wb["dns_server_txt"] = 'DNS-Server';
+$wb["file_server_txt"] = 'Fileserver';
+$wb["db_server_txt"] = 'DB-Server';
+$wb["vserver_server_txt"] = 'VServer-Server';
+$wb["active_txt"] = 'Active';
+$wb["btn_save_txt"] = 'Save';
+$wb["btn_cancel_txt"] = 'Cancel';
 ?>
\ No newline at end of file
diff --git a/interface/web/admin/lib/lang/en_server_list.lng b/interface/web/admin/lib/lang/en_server_list.lng
index 889d8025f36f66a1d9c50aa302fc5be4e2b20d10..0160993d41397edd7823441d82a5ca441349bda6 100644
--- a/interface/web/admin/lib/lang/en_server_list.lng
+++ b/interface/web/admin/lib/lang/en_server_list.lng
@@ -1,17 +1,16 @@
-<?php
-$wb["list_head_txt"] = 'Server';
-$wb["server_name_txt"] = 'Name';
-$wb["mail_server_txt"] = 'Mail';
-$wb["web_server_txt"] = 'Web';
-$wb["dns_server_txt"] = 'DNS';
-$wb["file_server_txt"] = 'File';
-$wb["mysql_server_txt"] = 'MySQL';
-$wb["postgresql_server_txt"] = 'PostgreSQL';
-$wb["firebird_server_txt"] = 'Firebird';
-$wb["page_txt"] = 'Page';
-$wb["page_of_txt"] = 'of';
-$wb["page_next_txt"] = 'Next';
-$wb["page_back_txt"] = 'Back';
-$wb["delete_txt"] = 'Delete';
-$wb["filter_txt"] = 'Filter';
+<?php
+$wb["list_head_txt"] = 'Server';
+$wb["server_name_txt"] = 'Name';
+$wb["mail_server_txt"] = 'Mail';
+$wb["web_server_txt"] = 'Web';
+$wb["dns_server_txt"] = 'DNS';
+$wb["file_server_txt"] = 'File';
+$wb["db_server_txt"] = 'DB';
+$wb["vserver_server_txt"] = 'VServer';
+$wb["page_txt"] = 'Page';
+$wb["page_of_txt"] = 'of';
+$wb["page_next_txt"] = 'Next';
+$wb["page_back_txt"] = 'Back';
+$wb["delete_txt"] = 'Delete';
+$wb["filter_txt"] = 'Filter';
 ?>
\ No newline at end of file
diff --git a/interface/web/admin/list/server.list.php b/interface/web/admin/list/server.list.php
index b5cb00750e3f09c61d014f40c996f88d23ebb592..562d56e86c25b20e3568210ae3ae01a30ff7ad11 100644
--- a/interface/web/admin/list/server.list.php
+++ b/interface/web/admin/list/server.list.php
@@ -1,123 +1,114 @@
-<?php
-
-/*
-	Datatypes:
-	- INTEGER
-	- DOUBLE
-	- CURRENCY
-	- VARCHAR
-	- TEXT
-	- DATE
-*/
-
-
-
-// Name of the list
-$liste["name"] 				= "server";
-
-// Database table
-$liste["table"] 			= "server";
-
-// Index index field of the database table
-$liste["table_idx"]			= "server_id";
-
-// Search Field Prefix
-$liste["search_prefix"] 	= "search_";
-
-// Records per page
-$liste["records_per_page"] 	= 15;
-
-// Script File of the list
-$liste["file"]				= "server_list.php";
-
-// Script file of the edit form
-$liste["edit_file"]			= "server_edit.php";
-
-// Script File of the delete script
-$liste["delete_file"]		= "server_del.php";
-
-// Paging Template
-$liste["paging_tpl"]		= "templates/paging.tpl.htm";
-
-// Enable authe
-$liste["auth"]				= "yes";
-
-
-/*****************************************************
-* Suchfelder
-*****************************************************/
-
-$liste["item"][] = array(	'field'		=> "server_name",
-							'datatype'	=> "VARCHAR",
-							'formtype'	=> "TEXT",
-							'op'		=> "like",
-							'prefix'	=> "%",
-							'suffix'	=> "%",
-							'width'		=> "",
-							'value'		=> "");
-
-$liste["item"][] = array(	'field'		=> "mail_server",
-							'datatype'	=> "VARCHAR",
-							'formtype'	=> "TEXT",
-							'op'		=> "like",
-							'prefix'	=> "%",
-							'suffix'	=> "%",
-							'width'		=> "",
-							'value'		=> "");
-
-$liste["item"][] = array(	'field'		=> "web_server",
-							'datatype'	=> "VARCHAR",
-							'formtype'	=> "TEXT",
-							'op'		=> "like",
-							'prefix'	=> "%",
-							'suffix'	=> "%",
-							'width'		=> "",
-							'value'		=> "");  
-
-$liste["item"][] = array(	'field'		=> "dns_server",
-							'datatype'	=> "VARCHAR",
-							'formtype'	=> "TEXT",
-							'op'		=> "like",
-							'prefix'	=> "%",
-							'suffix'	=> "%",
-							'width'		=> "",
-							'value'		=> "");
-
-$liste["item"][] = array(	'field'		=> "file_server",
-							'datatype'	=> "VARCHAR",
-							'formtype'	=> "TEXT",
-							'op'		=> "like",
-							'prefix'	=> "%",
-							'suffix'	=> "%",
-							'width'		=> "",
-							'value'		=> "");
-
-$liste["item"][] = array(	'field'		=> "mysql_server",
-							'datatype'	=> "VARCHAR",
-							'formtype'	=> "TEXT",
-							'op'		=> "like",
-							'prefix'	=> "%",
-							'suffix'	=> "%",
-							'width'		=> "",
-							'value'		=> "");
-
-
-$liste["item"][] = array(	'field'		=> "postgresql_server",
-							'datatype'	=> "VARCHAR",
-							'formtype'	=> "TEXT",
-							'op'		=> "like",
-							'prefix'	=> "%",
-							'suffix'	=> "%",
-							'width'		=> "",
-							'value'		=> "");
-
-
-$liste["item"][] = array(	'field'		=> "firebird_server",
-							'datatype'	=> "VARCHAR",
-							'formtype'	=> "TEXT",
-							'op'		=> "like",
-							'prefix'	=> "%",
-							'suffix'	=> "%",
-							'width'		=> "",
-							'value'		=> "");
+<?php
+
+/*
+	Datatypes:
+	- INTEGER
+	- DOUBLE
+	- CURRENCY
+	- VARCHAR
+	- TEXT
+	- DATE
+*/
+
+
+
+// Name of the list
+$liste["name"] 				= "server";
+
+// Database table
+$liste["table"] 			= "server";
+
+// Index index field of the database table
+$liste["table_idx"]			= "server_id";
+
+// Search Field Prefix
+$liste["search_prefix"] 	= "search_";
+
+// Records per page
+$liste["records_per_page"] 	= 15;
+
+// Script File of the list
+$liste["file"]				= "server_list.php";
+
+// Script file of the edit form
+$liste["edit_file"]			= "server_edit.php";
+
+// Script File of the delete script
+$liste["delete_file"]		= "server_del.php";
+
+// Paging Template
+$liste["paging_tpl"]		= "templates/paging.tpl.htm";
+
+// Enable authe
+$liste["auth"]				= "yes";
+
+
+/*****************************************************
+* Suchfelder
+*****************************************************/
+
+$liste["item"][] = array(	'field'		=> "server_name",
+							'datatype'	=> "VARCHAR",
+							'formtype'	=> "TEXT",
+							'op'		=> "like",
+							'prefix'	=> "%",
+							'suffix'	=> "%",
+							'width'		=> "",
+							'value'		=> "");
+
+$liste["item"][] = array(	'field'		=> "mail_server",
+							'datatype'	=> "VARCHAR",
+							'formtype'	=> "TEXT",
+							'op'		=> "like",
+							'prefix'	=> "%",
+							'suffix'	=> "%",
+							'width'		=> "",
+							'value'		=> "");
+
+$liste["item"][] = array(	'field'		=> "web_server",
+							'datatype'	=> "VARCHAR",
+							'formtype'	=> "TEXT",
+							'op'		=> "like",
+							'prefix'	=> "%",
+							'suffix'	=> "%",
+							'width'		=> "",
+							'value'		=> "");  
+
+$liste["item"][] = array(	'field'		=> "dns_server",
+							'datatype'	=> "VARCHAR",
+							'formtype'	=> "TEXT",
+							'op'		=> "like",
+							'prefix'	=> "%",
+							'suffix'	=> "%",
+							'width'		=> "",
+							'value'		=> "");
+
+$liste["item"][] = array(	'field'		=> "file_server",
+							'datatype'	=> "VARCHAR",
+							'formtype'	=> "TEXT",
+							'op'		=> "like",
+							'prefix'	=> "%",
+							'suffix'	=> "%",
+							'width'		=> "",
+							'value'		=> "");
+
+$liste["item"][] = array(	'field'		=> "db_server",
+							'datatype'	=> "VARCHAR",
+							'formtype'	=> "TEXT",
+							'op'		=> "like",
+							'prefix'	=> "%",
+							'suffix'	=> "%",
+							'width'		=> "",
+							'value'		=> "");
+
+
+$liste["item"][] = array(	'field'		=> "vserver_server",
+							'datatype'	=> "VARCHAR",
+							'formtype'	=> "TEXT",
+							'op'		=> "like",
+							'prefix'	=> "%",
+							'suffix'	=> "%",
+							'width'		=> "",
+							'value'		=> "");
+
 ?>
\ No newline at end of file
diff --git a/interface/web/admin/templates/server_edit_services.htm b/interface/web/admin/templates/server_edit_services.htm
index 0bfd7017896bfd4b5f99f54c4a62bb66458eea71..ec2bd5423a891b89115acfc0d9e36ac01197ed79 100644
--- a/interface/web/admin/templates/server_edit_services.htm
+++ b/interface/web/admin/templates/server_edit_services.htm
@@ -1,60 +1,56 @@
-<table width="500" border="0" cellspacing="0" cellpadding="2">
-  <tr>
-    <td width="100" class="frmText11">{tmpl_var name='server_name_txt'}:</td>
-    <td class="frmText11"><input name="server_name" type="text" class="text" value="{tmpl_var name='server_name'}" size="15" maxlength="255"></td>
-  </tr>
-  <tr><td colspan="2">&nbsp;</td></tr>
-  <tr><td colspan="2">
-  <fieldset style="width:205px;"><legend class="frmText11"><b>Services</b></legend>
-  <table border="0" cellspacing="0" cellpadding="2">
-  <tr>
-    <td class="frmText11">{tmpl_var name='mail_server'}</td>
-    <td class="frmText11">{tmpl_var name='mail_server_txt'}</td>
-  </tr>
-  <tr>
-    <td class="frmText11">{tmpl_var name='web_server'}</td>
-    <td class="frmText11">{tmpl_var name='web_server_txt'}</td>
-  </tr>
-  <tr>
-    <td class="frmText11">{tmpl_var name='dns_server'}</td>
-    <td class="frmText11">{tmpl_var name='dns_server_txt'}</td>
-  </tr>
-  <tr>
-    <td class="frmText11">{tmpl_var name='file_server'}</td>
-    <td class="frmText11">{tmpl_var name='file_server_txt'}</td>
-  </tr>
-  <tr>
-    <td class="frmText11">{tmpl_var name='mysql_server'}</td>
-    <td class="frmText11">{tmpl_var name='mysql_server_txt'}</td>
-  </tr>
-  <tr>
-    <td class="frmText11">{tmpl_var name='postgresql_server'}</td>
-    <td class="frmText11">{tmpl_var name='postgresql_server_txt'}</td>
-  </tr>
-  <tr>
-    <td class="frmText11">{tmpl_var name='firebird_server'}</td>
-    <td class="frmText11">{tmpl_var name='firebird_server_txt'}</td>
-  </tr>
-  </table>
-  </fieldset>
-  </td></tr>
-  <tr><td colspan="2">&nbsp;</td></tr>
-  <tr>
-    <td class="frmText11">{tmpl_var name='active_txt'}:</td>
-    <td class="frmText11">
-		<select name="active" class="text">
-			{tmpl_var name='active'}
-		</select>
-	</td>
-  </tr>  <tr>
-    <td class="frmText11">&nbsp;</td>
-    <td class="frmText11">&nbsp;</td>
-  </tr>
-  <tr>
-    <td>&nbsp;</td>
-    <td><input name="btn_save" type="submit" class="button" value="{tmpl_var name='btn_save_txt'}">
-      <input name="btn_cancel" type="button" class="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="self.location.href='server_list.php';">
-    </td>
-  </tr>
-</table>
+<table width="500" border="0" cellspacing="0" cellpadding="2">
+  <tr>
+    <td width="100" class="frmText11">{tmpl_var name='server_name_txt'}:</td>
+    <td class="frmText11"><input name="server_name" type="text" class="text" value="{tmpl_var name='server_name'}" size="15" maxlength="255"></td>
+  </tr>
+  <tr><td colspan="2">&nbsp;</td></tr>
+  <tr><td colspan="2">
+  <fieldset style="width:205px;"><legend class="frmText11"><b>Services</b></legend>
+  <table border="0" cellspacing="0" cellpadding="2">
+  <tr>
+    <td class="frmText11">{tmpl_var name='mail_server'}</td>
+    <td class="frmText11">{tmpl_var name='mail_server_txt'}</td>
+  </tr>
+  <tr>
+    <td class="frmText11">{tmpl_var name='web_server'}</td>
+    <td class="frmText11">{tmpl_var name='web_server_txt'}</td>
+  </tr>
+  <tr>
+    <td class="frmText11">{tmpl_var name='dns_server'}</td>
+    <td class="frmText11">{tmpl_var name='dns_server_txt'}</td>
+  </tr>
+  <tr>
+    <td class="frmText11">{tmpl_var name='file_server'}</td>
+    <td class="frmText11">{tmpl_var name='file_server_txt'}</td>
+  </tr>
+  <tr>
+    <td class="frmText11">{tmpl_var name='db_server'}</td>
+    <td class="frmText11">{tmpl_var name='db_server_txt'}</td>
+  </tr>
+  <tr>
+    <td class="frmText11">{tmpl_var name='vserver_server'}</td>
+    <td class="frmText11">{tmpl_var name='vserver_server_txt'}</td>
+  </tr>
+  </table>
+  </fieldset>
+  </td></tr>
+  <tr><td colspan="2">&nbsp;</td></tr>
+  <tr>
+    <td class="frmText11">{tmpl_var name='active_txt'}:</td>
+    <td class="frmText11">
+		<select name="active" class="text">
+			{tmpl_var name='active'}
+		</select>
+	</td>
+  </tr>  <tr>
+    <td class="frmText11">&nbsp;</td>
+    <td class="frmText11">&nbsp;</td>
+  </tr>
+  <tr>
+    <td>&nbsp;</td>
+    <td><input name="btn_save" type="submit" class="button" value="{tmpl_var name='btn_save_txt'}">
+      <input name="btn_cancel" type="button" class="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="self.location.href='server_list.php';">
+    </td>
+  </tr>
+</table>
 <input type="hidden" name="id" value="{tmpl_var name='id'}">
\ No newline at end of file
diff --git a/interface/web/admin/templates/server_list.htm b/interface/web/admin/templates/server_list.htm
index e730c00bb7624491978fa6a8cca4086755917d86..0812fb4b326a8e4e8b4384dc3cfa59f51f23fdca 100644
--- a/interface/web/admin/templates/server_list.htm
+++ b/interface/web/admin/templates/server_list.htm
@@ -1,44 +1,42 @@
-<form name="myform" action="server_list.php" method="POST">
-<div class="frmTextHead"><tmpl_var name="list_head_txt"></div><br />
-<table width="100%" border="0" cellspacing="0" cellpadding="4">
-  <tr>
-    <td class="tblHead"><tmpl_var name="server_name_txt"></td>
-    <td class="tblHead"><tmpl_var name="mail_server_txt"></td>
-    <td class="tblHead"><tmpl_var name="web_server_txt"></td>
-    <td class="tblHead"><tmpl_var name="dns_server_txt"></td>
-    <td class="tblHead"><tmpl_var name="file_server_txt"></td>
-    <td class="tblHead"><tmpl_var name="mysql_server_txt"></td>
-    <td class="tblHead"><tmpl_var name="postgresql_server_txt"></td>
-    <td class="tblHead"><tmpl_var name="firebird_server_txt"></td>
-    <td class="tblHead">&nbsp;</td>
-  </tr>
-  <tr>
-    <td class="frmText11"><input type="text" name="search_server_name" value="{tmpl_var name='search_server_name'}" class="text" /></td>
-    <td class="frmText11"><input type="text" name="search_mail_server" value="{tmpl_var name='search_mail_server'}" class="text" size="2" /></td>
-    <td class="frmText11"><input type="text" name="search_web_server" value="{tmpl_var name='search_web_server'}" class="text" size="2" /></td>
-    <td class="frmText11"><input type="text" name="search_dns_server" value="{tmpl_var name='search_dns_server'}" class="text" size="2" /></td>
-    <td class="frmText11"><input type="text" name="search_file_server" value="{tmpl_var name='search_file_server'}" class="text" size="2" /></td>
-    <td class="frmText11"><input type="text" name="search_mysql_server" value="{tmpl_var name='search_mysql_server'}" class="text" size="2" /></td>
-    <td class="frmText11"><input type="text" name="search_postgresql_server" value="{tmpl_var name='search_postgresql_server'}" class="text" size="2" /></td>
-    <td class="frmText11"><input type="text" name="search_firebird_server" value="{tmpl_var name='search_firebird_server'}" class="text" size="2" /></td>
-    <td class="frmText11" align="right"><input name="Filter" type="submit" id="Filter" value="{tmpl_var name="filter_txt"}"></td>
-  </tr>
-  <tmpl_loop name="records">
-  <tr bgcolor="{tmpl_var name="bgcolor"}">
-    <td class="frmText11"><a href="server_edit.php?id={tmpl_var name='id'}" class="frmText11">{tmpl_var name="server_name"}</a></td>
-    <td class="frmText11"><a href="server_edit.php?id={tmpl_var name='id'}" class="frmText11">{tmpl_var name="mail_server"}</a></td>
-    <td class="frmText11"><a href="server_edit.php?id={tmpl_var name='id'}" class="frmText11">{tmpl_var name="web_server"}</a></td>
-    <td class="frmText11"><a href="server_edit.php?id={tmpl_var name='id'}" class="frmText11">{tmpl_var name="dns_server"}</a></td>
-    <td class="frmText11"><a href="server_edit.php?id={tmpl_var name='id'}" class="frmText11">{tmpl_var name="file_server"}</a></td>
-    <td class="frmText11"><a href="server_edit.php?id={tmpl_var name='id'}" class="frmText11">{tmpl_var name="mysql_server"}</a></td>
-    <td class="frmText11"><a href="server_edit.php?id={tmpl_var name='id'}" class="frmText11">{tmpl_var name="postgresql_server"}</a></td>
-    <td class="frmText11"><a href="server_edit.php?id={tmpl_var name='id'}" class="frmText11">{tmpl_var name="firebird_server"}</a></td>
-    <td class="frmText11" align="right">[<a href="javascript: del_record('server_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}');" class="frmText11">{tmpl_var name='delete_txt'}</a>]</td>
-  </tr>
-  </tmpl_loop>
-
-  <tr>
-  	<td colspan="9" height="40" align="center" class="tblFooter"><tmpl_var name="paging"></td>
-  </tr>
-</table>
+<form name="myform" action="server_list.php" method="POST">
+<div class="frmTextHead"><tmpl_var name="list_head_txt"></div><br />
+<table width="100%" border="0" cellspacing="0" cellpadding="4">
+  <tr>
+    <td class="tblHead"><tmpl_var name="server_name_txt"></td>
+    <td class="tblHead"><tmpl_var name="mail_server_txt"></td>
+    <td class="tblHead"><tmpl_var name="web_server_txt"></td>
+    <td class="tblHead"><tmpl_var name="dns_server_txt"></td>
+    <td class="tblHead"><tmpl_var name="file_server_txt"></td>
+    <td class="tblHead"><tmpl_var name="mysql_server_txt"></td>
+    <td class="tblHead"><tmpl_var name="postgresql_server_txt"></td>
+    <td class="tblHead"><tmpl_var name="firebird_server_txt"></td>
+    <td class="tblHead">&nbsp;</td>
+  </tr>
+  <tr>
+    <td class="frmText11"><input type="text" name="search_server_name" value="{tmpl_var name='search_server_name'}" class="text" /></td>
+    <td class="frmText11"><input type="text" name="search_mail_server" value="{tmpl_var name='search_mail_server'}" class="text" size="2" /></td>
+    <td class="frmText11"><input type="text" name="search_web_server" value="{tmpl_var name='search_web_server'}" class="text" size="2" /></td>
+    <td class="frmText11"><input type="text" name="search_dns_server" value="{tmpl_var name='search_dns_server'}" class="text" size="2" /></td>
+    <td class="frmText11"><input type="text" name="search_file_server" value="{tmpl_var name='search_file_server'}" class="text" size="2" /></td>
+    <td class="frmText11"><input type="text" name="search_mysql_server" value="{tmpl_var name='search_db_server'}" class="text" size="2" /></td>
+    <td class="frmText11"><input type="text" name="search_postgresql_server" value="{tmpl_var name='search_vserver_server'}" class="text" size="2" /></td>
+    <td class="frmText11" align="right"><input name="Filter" type="submit" id="Filter" value="{tmpl_var name="filter_txt"}"></td>
+  </tr>
+  <tmpl_loop name="records">
+  <tr bgcolor="{tmpl_var name="bgcolor"}">
+    <td class="frmText11"><a href="server_edit.php?id={tmpl_var name='id'}" class="frmText11">{tmpl_var name="server_name"}</a></td>
+    <td class="frmText11"><a href="server_edit.php?id={tmpl_var name='id'}" class="frmText11">{tmpl_var name="mail_server"}</a></td>
+    <td class="frmText11"><a href="server_edit.php?id={tmpl_var name='id'}" class="frmText11">{tmpl_var name="web_server"}</a></td>
+    <td class="frmText11"><a href="server_edit.php?id={tmpl_var name='id'}" class="frmText11">{tmpl_var name="dns_server"}</a></td>
+    <td class="frmText11"><a href="server_edit.php?id={tmpl_var name='id'}" class="frmText11">{tmpl_var name="file_server"}</a></td>
+    <td class="frmText11"><a href="server_edit.php?id={tmpl_var name='id'}" class="frmText11">{tmpl_var name="db_server"}</a></td>
+    <td class="frmText11"><a href="server_edit.php?id={tmpl_var name='id'}" class="frmText11">{tmpl_var name="vserver_server"}</a></td>
+    <td class="frmText11" align="right">[<a href="javascript: del_record('server_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}');" class="frmText11">{tmpl_var name='delete_txt'}</a>]</td>
+  </tr>
+  </tmpl_loop>
+
+  <tr>
+  	<td colspan="9" height="40" align="center" class="tblFooter"><tmpl_var name="paging"></td>
+  </tr>
+</table>
 </form>
\ No newline at end of file
diff --git a/server/lib/app.inc.php b/server/lib/app.inc.php
new file mode 100644
index 0000000000000000000000000000000000000000..49da38400b8a0633890f36497affb02e209bda23
--- /dev/null
+++ b/server/lib/app.inc.php
@@ -0,0 +1,128 @@
+<?php
+/*
+Copyright (c) 2006, Till Brehm, projektfarm Gmbh
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+    * Redistributions of source code must retain the above copyright notice,
+      this list of conditions and the following disclaimer.
+    * Redistributions in binary form must reproduce the above copyright notice,
+      this list of conditions and the following disclaimer in the documentation
+      and/or other materials provided with the distribution.
+    * Neither the name of ISPConfig nor the names of its contributors
+      may be used to endorse or promote products derived from this software without
+      specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+class app {
+
+        function app() {
+
+                global $conf;
+
+                if($conf["start_db"] == true) {
+                	$this->load('db_'.$conf["db_type"]);
+                	$this->db = new db;
+                }
+
+        }
+
+        function uses($classes) {
+                global $conf;
+
+                $cl = explode(',',$classes);
+                if(is_array($cl)) {
+                        foreach($cl as $classname) {
+                                if(!is_object($this->$classname)) {
+                                        include_once($conf['classpath'] . "/".$classname.".inc.php");
+                                        $this->$classname = new $classname;
+                                }
+                        }
+                }
+
+        }
+
+        function load($files) {
+
+                global $conf;
+                $fl = explode(',',$files);
+                if(is_array($fl)) {
+                        foreach($fl as $file) {
+                                include_once($conf['classpath'] . "/".$file.".inc.php");
+                        }
+                }
+
+        }
+
+        /*
+         0 = DEBUG
+         1 = WARNING
+         2 = ERROR
+        */
+
+        function log($msg, $priority = 0) {
+				
+				global $conf;
+				
+                if($priority >= $conf["log_priority"]) {
+                        if (is_writable($conf["log_file"])) {
+
+                            if (!$fp = fopen ($conf["log_file"], "a")) {
+                                die("Unable to open Logfile.");
+                            }
+							switch ($priority) {
+								case: 0;
+									$priority_txt = "DEBUG";
+								break;
+								case: 1;
+									$priority_txt = "WARNING";
+								break;
+								case: 2;
+									$priority_txt = "ERROR";
+								break;
+							}
+							
+                            if (!fwrite($fp, date("d.m.Y-H:i")." - ".$priority_txt." - ". $msg."\r\n")) {
+                                die("Unable to write to logfile.");
+                            }
+                            fclose($fp);
+
+                        } else {
+                            $this->error("Logfile ist nicht beschreibbar.");
+                        }
+                } // if
+        } // func
+
+        /*
+         0 = DEBUG
+         1 = WARNING
+         2 = ERROR
+        */
+
+        function error($msg) {
+        	$this->log($msg,3);
+			die();
+        }
+
+}
+
+/*
+ Initialize application (app) object
+*/
+
+$app = new app;
+
+?>
\ No newline at end of file
diff --git a/server/lib/classes/db_mysql.inc.php b/server/lib/classes/db_mysql.inc.php
new file mode 100644
index 0000000000000000000000000000000000000000..bc26ac5670500cbe03e597ff7548caf0bf763413
--- /dev/null
+++ b/server/lib/classes/db_mysql.inc.php
@@ -0,0 +1,480 @@
+<?php
+/*
+Copyright (c) 2005, Till Brehm, projektfarm Gmbh
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+    * Redistributions of source code must retain the above copyright notice,
+      this list of conditions and the following disclaimer.
+    * Redistributions in binary form must reproduce the above copyright notice,
+      this list of conditions and the following disclaimer in the documentation
+      and/or other materials provided with the distribution.
+    * Neither the name of ISPConfig nor the names of its contributors
+      may be used to endorse or promote products derived from this software without
+      specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+	class db
+	{
+		var $dbHost = "";		// hostname of the MySQL server
+		var $dbName = "";		// logical database name on that server
+		var $dbUser = "";		// database authorized user
+		var $dbPass = "";		// user's password
+		var $linkId = 0;		// last result of mysql_connect()
+		var $queryId = 0;		// last result of mysql_query()
+		var $record	= array();	// last record fetched
+        var $autoCommit = 1;    // Autocommit Transactions
+		var $currentRow;		// current row number
+		var $errorNumber = 0;	// last error number
+		var $errorMessage = "";	// last error message
+		var $errorLocation = "";// last error location
+		var $show_error_messages = false;
+
+		// constructor
+		function db()
+		{
+			
+			global $conf;
+			$this->dbHost = $conf["db_host"];
+			$this->dbName = $conf["db_database"];
+			$this->dbUser = $conf["db_user"];
+			$this->dbPass = $conf["db_password"];
+			//$this->connect();
+		}
+
+		// error handler
+		function updateError($location)
+		{
+			$this->errorNumber = mysql_errno();
+			$this->errorMessage = mysql_error();
+			$this->errorLocation = $location;
+			if($this->errorNumber && $this->show_error_messages)
+			{
+				echo('<br /><b>'.$this->errorLocation.'</b><br />'.$this->errorMessage);
+				flush();
+			}
+		}
+
+		function connect()
+		{
+			if($this->linkId == 0)
+			{
+				$this->linkId = mysql_connect($this->dbHost, $this->dbUser, $this->dbPass);
+				if(!$this->linkId)
+				{
+					$this->updateError('DB::connect()<br />mysql_connect');
+					return false;
+				}
+			}
+			return true;
+		}
+
+		function query($queryString)
+		{
+			if(!$this->connect())
+			{
+				return false;
+			}
+			if(!mysql_select_db($this->dbName, $this->linkId))
+			{
+				$this->updateError('DB::connect()<br />mysql_select_db');
+				return false;
+			}
+			$this->queryId = @mysql_query($queryString, $this->linkId);
+			$this->updateError('DB::query('.$queryString.')<br />mysql_query');
+			if(!$this->queryId)
+			{
+				return false;
+			}
+			$this->currentRow = 0;
+			return $this->queryId;
+		}
+
+		// returns all records in an array
+		function queryAllRecords($queryString)
+		{
+			if(!$this->query($queryString))
+			{
+				return false;
+			}
+			$ret = array();
+			while($line = $this->nextRecord())
+			{
+				$ret[] = $line;
+			}
+			return $ret;
+		}
+
+		// returns one record in an array
+		function queryOneRecord($queryString)
+		{
+			if(!$this->query($queryString) || $this->numRows() == 0)
+			{
+				return false;
+			}
+			return $this->nextRecord();
+		}
+
+		// returns the next record in an array
+		function nextRecord()
+		{
+            $this->record = mysql_fetch_assoc($this->queryId);
+			$this->updateError('DB::nextRecord()<br />mysql_fetch_array');
+			if(!$this->record || !is_array($this->record))
+			{
+				return false;
+			}
+			$this->currentRow++;
+			return $this->record;
+		}
+
+		// returns number of rows returned by the last select query
+		function numRows()
+		{
+			return mysql_num_rows($this->queryId);
+		}
+		
+		// returns mySQL insert id
+		function insertID()
+		{
+			return mysql_insert_id($this->linkId);
+		}
+        
+        // Check der variablen
+		// deprecated, now use quote
+        function check($formfield)
+        {
+            return $this->quote($formfield);
+        }
+		
+		// Check der variablen
+        function quote($formfield)
+        {
+            return addslashes($formfield);
+        }
+		
+		// Check der variablen
+        function unquote($formfield)
+        {
+            return stripslashes($formfield);
+        }
+		
+		function toLower($record) {
+			if(is_array($record)) {
+				foreach($record as $key => $val) {
+					$key = strtolower($key);
+					$out[$key] = $val;
+				}
+			}
+		return $out;
+		}
+       
+       
+       function insert($tablename,$form,$debug = 0)
+       {
+         if(is_array($form)){
+	       foreach($form as $key => $value) 
+   		    {
+   		    $sql_key .= "$key, ";
+            $sql_value .= "'".$this->check($value)."', ";
+      		 }
+       	$sql_key = substr($sql_key,0,strlen($sql_key) - 2);
+        $sql_value = substr($sql_value,0,strlen($sql_value) - 2);
+        
+       	$sql = "INSERT INTO $tablename (" . $sql_key . ") VALUES (" . $sql_value .")";
+       
+      		 if($debug == 1) echo "SQL-Statement: ".$sql."<br><br>";
+      		 $this->query($sql);
+      		 if($debug == 1) echo "mySQL Error Message: ".$this->errorMessage;
+          }
+       }
+       
+       function update($tablename,$form,$bedingung,$debug = 0)
+       {
+       
+	     if(is_array($form)){
+           foreach($form as $key => $value) 
+   		    {
+   		    $insql .= "$key = '".$this->check($value)."', ";
+      		 }
+       	        $insql = substr($insql,0,strlen($insql) - 2);
+       	        $sql = "UPDATE $tablename SET " . $insql . " WHERE $bedingung";
+      		 if($debug == 1) echo "SQL-Statement: ".$sql."<br><br>";
+      		 $this->query($sql);
+      		 if($debug == 1) echo "mySQL Error Message: ".$this->errorMessage;
+           }
+       }
+       
+       function closeConn() {
+       
+       }
+       
+       function freeResult() {
+       
+       
+       }
+       
+       function delete() {
+       
+       }
+       
+       function Transaction($action) {
+       //action = begin, commit oder rollback
+       
+       }
+       
+       /*
+       $columns = array(action =>   add | alter | drop
+                        name =>     Spaltenname
+                        name_new => neuer Spaltenname, nur bei 'alter' belegt
+                        type =>     42go-Meta-Type: int16, int32, int64, double, char, varchar, text, blob
+                        typeValue => Wert z.B. bei Varchar
+                        defaultValue =>  Default Wert
+                        notNull =>   true | false
+                        autoInc =>   true | false
+                        option =>   unique | primary | index)
+       
+       
+       */
+       
+       function createTable($table_name,$columns) {
+       $index = "";
+       $sql = "CREATE TABLE $table_name (";
+       foreach($columns as $col){
+            $sql .= $col["name"]." ".$this->mapType($col["type"],$col["typeValue"])." ";
+       
+            if($col["defaultValue"] != "") $sql .= "DEFAULT '".$col["defaultValue"]."' ";
+            if($col["notNull"] == true) {
+                $sql .= "NOT NULL ";
+            } else {
+                $sql .= "NULL ";
+            }
+            if($col["autoInc"] == true) $sql .= "auto_increment ";
+            $sql.= ",";
+            // key Definitionen
+            if($col["option"] == "primary") $index .= "PRIMARY KEY (".$col["name"]."),";
+            if($col["option"] == "index") $index .= "INDEX (".$col["name"]."),";
+            if($col["option"] == "unique") $index .= "UNIQUE (".$col["name"]."),";
+       }
+       $sql .= $index;
+       $sql = substr($sql,0,-1);
+       $sql .= ")";
+       
+       $this->query($sql);
+       return true;
+       }
+       
+       /*
+       $columns = array(action =>   add | alter | drop
+                        name =>     Spaltenname
+                        name_new => neuer Spaltenname, nur bei 'alter' belegt
+                        type =>     42go-Meta-Type: int16, int32, int64, double, char, varchar, text, blob
+                        typeValue => Wert z.B. bei Varchar
+                        defaultValue =>  Default Wert
+                        notNull =>   true | false
+                        autoInc =>   true | false
+                        option =>   unique | primary | index)
+       
+       
+       */
+       function alterTable($table_name,$columns) {
+       $index = "";
+       $sql = "ALTER TABLE $table_name ";
+       foreach($columns as $col){
+            if($col["action"] == 'add') {
+                $sql .= "ADD ".$col["name"]." ".$this->mapType($col["type"],$col["typeValue"])." ";
+            } elseif ($col["action"] == 'alter') {
+                $sql .= "CHANGE ".$col["name"]." ".$col["name_new"]." ".$this->mapType($col["type"],$col["typeValue"])." ";
+            } elseif ($col["action"] == 'drop') {
+                $sql .= "DROP ".$col["name"]." ";
+            }
+            if($col["action"] != 'drop') {  
+            if($col["defaultValue"] != "") $sql .= "DEFAULT '".$col["defaultValue"]."' ";
+            if($col["notNull"] == true) {
+                $sql .= "NOT NULL ";
+            } else {
+                $sql .= "NULL ";
+            }
+            if($col["autoInc"] == true) $sql .= "auto_increment ";
+            $sql.= ",";
+            // key Definitionen
+            if($col["option"] == "primary") $index .= "PRIMARY KEY (".$col["name"]."),";
+            if($col["option"] == "index") $index .= "INDEX (".$col["name"]."),";
+            if($col["option"] == "unique") $index .= "UNIQUE (".$col["name"]."),";
+            }
+       }
+       $sql .= $index;
+       $sql = substr($sql,0,-1);
+       
+       //die($sql);
+       $this->query($sql);
+       return true;
+       }
+       
+       function dropTable($table_name) {
+       $this->check($table_name);
+       $sql = "DROP TABLE '". $table_name."'";
+       return $this->query($sql);
+       }
+       
+       // gibt Array mit Tabellennamen zurück
+       function getTables($database_name = '') {
+	   	
+			if($database_name == '') $database_name = $this->dbName;
+            $result = mysql_list_tables($database_name);
+            for ($i = 0; $i < mysql_num_rows($result); $i++) {
+                $tb_names[$i] = mysql_tablename($result, $i);
+            }
+            return $tb_names;       
+       }
+       
+       // gibt Feldinformationen zur Tabelle zurück
+       /*
+       $columns = array(action =>   add | alter | drop
+                        name =>     Spaltenname
+                        name_new => neuer Spaltenname, nur bei 'alter' belegt
+                        type =>     42go-Meta-Type: int16, int32, int64, double, char, varchar, text, blob
+                        typeValue => Wert z.B. bei Varchar
+                        defaultValue =>  Default Wert
+                        notNull =>   true | false
+                        autoInc =>   true | false
+                        option =>   unique | primary | index)
+       
+       
+       */
+       
+       function tableInfo($table_name) {
+       
+       global $go_api,$go_info;
+       // Tabellenfelder einlesen
+        
+        if($rows = $go_api->db->queryAllRecords("SHOW FIELDS FROM ".$table_name)){
+        foreach($rows as $row) {
+            $name = $row[0];
+            $default = $row[4];
+            $key = $row[3];
+            $extra = $row[5];
+            $isnull = $row[2];
+            $type = $row[1];
+        
+            
+            $column = array();
+        
+            $column["name"] = $name;
+            //$column["type"] = $type;
+            $column["defaultValue"] = $default;
+            if(stristr($key,"PRI")) $column["option"] = "primary";
+            if(stristr($isnull,"YES")) {
+                $column["notNull"] = false;
+            } else {
+               $column["notNull"] = true; 
+            }
+            if($extra == 'auto_increment') $column["autoInc"] = true;
+            
+            
+            // Type in Metatype umsetzen
+            
+            if(stristr($type,"int(")) $metaType = 'int32';
+            if(stristr($type,"bigint")) $metaType = 'int64';
+            if(stristr($type,"char")) {
+                $metaType = 'char';
+                $tmp_typeValue = explode('(',$type);
+                $column["typeValue"] = substr($tmp_typeValue[1],0,-1);  
+            }
+            if(stristr($type,"varchar")) {
+                $metaType = 'varchar';
+                $tmp_typeValue = explode('(',$type);
+                $column["typeValue"] = substr($tmp_typeValue[1],0,-1);  
+            }
+            if(stristr($type,"text")) $metaType = 'text';
+            if(stristr($type,"double")) $metaType = 'double';
+            if(stristr($type,"blob")) $metaType = 'blob';
+            
+            
+            $column["type"] = $metaType;
+            
+        $columns[] = $column;
+        }
+            return $columns;
+        } else {
+            return false;
+        }
+        
+        
+        //$this->createTable('tester',$columns);
+        
+        /*
+        $result = mysql_list_fields($go_info["server"]["db_name"],$table_name);
+        $fields = mysql_num_fields ($result);
+        $i = 0;
+        $table = mysql_field_table ($result, $i);
+        while ($i < $fields) {
+            $name  = mysql_field_name  ($result, $i);
+            $type  = mysql_field_type  ($result, $i);
+            $len   = mysql_field_len   ($result, $i);
+            $flags = mysql_field_flags ($result, $i);
+            print_r($flags);
+            
+            $columns = array(name => $name,
+                        type =>     "",
+                        defaultValue =>  "",
+                        isnull =>   1,
+                        option =>   "");
+            $returnvar[] = $columns;
+            
+            $i++;
+        }
+        */
+        
+        
+       
+       }
+       
+       function mapType($metaType,$typeValue) {
+       global $go_api;
+       $metaType = strtolower($metaType);
+       switch ($metaType) {
+       case 'int16':
+            return 'smallint';
+       break;
+       case 'int32':
+            return 'int';
+       break;
+       case 'int64':
+            return 'bigint';
+       break;
+       case 'double':
+            return 'double';
+       break;
+       case 'char':
+            return 'char';
+       break;
+       case 'varchar':
+            if($typeValue < 1) die("Datenbank Fehler: Für diesen Datentyp ist eine Längenangabe notwendig.");
+            return 'varchar('.$typeValue.')';
+       break;
+       case 'text':
+            return 'text';
+       break;
+       case 'blob':
+            return 'blob';
+       break;
+       }
+       }
+		
+	}
+
+?>
\ No newline at end of file
diff --git a/server/lib/classes/ini_parser.inc.php b/server/lib/classes/ini_parser.inc.php
new file mode 100644
index 0000000000000000000000000000000000000000..349990f19156e7c4663df853ea1352322a864328
--- /dev/null
+++ b/server/lib/classes/ini_parser.inc.php
@@ -0,0 +1,69 @@
+<?php
+
+/*
+Copyright (c) 2006, Till Brehm, projektfarm Gmbh
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+    * Redistributions of source code must retain the above copyright notice,
+      this list of conditions and the following disclaimer.
+    * Redistributions in binary form must reproduce the above copyright notice,
+      this list of conditions and the following disclaimer in the documentation
+      and/or other materials provided with the distribution.
+    * Neither the name of ISPConfig nor the names of its contributors
+      may be used to endorse or promote products derived from this software without
+      specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+class ini_parser {
+
+	var $config;
+
+	function parse_ini_string($ini) {
+		$ini = str_replace("\r\n","\n",$ini);
+		$lines = explode("\n",$ini);
+		
+		foreach($lines as $line) {
+			
+			if($line != '') {
+				$line = trim($line);
+				if(preg_match("/^\[([\w\d_]+)\]$/", $line, $matches)) {
+					$section = strtolower($matches[1]);
+				} elseif(preg_match("/^([\w\d_]+)=(.*)$/", $line, $matches) && $section != null) {
+					$item = trim($matches[1]);
+					$this->config[$section][$item] = trim($matches[2]);
+				}
+			}
+		}
+		return $this->config;
+	}
+
+
+
+	function get_ini_string($file) {
+		$content = '';
+		foreach($this->config as $section => $data) {
+			$content .= "[$section]\n";
+			foreach($data as $item => $value) {
+				if($value != '') $content .= "$item=$value\n";
+			}
+		}
+		return $content;
+	}
+
+}
+
+?>
\ No newline at end of file
diff --git a/server/lib/config.inc.php b/server/lib/config.inc.php
new file mode 100644
index 0000000000000000000000000000000000000000..8ecfa8197e543035c6f6e4d0a7ed4818d53c1088
--- /dev/null
+++ b/server/lib/config.inc.php
@@ -0,0 +1,69 @@
+<?php
+/*
+Copyright (c) 2006, Till Brehm, Falko Timme, projektfarm Gmbh
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+    * Redistributions of source code must retain the above copyright notice,
+      this list of conditions and the following disclaimer.
+    * Redistributions in binary form must reproduce the above copyright notice,
+      this list of conditions and the following disclaimer in the documentation
+      and/or other materials provided with the distribution.
+    * Neither the name of ISPConfig nor the names of its contributors
+      may be used to endorse or promote products derived from this software without
+      specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+$conf["server_id"] 		= "1";
+$conf["app_version"] 	= "3.0.0";
+
+
+
+//$conf["rootpath"]		= "F:\\server\\www\\ispconfig3\\server";
+$conf["rootpath"]		= "D:\\www\\ispconfig3\\server";
+//$conf["rootpath"]		= "/home/www/ispconfig3/web/cms";
+
+$conf["fs_div"]			= "/"; // File system divider, \\ on windows and / on linux and unix
+$conf["classpath"]		= $conf["rootpath"].$conf["fs_div"]."lib".$conf["fs_div"]."classes";
+$conf["temppath"]		= $conf["rootpath"].$conf["fs_div"]."temp";
+
+/*
+		Logging
+*/
+
+$conf["log_file"]		= $conf["rootpath"].$conf["fs_div"]."ispconfig.log";
+$conf["log_priority"]	= 0 // 0 = Debug, 1 = Warning, 2 = Error
+
+
+/*
+        Database Settings
+*/
+
+$conf["db_type"]		= 'mysql';
+$conf["db_host"]		= 'localhost';
+$conf["db_database"]	= 'ispconfig3';
+$conf["db_user"]		= 'root';
+$conf["db_password"]	= '';
+
+/*
+        Auto Load Modules
+*/
+
+$conf["start_db"]			= true;
+$conf["load_server_config"]	= true;
+
+
+?>
\ No newline at end of file
diff --git a/server/server.php b/server/server.php
new file mode 100644
index 0000000000000000000000000000000000000000..300e02fa928124410350ade06716f2c5aa79de40
--- /dev/null
+++ b/server/server.php
@@ -0,0 +1,97 @@
+<?php
+
+/*
+Copyright (c) 2006, Till Brehm, projektfarm Gmbh
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+    * Redistributions of source code must retain the above copyright notice,
+      this list of conditions and the following disclaimer.
+    * Redistributions in binary form must reproduce the above copyright notice,
+      this list of conditions and the following disclaimer in the documentation
+      and/or other materials provided with the distribution.
+    * Neither the name of ISPConfig nor the names of its contributors
+      may be used to endorse or promote products derived from this software without
+      specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+require("lib/config.inc.php");
+require("lib/app.inc.php");
+
+set_time_limit(0);
+
+// make sure server_id is always an int
+$conf["server_id"] = intval($conf["server_id"]);
+
+// Get server record, if updates where available for this server
+$server_db_record = $app->db->queryOneRecord("SELECT * FROM server WHERE update = 1 AND server_id = ".$conf["server_id"])
+if($server_db_record == false) {
+	$app->log("Nothing to update for server_id ".$conf["server_id"]);
+	die();
+} else {
+	// Set update status to 0, so we dont start the update process twice
+	$app->db->query("UPDATE server SET update = 0 WHERE server_id = ".$conf["server_id"]);
+	$app->log("Begin update.");
+}
+
+// Check if another process is running
+if(is_file($conf["temppath"].$conf["fs_div"].".ispconfig_lock")){
+  clearstatcache();
+  for($i=0;$i<120;$i++){ // Wait max. 120 sec, then proceed
+    if(is_file($conf["temppath"].$conf["fs_div"].".ispconfig_lock")){
+      sleep(1);
+      clearstatcache();
+    }
+  }
+}
+
+// Set Lockfile
+@touch($conf["temppath"].$conf["fs_div"].".ispconfig_lock");
+$app->log("Set Lock: ".$conf["temppath"].$conf["fs_div"].".ispconfig_lock");
+
+// Get server configuration
+$this->uses('ini_parser');
+$conf["serverconfig"] = $app->ini_parser->parse_ini_string(stripslashes($server_db_record["config"]));
+
+// Run the configuration modules
+if($server_db_record["mail_server"] == 1) {
+	$app->uses('mod_mail_'.$conf["serverconfig"]["mail"]["module"]);
+}
+
+if($server_db_record["web_server"] == 1) {
+	$app->uses('mod_web_'.$conf["serverconfig"]["web"]["module"]);
+}
+
+if($server_db_record["dns_server"] == 1) {
+	$app->uses('mod_dns_'.$conf["serverconfig"]["dns"]["module"]);
+}
+
+if($server_db_record["file_server"] == 1) {
+	$app->uses('mod_file_'.$conf["serverconfig"]["file"]["module"]);
+}
+
+if($server_db_record["db_server"] == 1) {
+	$app->uses('mod_db_'.$conf["serverconfig"]["db"]["module"]);
+}
+
+if($server_db_record["vserver_server"] == 1) {
+	$app->uses('mod_vserver_'.$conf["serverconfig"]["vserver"]["module"]);
+}
+
+// Remove lock
+@unlink($conf["temppath"].$conf["fs_div"].".ispconfig_lock");
+$app->log("Remove Lock: ".$conf["temppath"].$conf["fs_div"].".ispconfig_lock");
+?>
\ No newline at end of file