From 82b723df86594a89fb53607981488319e39b1b92 Mon Sep 17 00:00:00 2001
From: Marius Cramer <m.cramer@pixcept.de>
Date: Thu, 06 Mar 2014 08:53:55 -0500
Subject: [PATCH] Merge remote-tracking branch 'origin/stable-3.0.5'

---
 install/lib/classes/tpl.inc.php                                   | 1431 ++++++++++++++++++++++++++++++++
 install/lib/classes/tpl_cache.inc.php                             |  193 ++++
 interface/web/sites/lib/lang/cz_webdav_user_list.lng              |    2 
 install/dist/lib/fedora.lib.php                                   |   38 
 interface/web/designer/lib/lang/cz_module_nav_item_edit.lng       |    2 
 interface/web/dashboard/lib/lang/cz_dashlet_mailquota.lng         |    2 
 install/tpl/apache_apps.vhost.master                              |   46 
 install/update.php                                                |    3 
 interface/web/dns/lib/lang/cz_dns_mx.lng                          |    1 
 interface/web/mail/lib/lang/cz_mail_user.lng                      |    4 
 interface/web/dns/lib/lang/cz_dns_rp.lng                          |    1 
 interface/web/client/lib/lang/cz_reseller.lng                     |   15 
 interface/web/login/lib/lang/cz.lng                               |    4 
 install/lib/classes/tpl_ini.inc.php                               |  119 ++
 install/lib/installer_base.lib.php                                |   61 
 interface/web/mail/lib/lang/cz_mail_alias_list.lng                |    2 
 interface/web/admin/lib/lang/cz_login_as.lng                      |   12 
 interface/web/admin/lib/lang/cz_language_import.lng               |    1 
 interface/web/dns/lib/lang/cz_dns_alias.lng                       |    1 
 interface/web/help/lib/lang/cz.lng                                |    2 
 interface/web/sites/lib/lang/cz_database_admin_list.lng           |    2 
 interface/web/tools/lib/lang/cz_resync.lng                        |    1 
 interface/web/mail/lib/lang/cz_mail_domain_catchall_list.lng      |    2 
 interface/web/sites/lib/lang/cz_database_user_admin_list.lng      |    2 
 interface/web/client/lib/lang/cz_client.lng                       |    9 
 interface/web/dns/lib/lang/cz_dns_hinfo.lng                       |    1 
 interface/web/client/lib/lang/cz_client_message_template_list.lng |    6 
 interface/web/client/lib/lang/cz_client_message.lng               |    2 
 interface/web/mail/lib/lang/cz_mail_aliasdomain_list.lng          |    2 
 interface/web/sites/lib/lang/cz_shell_user_list.lng               |    2 
 interface/web/mail/lib/lang/cz_mail_blacklist_list.lng            |    2 
 interface/web/sites/lib/lang/cz_cron.lng                          |    1 
 interface/lib/config.inc.php                                      |    1 
 interface/web/designer/lib/lang/cz_module_show.lng                |    2 
 install/lib/classes/tpl_error.inc.php                             |   95 ++
 install/tpl/nginx_apps.vhost.master                               |    2 
 interface/lib/lang/cz.lng                                         |    6 
 interface/web/dns/lib/lang/cz_dns_ptr.lng                         |    1 
 docs/under_development/CHROOTED_DEBIAN_5.0.txt                    |    0 
 interface/web/mail/lib/lang/cz.lng                                |   14 
 server/conf/nginx_apps.vhost.master                               |    2 
 install/tpl/debian_postfix.conf.master                            |    2 
 interface/lib/classes/remote.d/sites.inc.php                      |   26 
 interface/web/dns/lib/lang/cz_dns_a.lng                           |    1 
 interface/web/sites/lib/lang/cz_web_childdomain.lng               |   40 
 install/tpl/apache_ispconfig.vhost.master                         |   30 
 interface/web/client/lib/lang/cz_client_template.lng              |    2 
 install/tpl/opensuse_postfix.conf.master                          |    2 
 interface/web/dns/lib/lang/cz_dns_cname.lng                       |    1 
 interface/web/sites/database_edit.php                             |    4 
 interface/web/mail/lib/lang/cz_spamfilter_users.lng               |    3 
 interface/web/dns/lib/lang/cz_dns_txt.lng                         |    1 
 interface/web/dns/lib/lang/cz_dns_srv.lng                         |    1 
 interface/web/mail/lib/lang/cz_spamfilter_blacklist.lng           |    3 
 install/lib/install.lib.php                                       |   25 
 interface/lib/plugins/sites_web_vhost_domain_plugin.inc.php       |    2 
 interface/web/admin/lib/lang/cz_system_config.lng                 |   16 
 interface/web/dns/lib/lang/cz_dns_aaaa.lng                        |    1 
 interface/web/mail/lib/lang/cz_mail_domain_admin_list.lng         |    2 
 docs/INSTALL.txt                                                  |    6 
 interface/web/client/lib/lang/cz_client_message_template.lng      |   12 
 interface/web/help/lib/lang/cz_help_faq_sections_list.lng         |    2 
 install/tpl/apache_ispconfig.conf.master                          |   76 +
 interface/web/sites/lib/lang/cz_web_childdomain_list.lng          |    8 
 interface/web/admin/lib/lang/cz_directive_snippets.lng            |    1 
 install/dist/lib/gentoo.lib.php                                   |   32 
 install/dist/lib/opensuse.lib.php                                 |   43 
 interface/web/mail/lib/lang/cz_user_quota_stats_list.lng          |    2 
 interface/web/sites/lib/lang/cz.lng                               |   12 
 interface/web/mail/lib/lang/cz_mail_transport_list.lng            |    2 
 interface/web/admin/lib/lang/cz_users.lng                         |    1 
 interface/web/dns/lib/lang/cz_dns_ns.lng                          |    1 
 install/tpl/gentoo_postfix.conf.master                            |    2 
 interface/web/sites/lib/lang/cz_shell_user.lng                    |    2 
 interface/web/sites/lib/lang/cz_ftp_user_list.lng                 |    4 
 /dev/null                                                         |  144 ---
 install/install.php                                               |    3 
 interface/web/sites/lib/lang/cz_user_quota_stats_list.lng         |    2 
 interface/web/admin/lib/lang/cz_server_config.lng                 |    4 
 interface/web/sites/lib/lang/cz_web_vhost_domain.lng              |    8 
 install/tpl/fedora_postfix.conf.master                            |    2 
 interface/web/client/lib/lang/cz.lng                              |    4 
 interface/web/mail/lib/lang/cz_spamfilter_whitelist.lng           |    3 
 interface/web/mailuser/lib/lang/cz_mail_user_cc.lng               |    2 
 interface/web/sites/lib/lang/cz_database_list.lng                 |    2 
 interface/web/sites/lib/lang/cz_ftp_user.lng                      |    2 
 86 files changed, 2,324 insertions(+), 315 deletions(-)

diff --git a/docs/INSTALL.txt b/docs/INSTALL.txt
new file mode 100644
index 0000000..5e49c4a
--- /dev/null
+++ b/docs/INSTALL.txt
@@ -0,0 +1,6 @@
+
+The installation instructions for ISPConfig can be found here:
+
+http://www.ispconfig.org/page/en/documentation.html
+
+
diff --git a/docs/INSTALL_CENTOS_5.2.txt b/docs/INSTALL_CENTOS_5.2.txt
deleted file mode 100644
index 7cc464b..0000000
--- a/docs/INSTALL_CENTOS_5.2.txt
+++ /dev/null
@@ -1,249 +0,0 @@
-
-
-WARNING: Support for CentOS is experimental only. For production systems better use Debian or Ubuntu.
-
-
-Installation
------------
-
-It is recommended to use a clean (fresh) CentOS 5.2 install. Then follow the steps below to setup your server with ISPConfig 3:
-
-Installation of some basic requirements:
-
-rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY*
-yum update
-yum groupinstall 'Development Tools'
-yum groupinstall 'Development Libraries'
-
-You should disable selinux now, as some programs will not start when selinux is enabled:
-
-system-config-securitylevel-tui
-
-then reboot the server.
-
-
-1) Install Postfix, Courier, Saslauthd, MySQL, phpMyAdmin with the following command line (on one line!):
-
-yum install ntp httpd mysql-server php php-mysql php-mbstring rpm-build gcc mysql-devel openssl-devel cyrus-sasl-devel pkgconfig zlib-devel phpMyAdmin pcre-devel openldap-devel postgresql-devel expect libtool-ltdl-devel openldap-servers libtool gdbm-devel pam-devel gamin-devel postfix
-
-rpm --import http://dag.wieers.com/rpm/packages/RPM-GPG-KEY.dag.txt
-
-cd /tmp
-wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.3.6-1.el5.rf.i386.rpm
-rpm -i rpmforge-release-0.3.6-1.el5.rf.i386.rpm
-yum update
-
-yum install getmail
-
-useradd -m -s /bin/bash compileuser
-passwd compileuser
-
-visudo
-
-## Allow root to run any commands anywhere
-root    ALL=(ALL)       ALL
-compileuser   ALL=(ALL)       ALL
-
-
-su compileuser
-
-mkdir $HOME/rpm
-mkdir $HOME/rpm/SOURCES
-mkdir $HOME/rpm/SPECS
-mkdir $HOME/rpm/BUILD
-mkdir $HOME/rpm/SRPMS
-mkdir $HOME/rpm/RPMS
-mkdir $HOME/rpm/RPMS/i386
-mkdir $HOME/rpm/RPMS/x86_64
-
-echo "%_topdir $HOME/rpm" >> $HOME/.rpmmacros
-
-
-wget http://prdownloads.sourceforge.net/courier/courier-authlib-0.61.0.tar.bz2
-wget http://prdownloads.sourceforge.net/courier/courier-imap-4.4.1.tar.bz2
-wget http://prdownloads.sourceforge.net/courier/maildrop-2.0.4.tar.bz2
-
-sudo rpmbuild -ta courier-authlib-0.61.0.tar.bz2
-
-sudo rpm -ivh /home/compileuser/rpm/RPMS/i386/courier-authlib-0.61.0-1.i386.rpm
-sudo rpm -ivh /home/compileuser/rpm/RPMS/i386/courier-authlib-mysql-0.61.0-1.i386.rpm
-sudo rpm -ivh /home/compileuser/rpm/RPMS/i386/courier-authlib-devel-0.61.0-1.i386.rpm
-
-rpmbuild -ta courier-imap-4.4.1.tar.bz2
-
-sudo rpm -ivh /home/compileuser/rpm/RPMS/i386/courier-imap-4.4.1-1.i386.rpm
-
-sudo rpmbuild -ta maildrop-2.0.4.tar.bz2
-
-sudo rpm -ivh /home/compileuser/rpm/RPMS/i386/maildrop-2.0.4-1.i386.rpm
-
-exit
-
-chkconfig --levels 235 mysqld on
-/etc/init.d/mysqld start
-
-chkconfig --levels 235 httpd on
-/etc/init.d/httpd start
-
-chkconfig --levels 235 courier-authlib on
-/etc/init.d/courier-authlib start
-
-chkconfig --levels 235 sendmail off
-chkconfig --levels 235 postfix on
-chkconfig --levels 235 saslauthd on
-/etc/init.d/sendmail stop
-/etc/init.d/postfix start
-/etc/init.d/saslauthd start
-
-chkconfig --levels 235 courier-imap on
-/etc/init.d/courier-authlib restart
-/etc/init.d/courier-imap restart
-
-
-Set the mysql database password:
-
-mysqladmin -u root password yourrootsqlpassword
-mysqladmin -h ispconfig.local -u root password yourrootsqlpassword
-
-
-2) Install Amavisd-new, Spamassassin and Clamav (1 line!):
-
-yum install amavisd-new spamassassin clamav clamd clamav-data clamav-server clamav-update unzip bzip2 unrar
-
-chkconfig --levels 235 amavisd on
-chkconfig --levels 235 clamd on
-/usr/bin/freshclam
-/etc/init.d/amavisd start
-/etc/init.d/clamd start
-
-If you use the amavisd from rpmforge and not the one from centos, you will have to do these additional steps:
-
-add the following line in /etc/sysconfig/amavisd:
-
-CONFIG_FILE="/etc/amavisd/amavisd.conf
-
-run:
-
-mkdir /var/run/amavisd /var/spool/amavisd /var/spool/amavisd/tmp /var/spool/amavisd/db
-chown amavis /var/run/amavisd /var/spool/amavisd /var/spool/amavisd/tmp /var/spool/amavisd/db
-yum install perl-DBD-mysql
-
-
-3) Install apache, PHP5 and phpmyadmin (1 line!):
-
-yum install php php-devel php-gd php-imap php-ldap php-mysql php-odbc php-pear php-xml php-xmlrpc php-eaccelerator php-magickwand php-magpierss php-mapserver php-mbstring php-mcrypt php-mhash php-mssql php-shout php-snmp php-soap php-tidy curl curl-devel perl-libwww-perl ImageMagick libxml2 libxml2-devel phpmyadmin
-
-
-4) Install pure-ftpd and quota
-
-cd /tmp
-wget http://centos.karan.org/el5/extras/testing/i386/RPMS/pure-ftpd-1.0.21-15.el5.kb.i386.rpm
-rpm -i pure-ftpd-1.0.21-15.el5.kb.i386.rpm
-
-yum install quota
-
-chkconfig --levels 235 pure-ftpd on
-/etc/init.d/pure-ftpd start
-
-5) Install mydns
-
-wget http://mydns.bboy.net/download/mydns-mysql-1.1.0-1.i386.rpm
-rpm -ivh mydns-mysql-1.1.0-1.i386.rpm
-
-chkconfig --levels 235 mydns on
-
-6) Install vlogger and webalizer
-
-yum install webalizer perl-DateTime-Format-HTTP perl-DateTime-Format-Builder
-
-cd /tmp
-wget http://n0rp.chemlab.org/vlogger/vlogger-1.3.tar.gz
-tar xvfz vlogger-1.3.tar.gz
-mv vlogger-1.3/vlogger /usr/sbin/
-rm -rf vlogger*
-
-Edit the file /etc/sudoers
-
-vi /etc/sudoers
-
-and change the line:
-
-Defaults    requiretty
-
-to:
-
-# Defaults    requiretty
-
-7) Install ISPConfig 3
-
-Disable the firewall:
-
-system-config-securitylevel-tui
-
-There are two possile scenarios, but not both:
-7.1) Install the latest released version 
-7.2) Install directly from SVN
-
-7.1) Installation of beta 3 from tar.gz
-
-  cd /tmp
-  wget http://www.ispconfig.org/downloads/ISPConfig-3.0.0.9-rc2.tar.gz
-  tar xvfz ISPConfig-3.0.0.9-rc2.tar.gz
-  cd ispconfig3_install/install/
-
-7.2) Installation from SVN
-
-  yum install subversion
-  cd /tmp
-  svn export svn://svn.ispconfig.org/ispconfig3/trunk/
-  cd trunk/install
-
-
-7.1+7.2) Now proceed with the ISPConfig installation.
-
-Now start the installation process by executing:
-
-php -q install.php
-
-The installer will configure all services like postfix, sasl, courier, etc. for you. A manual setup as required for ISPConfig 2 (perfect setup guides) is not necessary. To login to the ISPConfig controlpanel, open the following URL in your browser (replace the IP to match your settings!):
-
-http://192.168.0.100:8080/
-
-the default login is:
-
-user: admin
-password: admin
-
-In case you get a permission denied error from apache, please restart the apache webserver process.
-
-Optional:
-
-Install a webbased Email Client
-
-yum install squirrelmail
-
-
-----------------------------------------------------------------------------------------------------------
-
-Hints:
-
-debian 4.0 under openvz:
-
-VPSID=101
-for CAP in CHOWN DAC_READ_SEARCH SETGID SETUID NET_BIND_SERVICE NET_ADMIN SYS_CHROOT SYS_NICE CHOWN DAC_READ_SEARCH SETGID SETUID NET_BIND_SERVICE NET_ADMIN SYS_CHROOT SYS_NICE
-do
-  vzctl set $VPSID --capability ${CAP}:on --save
-done
-
-----------------------------------------------------------------------------------------------------------
-
-Installing Jailkit:
-
-cd /tmp
-wget http://olivier.sessink.nl/jailkit/jailkit-2.5.tar.gz
-tar xvfz jailkit-2.5.tar.gz
-cd jailkit-2.5
-./configure
-make
-make install
-rm -rf jailkit-2.5*
diff --git a/docs/INSTALL_CENTOS_5.4_dovecot_bind.txt b/docs/INSTALL_CENTOS_5.4_dovecot_bind.txt
deleted file mode 100644
index f3b4982..0000000
--- a/docs/INSTALL_CENTOS_5.4_dovecot_bind.txt
+++ /dev/null
@@ -1,237 +0,0 @@
-
-
-Installation
------------
-
-It is recommended to use a clean (fresh) CentOS 5.4 install. Then follow the steps below to setup your server with ISPConfig 3:
-
-Installation of some basic requirements:
-
-rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY*
-
-enable the contrib and centosplus repositories.
-
-vi /etc/yum.repos.d/CentOS-Base.repo
-
-1. Edit the file /etc/yum.repos.d/CentOS-Base.repo and edit the lines below.
-
-[base]
-exclude=postfix
-
-[update]
-exclude=postfix
-
-[centosplus]
-enabled=1
-includepkgs=postfix
-
-[contrib]
-enabled=1
-
-rpm --import http://dag.wieers.com/rpm/packages/RPM-GPG-KEY.dag.txt
-
-cd /tmp
-wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.1-1.el5.rf.i386.rpm
-rpm -i rpmforge-release-0.5.1-1.el5.rf.i386.rpm
-yum update
-
-You should disable selinux now, as some programs will not start when selinux is enabled:
-
-system-config-securitylevel-tui
-
-then reboot the server.
-
-Then remove the postfix without mysql support
-
-yum remove postfix
-
-1) Install Postfix fron centosplus with mysql support, Dovecot, MySQL, phpMyAdmin with the following command line (on one line!):
-
-yum install ntp httpd mysql-server php php-mysql php-mbstring phpMyAdmin postfix getmail
-
-For 32Bit systems:
-
-rpm -i http://dl.atrpms.net/all/dovecot-1.2.11-3_108.el5.i386.rpm
-rpm -i http://dl.atrpms.net/all/dovecot-sieve-0.1.15-4.el5.i386.rpm
-
-For 64Bit Systems:
-
-rpm -ivh http://dl.atrpms.net/all/dovecot-1.2.11-3_108.el5.x86_64.rpm
-rpm -ivh http://dl.atrpms.net/all/dovecot-sieve-0.1.15-4.el5.x86_64.rpm
-
-
-chkconfig --levels 235 mysqld on
-/etc/init.d/mysqld start
-
-chkconfig --levels 235 httpd on
-/etc/init.d/httpd start
-
-chkconfig --levels 235 dovecot on
-/etc/init.d/dovecot start
-
-chkconfig --levels 235 sendmail off
-chkconfig --levels 235 postfix on
-/etc/init.d/sendmail stop
-/etc/init.d/postfix start
-
-
-Set the mysql database password:
-
-/usr/bin/mysql_secure_installation
-
-
-2) Install Amavisd-new, Spamassassin and Clamav (1 line!):
-
-yum install amavisd-new spamassassin clamav clamd unzip bzip2 unrar
-
-sa-update
-chkconfig --levels 235 amavisd on
-chkconfig --levels 235 clamd on
-/usr/bin/freshclam
-/etc/init.d/amavisd start
-/etc/init.d/clamd start
-
-If you use the amavisd from rpmforge (as we do in this guide) and not the one from centos, you will have to do these additional steps:
-
-add the following line in /etc/sysconfig/amavisd:
-
-CONFIG_FILE="/etc/amavisd/amavisd.conf
-
-run:
-
-mkdir /var/run/amavisd /var/spool/amavisd /var/spool/amavisd/tmp /var/spool/amavisd/db
-chown amavis /var/run/amavisd /var/spool/amavisd /var/spool/amavisd/tmp /var/spool/amavisd/db
-ln -s /var/run/clamav/clamd.sock /var/spool/amavisd/clamd.sock
-yum install perl-DBD-mysql
-
-
-3) Install apache, PHP5 and phpmyadmin (1 line!):
-
-yum install php php-devel php-gd php-imap php-ldap php-mysql php-odbc php-pear php-xml php-xmlrpc php-eaccelerator  php-mbstring php-mcrypt php-mhash php-mssql php-snmp php-soap php-tidy curl curl-devel perl-libwww-perl ImageMagick libxml2 libxml2-devel phpmyadmin
-
-
-4) Install pure-ftpd and quota
-
-yum install pure-ftpd quota
-
-chkconfig --levels 235 pure-ftpd on
-/etc/init.d/pure-ftpd start
-
-5) Install bind dns server
-
-yum install bind-chroot
-
-chmod 755 /var/named/
-chmod 775 /var/named/chroot/
-chmod 775 /var/named/chroot/var/
-chmod 775 /var/named/chroot/var/named/
-chmod 775 /var/named/chroot/var/run/
-chmod 777 /var/named/chroot/var/run/named/
-cd /var/named/chroot/var/named/
-ln -s ../../ chroot
-cp /usr/share/doc/bind-9.3.6/sample/var/named/named.local /var/named/chroot/var/named/named.local
-cp /usr/share/doc/bind-9.3.6/sample/var/named/named.root /var/named/chroot/var/named/named.root
-touch /var/named/chroot/etc/named.conf
-touch /var/named/chroot/etc/named.conf.local
-
-vi /var/named/chroot/etc/named.conf
-
---------------------------------------------------------------------------------------------------
-//
-// named.conf
-//
-// Provided by Red Hat bind package to configure the ISC BIND named(8) DNS
-// server as a caching only nameserver (as a localhost DNS resolver only).
-//
-// See /usr/share/doc/bind*/sample/ for example named configuration files.
-//
-
-options {
-        listen-on port 53 { 127.0.0.1; };
-        listen-on-v6 port 53 { ::1; };
-        directory       "/var/named/chroot/var/named";
-        dump-file       "/var/named/chroot/var/named/data/cache_dump.db";
-        statistics-file "/var/named/chroot/var/named/data/named_stats.txt";
-        memstatistics-file "/var/named/chroot/var/named/data/named_mem_stats.txt";
-        allow-query     { localhost; };
-        recursion yes;
-};
-
-logging {
-        channel default_debug {
-                file "data/named.run";
-                severity dynamic;
-        };
-};
-
-zone "." IN {
-        type hint;
-        file "named.root";
-};
-
-include "/var/named/chroot/etc/named.conf.local";
---------------------------------------------------------------------------------------------------
-
-chkconfig --levels 235 named on
-/etc/init.d/named start
-
-6) Install vlogger dependencies and webalizer
-
-yum install webalizer perl-DateTime-Format-HTTP perl-DateTime-Format-Builder
-
-Installing Jailkit:
-
-yum install gcc
-cd /tmp
-wget http://olivier.sessink.nl/jailkit/jailkit-2.11.tar.gz
-tar xvfz jailkit-2.11.tar.gz
-cd jailkit-2.11
-./configure
-make
-make install
-rm -rf jailkit-2.11*
-
-Edit the file /etc/sudoers
-
-vi /etc/sudoers
-
-and change the line:
-
-Defaults    requiretty
-
-to:
-
-# Defaults    requiretty
-
-
-7) Install ISPConfig 3
-
-
-cd /tmp
-wget http://www.ispconfig.org/downloads/ISPConfig-3.0.2.tar.gz
-tar xvfz ISPConfig-3.0.2.tar.gz
-cd ispconfig3_install/install/
-
-Now start the installation process by executing:
-
-php -q install.php
-
-The installer will configure all services like postfix, sasl, courier, etc. for you. A manual setup as required for ISPConfig 2 (perfect setup guides) is not necessary. To login to the ISPConfig controlpanel, open the following URL in your browser (replace the IP to match your settings!):
-
-http://192.168.0.100:8080/
-
-the default login is:
-
-user: admin
-password: admin
-
-In case you get a permission denied error from apache, please restart the apache webserver process.
-
-Optional:
-
-Install a webbased Email Client
-
-yum install squirrelmail
-
-
-
diff --git a/docs/INSTALL_DEBIAN_4.0.txt b/docs/INSTALL_DEBIAN_4.0.txt
deleted file mode 100644
index 5fd163a..0000000
--- a/docs/INSTALL_DEBIAN_4.0.txt
+++ /dev/null
@@ -1,214 +0,0 @@
-Installation
------------
-
-It is recommended to use a clean (fresh) Debian etch install where you just selected "Standard System" as the package selection during setup. Then follow the steps below to setup your server with ISPConfig 3:
-
-assign hostname (for example ispconfig)
-
-echo ispconfig.example.com > /etc/hostname
-
-vi /etc/hosts
-and add line similar but appropriate:
-127.0.0.1       localhost.localdomain   localhost
-192.168.0.100   ispconfig.example.com   ispconfig
-
-1) Add the debian volatile repository to the apt sources list:
-
-vi /etc/apt/sources.list
-
-and insert the line:
-
-deb http://volatile.debian.org/debian-volatile etch/volatile main contrib non-free
-
-Then execute these commands to insert the Debian voltaile gpg key to the apt keyring:
-
-cd /tmp
-apt-get install wget
-wget http://www.debian.org/volatile/etch-volatile.asc
-apt-key add etch-volatile.asc
-rm -f etch-volatile.asc
-
-Now we update the package list by executing:
-
-apt-get update
-
-Now Install Postfix, Courier, Saslauthd, MySQL, phpMyAdmin, ntpdate, rkhunter, binutils with the following command line (on one line!):
-
-apt-get install postfix postfix-mysql postfix-doc mysql-client mysql-server courier-authdaemon courier-authlib-mysql courier-pop courier-pop-ssl courier-imap courier-imap-ssl libsasl2 libsasl2-modules libsasl2-modules-sql sasl2-bin libpam-mysql openssl courier-maildrop getmail4 ntp ntpdate rkhunter binutils sudo
-
-Answer the questions from the package manager as follows.
-
-Create directories for web-based administration ? <-- No
-General type of configuration? <-- Internet site
-Mail name? <-- server1.mydomain.tld
- SSL certificate required <-- Ok
-
-...use your own domain name of course ;)
-
-Edit the file /etc/mysql/my.cnf
-
-vi /etc/mysql/my.cnf
-
-and comment out the line
-
-bind-address          = 127.0.0.1
-
-then restart mysql
-
-/etc/init.d/mysql restart
-
-Set the mysql database password:
-
-mysqladmin -u root password yourrootsqlpassword
-mysqladmin -h ispconfig.local -u root password yourrootsqlpassword
-
-
-2) Install Amavisd-new, Spamassassin and Clamav (1 line!):
-
-apt-get install amavisd-new spamassassin clamav clamav-daemon zoo unzip bzip2 arj nomarch lzop cabextract apt-listchanges libnet-ldap-perl libauthen-sasl-perl clamav-docs daemon libio-string-perl libio-socket-ssl-perl libnet-ident-perl zip libnet-dns-perl
-
-3) Install apache, PHP5 and phpmyadmin (1 line!):
-
-apt-get install apache2 apache2.2-common apache2-doc apache2-mpm-prefork apache2-utils libexpat1 ssl-cert libapache2-mod-php5 php5 php5-common php5-gd php5-mysql php5-imap phpmyadmin php5-cli php5-cgi libapache2-mod-fcgid
-
-Then run the following to enable the Apache modules:
-
-a2enmod suexec
-a2enmod rewrite
-a2enmod ssl
-a2enmod actions
-a2enmod include
-
-4) Install pure-ftpd and quota
-
-apt-get install pure-ftpd-common pure-ftpd-mysql quota quotatool
-
-Edit the file /etc/default/pure-ftpd-common
-
-vi /etc/default/pure-ftpd-common
-
-and change the start mode from inetd to standalone. 
-
-Edit the file /etc/inetd.conf
-
-vi /etc/inetd.conf
-
-and comment out the line for the FTP service, so it looks like this:
-
-# ftp   stream  tcp     nowait  root    /usr/sbin/tcpd /usr/sbin/pure-ftpd-wrapper
-
-Then execute:
-
-/etc/init.d/openbsd-inetd restart
-
-
-5) Install mydns
-
-apt-get install mydns-mysql
-
-What is the hostname of the machine on which the database will run? -> localhost
-What is the database name for the MyDNS database? -> mydns
-Would you like to set up the database and tables automatically? -> yes
-What is the username of the MySQL administrator? -> root
-Enter the MySQL administrator password -> yourrootsqlpassword
-Confirm this password -> yourrootsqlpassword
-What is the MyDNS username? -> mydns
-What is the MyDNS user password? -> mydnspassword
-
-The mydns installer is a bit tricky, you will have to select to create a new database for mydns and use a existing mysql user, e.g. the mysql root user. This database is only to fullfill the requirements for the debian pacakge during installation and will not be used by ISPConfig later. ISPConfig will automatically change the mydns configuration files to use the ISPConfig database.
-
-
-6) Install vlogger and webalizer
-
-apt-get install vlogger webalizer
-
-7) Install Jailkit (optional, only needed if you want to use chrroting for SSH users)
-
-apt-get install build-essential autoconf automake1.9 libtool flex bison debhelper
-cd /tmp
-wget http://olivier.sessink.nl/jailkit/jailkit-2.7.tar.gz
-tar xvfz jailkit-2.7.tar.gz
-cd jailkit-2.7
-./debian/rules binary
-cd ..
-dpkg -i jailkit_2.7-1_i386.deb
-rm -rf jailkit-2.7*
-
-8) Install fail2ban (optional but recomended, because the monitor tries to show the log)
-More info at: http://www.howtoforge.com/fail2ban_debian_etch
-
-apt-get install fail2ban
-
-
-9) Install ISPConfig 3
-
-There are two possile scenarios, but not both:
-9.1) Install the latest released version 
-9.2) Install directly from SVN
-
-9.1) Installation of last version from tar.gz
-
-  cd /tmp
-  wget http://www.ispconfig.org/downloads/ISPConfig-3.0.0.9-rc2.tar.gz
-  tar xvfz ISPConfig-3.0.0.9-rc2.tar.gz
-  cd ispconfig3_install/install/
-
-9.2) Installation from SVN
-
-  apt-get install subversion
-  cd /tmp
-  svn export svn://svn.ispconfig.org/ispconfig3/trunk/
-  cd trunk/install
-
-
-9.1+9.2) Now proceed with the ISPConfig installation.
-
-Now start the installation process by executing:
-
-php -q install.php
-
-The installer will configure all services like postfix, sasl, courier, etc. for you. A manual setup as required for ISPConfig 2 (perfect setup guides) is not necessary. To login to the ISPConfig controlpanel, open the following URL in your browser (replace the IP to match your settings!):
-
-http://192.168.0.100:8080/
-
-the default login is:
-
-user: admin
-password: admin
-
-In case you get a permission denied error from apache, please restart the apache webserver process.
-
-Optional:
-
-Install a webbased Email Client
-
-apt-get install squirrelmail
-ln -s /usr/share/squirrelmail/ /var/www/webmail
-
-Access squirrelmail:
-
-http://192.168.0.100/webmail
-
-
-To configure squirrelmail, run:
-
-/usr/sbin/squirrelmail-configure
-
-----------------------------------------------------------------------------------------------------------
-
-Hints:
-
-debian 4.0 under openvz:
-
-VPSID=101
-for CAP in CHOWN DAC_READ_SEARCH SETGID SETUID NET_BIND_SERVICE NET_ADMIN SYS_CHROOT SYS_NICE CHOWN DAC_READ_SEARCH SETGID SETUID NET_BIND_SERVICE NET_ADMIN SYS_CHROOT SYS_NICE
-do
-  vzctl set $VPSID --capability ${CAP}:on --save
-done
-
-----------------------------------------------------------------------------------------------------------
-
-Optional packages recommended:
-
-denyhosts - a utility to help sys admins thwart ssh crackers
-rsync - fast remote file copy program (for backup)
diff --git a/docs/INSTALL_DEBIAN_5.0_courier_mydns.txt b/docs/INSTALL_DEBIAN_5.0_courier_mydns.txt
deleted file mode 100644
index e75ab3a..0000000
--- a/docs/INSTALL_DEBIAN_5.0_courier_mydns.txt
+++ /dev/null
@@ -1,370 +0,0 @@
-Installation
--------------
-
-# It is recommended to use a clean (fresh) Debian Lenny install where you just selected "Standard System" at the package selection during
-# setup (tasksel). Then follow the steps below to setup your server with ISPConfig 3. In this guide "vi" is used as text editor, but
-# you can use whatever you prefer. You should be root for doing all of this.
-
-
-# Check we have Fully Qualified Domain Name
-
-/bin/hostname
-
-# it should return something like "ispconfig.example.com"
-# if not, then we assign a hostname (for example ispconfig):
-
-echo ispconfig.example.com > /etc/hostname
-
-vi /etc/hosts
-
-# and add lines similar but appropriate:
-
-127.0.0.1       localhost.localdomain   localhost
-192.168.0.100   ispconfig.example.com   ispconfig
-
-# Run:
-
-/etc/init.d/hostname.sh
-
-# enable the Debian Volatile repository to get an updated ClamAV version
-
-echo "deb http://volatile.debian.org/debian-volatile lenny/volatile main contrib non-free" >> /etc/apt/sources.list.d/volatile.list
-apt-get update
-
-# Some optional choices
-
-opt0.1) Optionally install SSH-server to get remote shell
-
-apt-get install openssh-server
-
-opt0.2) Optionally, if you are not running inside a virtual machine, you can set server clocksync via NTP. Virtual guests get this from the host.
-
-apt-get -y install ntp ntpdate
-
-opt0.3) Optionally if you want vi editor improvement
-
-apt-get -y install vim-nox
-
-
-# Next is the real deal
-
-1) Install Postfix, Courier, Saslauthd, MySQL, phpMyAdmin, rkhunter, binutils with the following command line (on one line!):
-
-apt-get -y install postfix postfix-mysql postfix-doc mysql-client mysql-server courier-authdaemon courier-authlib-mysql courier-pop courier-pop-ssl courier-imap courier-imap-ssl libsasl2-2 libsasl2-modules libsasl2-modules-sql sasl2-bin libpam-mysql openssl courier-maildrop getmail4 rkhunter binutils
-
-# Answer the questions from the package manager as follows.
-
-Create directories for web-based administration ? <-- No
-General type of configuration? <-- Internet site
-Mail name? <-- server1.mydomain.tld
- SSL certificate required <-- Ok
-
-# ...use your own domain name of course ;)
-
-
-
-# Edit the file /etc/mysql/my.cnf
-
-vi /etc/mysql/my.cnf
-
-# and change the line:
-
-bind-address          = 127.0.0.1
-
-to:
-
-#bind-address          = 127.0.0.1
-
-# then restart mysql
-
-/etc/init.d/mysql restart
-
-2) Install Amavisd-new, Spamassassin and ClamAV (1 line!):
-
-apt-get -y install amavisd-new spamassassin clamav clamav-daemon zoo unzip bzip2 arj nomarch lzop cabextract apt-listchanges libnet-ldap-perl libauthen-sasl-perl clamav-docs daemon libio-string-perl libio-socket-ssl-perl libnet-ident-perl zip libnet-dns-perl sudo
-
-# During the installation, the SSL certificates for IMAP-SSL and POP3-SSL are created with the hostname localhost. To change this to the correct hostname (server1.example.com in this tutorial), delete the certificates...
-
-cd /etc/courier
-rm -f /etc/courier/imapd.pem
-rm -f /etc/courier/pop3d.pem
-
-# ... and modify the following two files; replace CN=localhost with CN=server1.example.com (you can also modify the other values, if necessary):
-
-vi /etc/courier/imapd.cnf
-
-[...]
-CN=server1.example.com
-[...]
-
-vi /etc/courier/pop3d.cnf
-
-[...]
-CN=server1.example.com
-[...]
-
-# Then recreate the certificates...
-
-mkimapdcert
-mkpop3dcert
-
-# ... and restart Courier-IMAP-SSL and Courier-POP3-SSL:
-
-/etc/init.d/courier-imap-ssl restart
-/etc/init.d/courier-pop-ssl restart 
-
-
-3) Install Apache, PHP5, PhpMyAdmin, better fastCGI, suexec, Pear and mcrypt (1 line!):
-
-apt-get -y install apache2 apache2.2-common apache2-doc apache2-mpm-prefork apache2-utils libexpat1 ssl-cert libapache2-mod-php5 php5 php5-common php5-gd php5-mysql php5-imap phpmyadmin php5-cli php5-cgi libapache2-mod-fcgid apache2-suexec php-pear php-auth php5-mcrypt mcrypt php5-imagick imagemagick libapache2-mod-suphp libopenssl-ruby libapache2-mod-ruby
-
-
-# When phpMyAdmin is asking wether to configure itself automatically, select "Apache2"
-
-# Then run the following to enable the Apache modules suexec, rewrite and ssl:
-
-a2enmod suexec rewrite ssl actions include ruby
-
-# If you want to use WebDAV then run the following to enable the Apache webdav modules:
-
-a2enmod dav_fs dav auth_digest
-
-# restart Apache before continuing
-
-/etc/init.d/apache2 restart
- 
-
-4) Install pure-ftpd and quota
-
-apt-get -y install pure-ftpd-common pure-ftpd-mysql quota quotatool
-
-# Optional: Enable TLS in pureftpd
-echo 1 > /etc/pure-ftpd/conf/TLS
-mkdir -p /etc/ssl/private/
-openssl req -x509 -nodes -newkey rsa:1024 -keyout /etc/ssl/private/pure-ftpd.pem  -out /etc/ssl/private/pure-ftpd.pem
-chmod 600 /etc/ssl/private/pure-ftpd.pem 
-
-
-# Edit /etc/fstab. Mine looks like this (I added ,usrquota,grpquota to the partition with the mount point /):
-
-vi /etc/fstab
-
-----------------------------------------------------------------------------------------------
-# /etc/fstab: static file system information.
-#
-# <file system> <mount point>   <type>  <options>       <dump>  <pass>
-proc            /proc           proc    defaults        0       0
-/dev/sda1       /               ext3    errors=remount-ro,usrquota,grpquota 0       1
-/dev/sda5       none            swap    sw              0       0
-/dev/hda        /media/cdrom0   udf,iso9660 user,noauto     0       0
-/dev/fd0        /media/floppy0  auto    rw,user,noauto  0       0
-----------------------------------------------------------------------------------------------
-
-# To enable quota, run these commands:
-
-touch /quota.user /quota.group
-chmod 600 /quota.*
-mount -o remount /
-quotacheck -avugm
-quotaon -avug
-
-
-5) Install MyDNS
-
-apt-get install g++ libc6 gcc gawk make texinfo libmysqlclient15-dev
-
-cd /tmp
-wget http://heanet.dl.sourceforge.net/sourceforge/mydns-ng/mydns-1.2.8.27.tar.gz
-tar xvfz mydns-1.2.8.27.tar.gz
-cd mydns-1.2.8
-./configure
-make
-make install
-
-# Now create the start / stop script for mydns:
-
-vi /etc/init.d/mydns
-
-# and enter the following lines (between the ----- lines):
-
-------------------------------------------------------
-#! /bin/sh
-#
-# mydns         Start the MyDNS server
-#
-# Author:       Philipp Kern <phil@philkern.de>.
-#               Based upon skeleton 1.9.4 by Miquel van Smoorenburg
-#               <miquels@cistron.nl> and Ian Murdock <imurdock@gnu.ai.mit.edu>.
-#
-### BEGIN INIT INFO
-# Provides:          MyDNS
-# Required-Start:    $syslog
-# Should-Start:
-# Required-Stop:
-# Should-Stop:
-# Default-Start:     2 3 4 5
-# Default-Stop:      0 1 6
-# Short-Description: MyDNS Server
-# Description:       MyDNS DNS Server
-### END INIT INFO
-
-set -e
-
-PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
-DAEMON=/usr/local/sbin/mydns
-NAME=mydns
-DESC="DNS server"
-
-SCRIPTNAME=/etc/init.d/$NAME
-
-# Gracefully exit if the package has been removed.
-test -x $DAEMON || exit 0
-
-case "$1" in
-  start)
-        echo -n "Starting $DESC: $NAME"
-        start-stop-daemon --start --quiet \
-                --exec $DAEMON -- -b
-        echo "."
-        ;;
-  stop)
-        echo -n "Stopping $DESC: $NAME"
-        start-stop-daemon --stop --oknodo --quiet \
-                --exec $DAEMON
-        echo "."
-        ;;
-  reload|force-reload)
-        echo -n "Reloading $DESC configuration..."
-        start-stop-daemon --stop --signal HUP --quiet \
-                --exec $DAEMON
-        echo "done."
-        ;;
-  restart)
-        echo -n "Restarting $DESC: $NAME"
-        start-stop-daemon --stop --quiet --oknodo \
-                --exec $DAEMON
-        sleep 1
-        start-stop-daemon --start --quiet \
-                --exec $DAEMON -- -b
-        echo "."
-        ;;
-  *)
-        echo "Usage: $SCRIPTNAME {start|stop|restart|reload|force-reload}" >&2
-        exit 1
-        ;;
-esac
-
-exit 0
----------------------------------------------------------------------------
-
-# now execute:
-
-chmod +x /etc/init.d/mydns
-update-rc.d mydns defaults
-
-6) Install vlogger and webalizer awstats geoip-bin
-
-apt-get -y install vlogger webalizer awstats
-
-mkdir /usr/share/awstats/tools
-cp -prf /usr/share/doc/awstats/examples/awstats_buildstaticpages.pl /usr/share/awstats/tools/awstats_buildstaticpages.pl
-
-
-
-7) Install Jailkit (optional, only needed if you want to use chrooting for SSH users)
-
-apt-get -y install build-essential autoconf automake1.9 libtool flex bison debhelper
-cd /tmp
-wget http://olivier.sessink.nl/jailkit/jailkit-2.11.tar.gz
-tar xvfz jailkit-2.11.tar.gz
-cd jailkit-2.11
-./debian/rules binary
-cd ..
-dpkg -i jailkit_2.11-1_*.deb
-rm -rf jailkit-2.11*
-
-8) Install fail2ban (optional but recomended, because the monitor tries to show the log)
-More info at: http://www.howtoforge.com/fail2ban_debian_etch
-
-apt-get -y install fail2ban
-
-9) Install ISPConfig 3
-
-cd /tmp
-wget http://www.ispconfig.org/downloads/ISPConfig-3.0.2.tar.gz
-tar xvfz ISPConfig-3.0.2.tar.gz
-cd ispconfig3_install/install/
-
-# Now start the installation process by executing:
-
-php -q install.php
-
-# The installer will configure all services like postfix, sasl, courier, etc. for you. A manual setup as required for ISPConfig 2 (perfect setup guides) is not necessary. To login to the ISPConfig controlpanel, open the following URL in your browser (replace the IP to match your settings!):
-
-http://192.168.0.100:8080/
-
-# the default login is:
-
-user: admin
-password: admin
-
-# In case you get a permission denied error from apache, please restart the apache webserver process.
-
-
-
-----------------------------------------------------------------------------------------------------------
-Optional:
-
-Install a webbased Email Client
-
-apt-get install squirrelmail
-ln -s /usr/share/squirrelmail/ /var/www/webmail
-
-Access squirrelmail:
-
-http://192.168.0.100/webmail
-
-
-To configure squirrelmail, run:
-
-/usr/sbin/squirrelmail-configure
-
-----------------------------------------------------------------------------------------------------------
-
-Hints:
-
-debian 5.0 under openvz:
-
-VPSID=101
-for CAP in CHOWN DAC_READ_SEARCH SETGID SETUID NET_BIND_SERVICE NET_ADMIN SYS_CHROOT SYS_NICE CHOWN DAC_READ_SEARCH SETGID SETUID NET_BIND_SERVICE NET_ADMIN SYS_CHROOT SYS_NICE
-do
-  vzctl set $VPSID --capability ${CAP}:on --save
-done
-
-----------------------------------------------------------------------------------------------------------
-
-
-Optional recommended packages:
-
-denyhosts - a utility to help sys admins thwart ssh crackers
-rsync - fast remote file copy program (for backup)
-
------------------------------------------------------------------------------------------------------------
-
-
-Possible errors and their solutions
-------------------------------------
-
-pureftpd login does not work. Take a look at the syslog, if you find an error message like this:
-Mar 24 16:26:28 ispconfig pure-ftpd: (?@?) [ERROR] Sorry, invalid address given
-
-then pureftpd is not able to resolve the hostname. Name resolving can be disabled with these commands:
-
-echo 'yes' > /etc/pure-ftpd/conf/DontResolve
-/etc/init.d/pure-ftpd-mysql restart
-
-
-
-
-
-
diff --git a/docs/INSTALL_DEBIAN_5.0_dovecot_bind.txt b/docs/INSTALL_DEBIAN_5.0_dovecot_bind.txt
deleted file mode 100644
index b7f83ce..0000000
--- a/docs/INSTALL_DEBIAN_5.0_dovecot_bind.txt
+++ /dev/null
@@ -1,250 +0,0 @@
-Installation
--------------
-
-# It is recommended to use a clean (fresh) Debian Lenny install where you just selected "Standard System" at the package selection during
-# setup (tasksel). Then follow the steps below to setup your server with ISPConfig 3. In this guide "vi" is used as text editor, but
-# you can use whatever you prefer. You should be root for doing all of this.
-
-
-# Check we have Fully Qualified Domain Name
-
-/bin/hostname
-
-# it should return something like "ispconfig.example.com"
-# if not, then we assign a hostname (for example ispconfig):
-
-echo ispconfig.example.com > /etc/hostname
-
-vi /etc/hosts
-
-# and add lines similar but appropriate:
-
-127.0.0.1       localhost.localdomain   localhost
-192.168.0.100   ispconfig.example.com   ispconfig
-
-# Run:
-
-/etc/init.d/hostname.sh
-
-# enable the Debian Volatile repository to get an updated ClamAV version
-
-echo "deb http://volatile.debian.org/debian-volatile lenny/volatile main contrib non-free" >> /etc/apt/sources.list.d/volatile.list
-apt-get update
-
-# Some optional choices
-
-opt0.1) Optionally install SSH-server to get remote shell
-
-apt-get install openssh-server
-
-opt0.2) Optionally, if you are not running inside a virtual machine, you can set server clocksync via NTP. Virtual guests get this from the host.
-
-apt-get -y install ntp ntpdate
-
-opt0.3) Optionally if you want vi editor improvement
-
-apt-get -y install vim-nox
-
-
-# Next is the real deal
-
-1) Install Postfix, Dovecot, MySQL, phpMyAdmin, rkhunter, binutils with the following command line (on one line!):
-
-apt-get -y install postfix postfix-mysql postfix-doc mysql-client mysql-server openssl getmail4 rkhunter binutils dovecot-imapd dovecot-pop3d sudo
-
-# Answer the questions from the package manager as follows.
-
-Create directories for web-based administration ? <-- No
-General type of configuration? <-- Internet site
-Mail name? <-- server1.mydomain.tld
- SSL certificate required <-- Ok
-
-# ...use your own domain name of course ;)
-
-
-
-# Edit the file /etc/mysql/my.cnf
-
-vi /etc/mysql/my.cnf
-
-# and change the line:
-
-bind-address          = 127.0.0.1
-
-to:
-
-#bind-address          = 127.0.0.1
-
-# then restart mysql
-
-/etc/init.d/mysql restart
-
-2) Install Amavisd-new, Spamassassin and ClamAV (1 line!):
-
-apt-get -y install amavisd-new spamassassin clamav clamav-daemon zoo unzip bzip2 arj nomarch lzop cabextract apt-listchanges libnet-ldap-perl libauthen-sasl-perl clamav-docs daemon libio-string-perl libio-socket-ssl-perl libnet-ident-perl zip libnet-dns-perl
-
-
-3) Install Apache, PHP5, phpmyadmin, better fastCGI, suexec, Pear and mcrypt (1 line!):
-
-apt-get -y install apache2 apache2.2-common apache2-doc apache2-mpm-prefork apache2-utils libexpat1 ssl-cert libapache2-mod-php5 php5 php5-common php5-gd php5-mysql php5-imap phpmyadmin php5-cli php5-cgi libapache2-mod-fcgid apache2-suexec php-pear php-auth php5-mcrypt mcrypt php5-imagick imagemagick libapache2-mod-suphp libopenssl-ruby libapache2-mod-ruby
-
-
-# When phpMyAdmin is asking wether to configure itself automatically, select "Apache2"
-
-# Then run the following to enable the Apache modules suexec, rewrite and ssl:
-
-a2enmod suexec rewrite ssl actions include ruby
-
-# If you want to use WebDAV then run the following to enable the Apache webdav modules:
-
-a2enmod dav_fs dav auth_digest
-
-# restart Apache before continuing
-
-/etc/init.d/apache2 restart
- 
-
-4) Install pure-ftpd and quota
-
-apt-get -y install pure-ftpd-common pure-ftpd-mysql quota quotatool
-
-# Optional: Enable TLS in pureftpd
-echo 1 > /etc/pure-ftpd/conf/TLS
-mkdir -p /etc/ssl/private/
-openssl req -x509 -nodes -newkey rsa:1024 -keyout /etc/ssl/private/pure-ftpd.pem  -out /etc/ssl/private/pure-ftpd.pem
-chmod 600 /etc/ssl/private/pure-ftpd.pem 
-
-
-# Edit /etc/fstab. Mine looks like this (I added ,usrquota,grpquota to the partition with the mount point /):
-
-vi /etc/fstab
-
-----------------------------------------------------------------------------------------------
-# /etc/fstab: static file system information.
-#
-# <file system> <mount point>   <type>  <options>       <dump>  <pass>
-proc            /proc           proc    defaults        0       0
-/dev/sda1       /               ext3    errors=remount-ro,usrquota,grpquota 0       1
-/dev/sda5       none            swap    sw              0       0
-/dev/hda        /media/cdrom0   udf,iso9660 user,noauto     0       0
-/dev/fd0        /media/floppy0  auto    rw,user,noauto  0       0
-----------------------------------------------------------------------------------------------
-
-# To enable quota, run these commands:
-
-touch /quota.user /quota.group
-chmod 600 /quota.*
-mount -o remount /
-quotacheck -avugm
-quotaon -avug
-
-
-5) Install BIND DNS Server
-
-apt-get -y install bind9 dnsutils
-
-6) Install vlogger and webalizer
-
-apt-get -y install vlogger webalizer awstats geoip-bin
-
-mkdir /usr/share/awstats/tools
-cp -prf /usr/share/doc/awstats/examples/awstats_buildstaticpages.pl /usr/share/awstats/tools/awstats_buildstaticpages.pl
-
-
-7) Install Jailkit (optional, only needed if you want to use chrooting for SSH users)
-
-apt-get -y install build-essential autoconf automake1.9 libtool flex bison debhelper
-cd /tmp
-wget http://olivier.sessink.nl/jailkit/jailkit-2.12.tar.gz
-tar xvfz jailkit-2.12.tar.gz
-cd jailkit-2.12
-./debian/rules binary
-cd ..
-dpkg -i jailkit_2.12-1_*.deb
-rm -rf jailkit-2.12*
-
-8) Install fail2ban (optional but recomended, because the monitor tries to show the log)
-More info at: http://www.howtoforge.com/fail2ban_debian_etch
-
-apt-get -y install fail2ban
-
-9) Install ISPConfig 3
-
-cd /tmp
-wget http://www.ispconfig.org/downloads/ISPConfig-3.0.2.2.tar.gz
-tar xvfz ISPConfig-3.0.2.2.tar.gz
-cd ispconfig3_install/install/
-
-# Now start the installation process by executing:
-
-php -q install.php
-
-# The installer will configure all services like postfix, sasl, courier, etc. for you. A manual setup as required for ISPConfig 2 (perfect setup guides) is not necessary. To login to the ISPConfig controlpanel, open the following URL in your browser (replace the IP to match your settings!):
-
-http://192.168.0.100:8080/
-
-# the default login is:
-
-user: admin
-password: admin
-
-# In case you get a permission denied error from apache, please restart the apache webserver process.
-
-
-
-----------------------------------------------------------------------------------------------------------
-Optional:
-
-Install a webbased Email Client
-
-apt-get install squirrelmail
-ln -s /usr/share/squirrelmail/ /var/www/webmail
-
-Access squirrelmail:
-
-http://192.168.0.100/webmail
-
-
-To configure squirrelmail, run:
-
-/usr/sbin/squirrelmail-configure
-
-----------------------------------------------------------------------------------------------------------
-
-Hints:
-
-debian 5.0 under openvz:
-
-VPSID=101
-for CAP in CHOWN DAC_READ_SEARCH SETGID SETUID NET_BIND_SERVICE NET_ADMIN SYS_CHROOT SYS_NICE CHOWN DAC_READ_SEARCH SETGID SETUID NET_BIND_SERVICE NET_ADMIN SYS_CHROOT SYS_NICE
-do
-  vzctl set $VPSID --capability ${CAP}:on --save
-done
-
-----------------------------------------------------------------------------------------------------------
-
-
-Optional recommended packages:
-
-denyhosts - a utility to help sys admins thwart ssh crackers
-rsync - fast remote file copy program (for backup)
-
------------------------------------------------------------------------------------------------------------
-
-
-Possible errors and their solutions
-------------------------------------
-
-pureftpd login does not work. Take a look at the syslog, if you find an error message like this:
-Mar 24 16:26:28 ispconfig pure-ftpd: (?@?) [ERROR] Sorry, invalid address given
-
-then pureftpd is not able to resolve the hostname. Name resolving can be disabled with these commands:
-
-echo 'yes' > /etc/pure-ftpd/conf/DontResolve
-/etc/init.d/pure-ftpd-mysql restart
-
-
-
-
-
-
diff --git a/docs/INSTALL_DEBIAN_5.0_multiserver.txt b/docs/INSTALL_DEBIAN_5.0_multiserver.txt
deleted file mode 100644
index fbc6ea8..0000000
--- a/docs/INSTALL_DEBIAN_5.0_multiserver.txt
+++ /dev/null
@@ -1,47 +0,0 @@
-
-This guide is incomplete. Work in progress.
-
-
-Installing the webserver
---------------------------------------------------
-
-apt-get install mysql-server
-apt-get install apache2 apache2.2-common apache2-doc apache2-mpm-prefork apache2-utils libexpat1 ssl-cert libapache2-mod-php5 php5 php5-common php5-gd php5-mysql php5-imap phpmyadmin php5-cli php5-cgi libapache2-mod-fcgid apache2-suexec php-pear php-auth php5-mcrypt mcrypt php5-imagick imagemagick libapache2-mod-suphp sudo 
-
-a2enmod suexec rewrite ssl actions include
-
-# If you want webdav then run the following to enable the Apache webdav modules:
-
-a2enmod dav_fs 
-a2enmod dav auth_digest
-
-
-apt-get install pure-ftpd-common pure-ftpd-mysql quota quotatool
-
-vi /etc/default/pure-ftpd-common
-
-... and change the start mode from inetd to standalone and set VIRTUALCHROOT=true:
-
-[...]
-STANDALONE_OR_INETD=standalone
-[...]
-VIRTUALCHROOT=true
-[...]
-
-apt-get install vlogger webalizer awstats geoip-bin
-
-mkdir /usr/share/awstats/tools
-cp -prf /usr/share/doc/awstats/examples/awstats_buildstaticpages.pl /usr/share/awstats/tools/awstats_buildstaticpages.pl
-
-apt-get install gcc make
-
-apt-get install postfix
-
-
-
-Installing the DNS Server
---------------------------------------------------
-
-apt-get install bind9 dnsutils
-apt-get install mysql-server
-apt-get install php5-cli php5-mysql php5-mcrypt
\ No newline at end of file
diff --git a/docs/INSTALL_DEBIAN_6.0_courier_mydns.txt b/docs/INSTALL_DEBIAN_6.0_courier_mydns.txt
deleted file mode 100644
index 31083a9..0000000
--- a/docs/INSTALL_DEBIAN_6.0_courier_mydns.txt
+++ /dev/null
@@ -1,399 +0,0 @@
-Installation
--------------
-
-# It is recommended to use a clean (fresh) Debian Squeeze 6.0 install where you just selected "Standard System" at the package selection during
-# setup (tasksel). Journaled quota which this guide uses works on ext3 and ext4 file systems, so format disks either one if you are going to use
-# quota (recommended). Then follow the steps below to setup your server with ISPConfig 3. In this guide "vi" is used as text editor, but
-# you can use whatever you prefer. You should be root for doing all of this.
-
-
-# Check we have Fully Qualified Domain Name
-
-/bin/hostname
-
-# it should return something like "ispconfig.example.com"
-# if not, then we assign a hostname (for example ispconfig):
-
-echo ispconfig.example.com > /etc/hostname
-
-vi /etc/hosts
-
-# and add lines similar but appropriate:
-
-127.0.0.1       localhost.localdomain   localhost
-192.168.0.100   ispconfig.example.com   ispconfig
-
-
-
-# Some optional choices
-
-opt0.1) Optionally install SSH-server to get remote shell
-
-apt-get install openssh-server
-
-opt0.2) Optionally, if you are not running inside a virtual machine, you can set server clocksync via NTP. Virtual guests get this from the host.
-
-apt-get -y install ntp ntpdate
-
-opt0.3) Optionally if you want vi editor improvement
-
-apt-get -y install vim-nox
-
-
-# Next is the real deal
-
-1) Install Postfix, Courier, Saslauthd, MySQL, phpMyAdmin, rkhunter, binutils with the following command line (on one line!):
-
-apt-get -y install postfix postfix-mysql postfix-doc mysql-client mysql-server courier-authdaemon courier-pop courier-pop-ssl courier-authlib-mysql courier-imap courier-imap-ssl libsasl2-2 libsasl2-modules libsasl2-modules-sql sasl2-bin libpam-mysql openssl courier-maildrop getmail4 rkhunter binutils sudo
-
-# Answer the questions from the package manager as follows.
-
-Create directories for web-based administration ? <-- No
-General type of configuration? <-- Internet site
-Mail name? <-- server1.mydomain.tld
- SSL certificate required <-- Ok
-
-# ...use your own domain name of course ;)
-
-
-
-# Edit the file /etc/mysql/my.cnf
-
-vi /etc/mysql/my.cnf
-
-# and change the line:
-
-bind-address          = 127.0.0.1
-
-to:
-
-#bind-address          = 127.0.0.1
-
-# then restart mysql
-
-/etc/init.d/mysql restart
-
-2) Install Amavisd-new, Spamassassin and ClamAV (1 line!):
-
-apt-get -y install amavisd-new spamassassin clamav clamav-daemon zoo unzip bzip2 arj nomarch lzop cabextract apt-listchanges libnet-ldap-perl libauthen-sasl-perl clamav-docs daemon libio-string-perl libio-socket-ssl-perl libnet-ident-perl zip libnet-dns-perl
-#this is necessary? libnet-ldap-perl
-
-# During the installation, the SSL certificates for IMAP-SSL and POP3-SSL are created with the hostname localhost. To change this to the correct hostname (server1.example.com in this tutorial), delete the certificates...
-
-cd /etc/courier
-rm -f /etc/courier/imapd.pem
-rm -f /etc/courier/pop3d.pem
-
-# ... and modify the following two files; replace CN=localhost with CN=server1.example.com (you can also modify the other values, if necessary):
-
-vi /etc/courier/imapd.cnf
-
-[...]
-CN=server1.example.com
-[...]
-
-vi /etc/courier/pop3d.cnf
-
-[...]
-CN=server1.example.com
-[...]
-
-# Then recreate the certificates...
-
-mkimapdcert
-mkpop3dcert
-
-# ... and restart Courier-IMAP-SSL and Courier-POP3-SSL:
-
-/etc/init.d/courier-imap-ssl restart
-/etc/init.d/courier-pop-ssl restart 
-
-
-3) Install Apache, PHP5, PhpMyAdmin, better fastCGI, suexec, Pear and mcrypt (1 line!):
-
-apt-get -y install apache2 apache2.2-common apache2-doc apache2-mpm-prefork apache2-utils libexpat1 ssl-cert libapache2-mod-php5 php5 php5-common php5-gd php5-mysql php5-imap phpmyadmin php5-cli php5-cgi libapache2-mod-fcgid apache2-suexec php-pear php-auth php5-mcrypt mcrypt imagemagick libapache2-mod-suphp libopenssl-ruby libapache2-mod-ruby
-
-#this package is actual missed on official squeeze repository: php5-imagick
-
-# When phpMyAdmin is asking wether to configure itself automatically, select "Apache2"
-
-# Then run the following to enable the Apache modules suexec, rewrite and ssl:
-
-a2enmod suexec rewrite ssl actions include ruby
-
-# If you want to use WebDAV then run the following to enable the Apache webdav modules:
-
-a2enmod dav_fs dav auth_digest
-
-# restart Apache before continuing
-
-/etc/init.d/apache2 restart
- 
-
-4) Install pure-ftpd and quota
-
-apt-get -y install pure-ftpd-common pure-ftpd-mysql quota quotatool
-
-# Optional: Some additional settings for pureftpd
-
-echo "yes" > /etc/pure-ftpd/conf/DisplayDotFiles
-
-# Enable TLS in pureftpd
-echo 1 > /etc/pure-ftpd/conf/TLS
-mkdir -p /etc/ssl/private/
-openssl req -x509 -nodes -newkey rsa:1024 -keyout /etc/ssl/private/pure-ftpd.pem  -out /etc/ssl/private/pure-ftpd.pem
-chmod 600 /etc/ssl/private/pure-ftpd.pem 
-
-
-# Edit /etc/fstab. Add "usrjquota=aquota.user,grpjquota=aquota.group,jqfmt=vfsv0" to the partition where you want to use quota.
-# Mine looks like this (I want to use quota on the / partition):
-
-vi /etc/fstab
-
-----------------------------------------------------------------------------------------------
-# /etc/fstab: static file system information.
-#
-# <file system> <mount point>   <type>  <options>       <dump>  <pass>
-proc            /proc           proc    defaults        0       0
-/dev/sda1       /               ext3    errors=remount-ro,usrjquota=aquota.user,grpjquota=aquota.group,jqfmt=vfsv0	0       1
-/dev/sda5       none            swap    sw              0       0
-/dev/hda        /media/cdrom0   udf,iso9660 user,noauto     0       0
-/dev/fd0        /media/floppy0  auto    rw,user,noauto  0       0
-----------------------------------------------------------------------------------------------
-
-# To enable quota, run these commands:
-
-touch /aquota.user /aquota.group
-chmod 600 /aquota.*
-mount -o remount /
-quotacheck -F vfsv0 -afcvdugm
-quotaon -avug
-
-
-5) Install MyDNS
-
-apt-get install g++ libc6 gcc gawk make texinfo libmysqlclient-dev
-
-cd /tmp
-wget http://heanet.dl.sourceforge.net/sourceforge/mydns-ng/mydns-1.2.8.27.tar.gz
-tar xvfz mydns-1.2.8.27.tar.gz
-cd mydns-1.2.8
-./configure
-make
-make install
-
-# Now create the start / stop script for mydns:
-
-vi /etc/init.d/mydns
-
-# and enter the following lines (between the ----- lines):
-
-------------------------------------------------------
-#! /bin/sh
-#
-# mydns         Start the MyDNS server
-#
-# Author:       Philipp Kern <phil@philkern.de>.
-#               Based upon skeleton 1.9.4 by Miquel van Smoorenburg
-#               <miquels@cistron.nl> and Ian Murdock <imurdock@gnu.ai.mit.edu>.
-#
-### BEGIN INIT INFO
-# Provides:          MyDNS
-# Required-Start:    $syslog
-# Should-Start:
-# Required-Stop:
-# Should-Stop:
-# Default-Start:     2 3 4 5
-# Default-Stop:      0 1 6
-# Short-Description: MyDNS Server
-# Description:       MyDNS DNS Server
-### END INIT INFO
-
-set -e
-
-PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
-DAEMON=/usr/local/sbin/mydns
-NAME=mydns
-DESC="DNS server"
-
-SCRIPTNAME=/etc/init.d/$NAME
-
-# Gracefully exit if the package has been removed.
-test -x $DAEMON || exit 0
-
-case "$1" in
-  start)
-        echo -n "Starting $DESC: $NAME"
-        start-stop-daemon --start --quiet \
-                --exec $DAEMON -- -b
-        echo "."
-        ;;
-  stop)
-        echo -n "Stopping $DESC: $NAME"
-        start-stop-daemon --stop --oknodo --quiet \
-                --exec $DAEMON
-        echo "."
-        ;;
-  reload|force-reload)
-        echo -n "Reloading $DESC configuration..."
-        start-stop-daemon --stop --signal HUP --quiet \
-                --exec $DAEMON
-        echo "done."
-        ;;
-  restart)
-        echo -n "Restarting $DESC: $NAME"
-        start-stop-daemon --stop --quiet --oknodo \
-                --exec $DAEMON
-        sleep 1
-        start-stop-daemon --start --quiet \
-                --exec $DAEMON -- -b
-        echo "."
-        ;;
-  *)
-        echo "Usage: $SCRIPTNAME {start|stop|restart|reload|force-reload}" >&2
-        exit 1
-        ;;
-esac
-
-exit 0
----------------------------------------------------------------------------
-
-# now execute:
-
-chmod +x /etc/init.d/mydns
-update-rc.d mydns defaults
-
-6) Install vlogger and webalizer
-
-apt-get -y install vlogger webalizer awstats
-
-mkdir /usr/share/awstats/tools
-cp -prf /usr/share/doc/awstats/examples/awstats_buildstaticpages.pl /usr/share/awstats/tools/awstats_buildstaticpages.pl
-
-
-7) Install Jailkit (optional, only needed if you want to use chrooting for SSH users)
-
-apt-get -y install build-essential autoconf automake1.9 libtool flex bison debhelper
-cd /tmp
-wget http://olivier.sessink.nl/jailkit/jailkit-2.13.tar.gz
-tar xvfz jailkit-2.13.tar.gz
-cd jailkit-2.13
-./configure
-make
-make install
-cd ..
-rm -rf jailkit-2.13*
-
-8) Install fail2ban (optional but recomended, because the monitor tries to show the log)
-More info at: http://www.howtoforge.com/fail2ban_debian_etch
-
-apt-get -y install fail2ban
-
-9) Install ISPConfig 3
-
-# There are two possile scenarios, but not both:
-9.1) Install the latest released version 
-9.2) Install directly from SVN
-
-9.1) Installation of last version from tar.gz
-
-  cd /tmp
-  wget http://www.ispconfig.org/downloads/ISPConfig-3.0.2.tar.gz
-  tar xvfz ISPConfig-3.0.2.tar.gz
-  cd ispconfig3_install/install/
-
-9.2) Installation from SVN
-
-  apt-get install subversion
-  cd /tmp
-  svn export svn://svn.ispconfig.org/ispconfig3/trunk/
-  cd trunk/install
-
-
-9.1+9.2) Now proceed with the ISPConfig installation.
-
-# Now start the installation process by executing:
-
-php -q install.php
-
-# The installer will configure all services like postfix, sasl, courier, etc. for you. A manual setup as required for ISPConfig 2 (perfect setup guides) is not necessary. To login to the ISPConfig controlpanel, open the following URL in your browser (replace the IP to match your settings!):
-
-http://192.168.0.100:8080/
-
-# the default login is:
-
-user: admin
-password: admin
-
-# In case you get a permission denied error from apache, please restart the apache webserver process.
-
-
-
-----------------------------------------------------------------------------------------------------------
-Optional:
-
-Install a webbased Email Client
-
-apt-get install squirrelmail
-ln -s /usr/share/squirrelmail/ /var/www/webmail
-
-Access squirrelmail:
-
-http://192.168.0.100/webmail
-
-
-To configure squirrelmail, run:
-
-/usr/sbin/squirrelmail-configure
-
-----------------------------------------------------------------------------------------------------------
-
-Hints:
-
-debian 5.0 under openvz:
-
-VPSID=101
-for CAP in CHOWN DAC_READ_SEARCH SETGID SETUID NET_BIND_SERVICE NET_ADMIN SYS_CHROOT SYS_NICE CHOWN DAC_READ_SEARCH SETGID SETUID NET_BIND_SERVICE NET_ADMIN SYS_CHROOT SYS_NICE
-do
-  vzctl set $VPSID --capability ${CAP}:on --save
-done
-
-----------------------------------------------------------------------------------------------------------
-
-
-Optional recommended packages:
-
-denyhosts - a utility to help sys admins thwart ssh crackers
-rsync - fast remote file copy program (for backup)
-
------------------------------------------------------------------------------------------------------------
-
-
-Possible errors and their solutions
-------------------------------------
-
-pureftpd login does not work. Take a look at the syslog, if you find an error message like this:
-Mar 24 16:26:28 ispconfig pure-ftpd: (?@?) [ERROR] Sorry, invalid address given
-
-then pureftpd is not able to resolve the hostname. Name resolving can be disabled with these commands:
-
-echo 'yes' > /etc/pure-ftpd/conf/DontResolve
-/etc/init.d/pure-ftpd-mysql restart
-
------------------------------------------------------------------------------------------------------------
-Fail2ban also working with ipv6:
-# Download here and install the package: http://homes.dcc.ufba.br/~rogeriobastos/files/fail2ban/
-# Set banaction = route in jail.conf
-# Create or modify route.conf in /etc/fail2ban/action.d
-[Definition]
-actionban = ip route add unreachable <ip>
-actionunban = ip route del unreachable <ip>
-action6ban = ip route add unreachable <ip>
-action6unban = ip route del unreachable <ip>
------------------------------------------------------------------------------------------------------------
-
-
-
-
-
-
diff --git a/docs/INSTALL_DEBIAN_6.0_dovecot_bind.txt b/docs/INSTALL_DEBIAN_6.0_dovecot_bind.txt
deleted file mode 100644
index 3fbdffe..0000000
--- a/docs/INSTALL_DEBIAN_6.0_dovecot_bind.txt
+++ /dev/null
@@ -1,279 +0,0 @@
-Installation
--------------
-
-# It is recommended to use a clean (fresh) Debian Squeeze 6.0 install where you just selected "Standard System" at the package selection during
-# setup (tasksel). Journaled quota which this guide uses works on ext3 and ext4 file systems, so format disks either one if you are going to use
-# quota (recommended). Then follow the steps below to setup your server with ISPConfig 3. In this guide "vi" is used as text editor, but
-# you can use whatever you prefer. You should be root for doing all of this.
-
-
-# Check we have Fully Qualified Domain Name
-
-/bin/hostname
-
-# it should return something like "ispconfig.example.com"
-# if not, then we assign a hostname (for example ispconfig):
-
-echo ispconfig.example.com > /etc/hostname
-
-vi /etc/hosts
-
-# and add lines similar but appropriate:
-
-127.0.0.1       localhost.localdomain   localhost
-192.168.0.100   ispconfig.example.com   ispconfig
-
-# Run:
-
-/etc/init.d/hostname.sh
-
-# enable the Debian Volatile repository to get an updated ClamAV version
-# The Volatile repository for Debian Squeeze was not available yet at the time this howto was written.
-# echo "deb http://volatile.debian.org/debian-volatile squeeze/volatile main contrib non-free" >> /etc/apt/sources.list.d/volatile.list
-# apt-get update
-
-# Some optional choices
-
-opt0.1) Optionally install SSH-server to get remote shell
-
-apt-get install openssh-server
-
-opt0.2) Optionally, if you are not running inside a virtual machine, you can set server clocksync via NTP. Virtual guests get this from the host.
-
-apt-get -y install ntp ntpdate
-
-opt0.3) Optionally if you want vi editor improvement
-
-apt-get -y install vim-nox
-
-
-# Next is the real deal
-
-1) Install Postfix, Dovecot, MySQL, phpMyAdmin, rkhunter, binutils with the following command line (on one line!):
-
-apt-get -y install postfix postfix-mysql postfix-doc mysql-client mysql-server openssl getmail4 rkhunter binutils dovecot-imapd dovecot-pop3d sudo
-
-# Answer the questions from the package manager as follows.
-
-General type of configuration? <-- Internet site
-Mail name? <-- server1.mydomain.tld
-
-# ...use your own domain name of course ;)
-
-
-
-# Edit the file /etc/mysql/my.cnf
-
-vi /etc/mysql/my.cnf
-
-# and change the line:
-
-bind-address          = 127.0.0.1
-
-to:
-
-#bind-address          = 127.0.0.1
-
-# then restart mysql
-
-/etc/init.d/mysql restart
-
-2) Install Amavisd-new, Spamassassin and ClamAV (1 line!):
-
-apt-get -y install amavisd-new spamassassin clamav clamav-daemon zoo unzip bzip2 arj nomarch lzop cabextract apt-listchanges libnet-ldap-perl libauthen-sasl-perl clamav-docs daemon libio-string-perl libio-socket-ssl-perl libnet-ident-perl zip libnet-dns-perl
-
-
-3) Install Apache, PHP5, phpmyadmin, better fastCGI, suexec, Pear and mcrypt (1 line!):
-
-apt-get -y install apache2 apache2.2-common apache2-doc apache2-mpm-prefork apache2-utils libexpat1 ssl-cert libapache2-mod-php5 php5 php5-common php5-gd php5-mysql php5-imap phpmyadmin php5-cli php5-cgi libapache2-mod-fcgid apache2-suexec php-pear php-auth php5-mcrypt mcrypt imagemagick libapache2-mod-suphp libopenssl-ruby libapache2-mod-ruby
-
-
-# When phpMyAdmin is asking wether to configure itself automatically, select "Apache2"
-
-# Then run the following to enable the Apache modules suexec, rewrite and ssl:
-
-a2enmod suexec rewrite ssl actions include ruby
-
-# restart Apache before continuing
-
-/etc/init.d/apache2 restart
- 
-
-4) Install pure-ftpd and quota
-
-apt-get -y install pure-ftpd-common pure-ftpd-mysql quota quotatool
-
-# Optional: Enable TLS in pureftpd
-echo 1 > /etc/pure-ftpd/conf/TLS
-mkdir -p /etc/ssl/private/
-openssl req -x509 -nodes -newkey rsa:1024 -keyout /etc/ssl/private/pure-ftpd.pem  -out /etc/ssl/private/pure-ftpd.pem
-chmod 600 /etc/ssl/private/pure-ftpd.pem 
-
-
-# Edit /etc/fstab. Add "usrjquota=aquota.user,grpjquota=aquota.group,jqfmt=vfsv0" to the partition where you want to use quota.
-# Mine looks like this (I want to use quota on the / partition):
-
-vi /etc/fstab
-
-----------------------------------------------------------------------------------------------
-# /etc/fstab: static file system information.
-#
-# <file system> <mount point>   <type>  <options>       <dump>  <pass>
-proc            /proc           proc    defaults        0       0
-/dev/sda1       /               ext3    errors=remount-ro,usrjquota=aquota.user,grpjquota=aquota.group,jqfmt=vfsv0	0       1
-/dev/sda5       none            swap    sw              0       0
-/dev/hda        /media/cdrom0   udf,iso9660 user,noauto     0       0
-/dev/fd0        /media/floppy0  auto    rw,user,noauto  0       0
-----------------------------------------------------------------------------------------------
-
-# To enable quota, run these commands:
-
-touch /aquota.user /aquota.group
-chmod 600 /aquota.*
-mount -o remount /
-quotacheck -F vfsv0 -afcvdugm
-quotaon -avug
-
-
-5) Install BIND DNS Server
-
-apt-get -y install bind9 dnsutils
-
-6) Install vlogger and webalizer
-
-apt-get -y install vlogger webalizer awstats
-
-mkdir /usr/share/awstats/tools
-cp -prf /usr/share/doc/awstats/examples/awstats_buildstaticpages.pl /usr/share/awstats/tools/awstats_buildstaticpages.pl
-
-
-7) Install Jailkit (optional, only needed if you want to use chrooting for SSH users)
-
-apt-get -y install build-essential autoconf automake1.9 libtool flex bison debhelper
-cd /tmp
-wget http://olivier.sessink.nl/jailkit/jailkit-2.13.tar.gz
-tar xvfz jailkit-2.13.tar.gz
-cd jailkit-2.13
-./configure
-make
-make install
-cd ..
-rm -rf jailkit-2.13*
-
-8) Install fail2ban (optional but recomended, because the monitor tries to show the log)
-More info at: http://www.howtoforge.com/fail2ban_debian_etch
-
-apt-get -y install fail2ban
-
-9) Install ISPConfig 3
-
-cd /tmp
-wget http://www.ispconfig.org/downloads/ISPConfig-3.0.2.2.tar.gz
-tar xvfz ISPConfig-3.0.2.2.tar.gz
-cd ispconfig3_install/install/
-
-# Now start the installation process by executing:
-
-php -q install.php
-
-# The installer will configure all services like postfix, sasl, courier, etc. for you. A manual setup as required for ISPConfig 2 (perfect setup guides) is not necessary. To login to the ISPConfig controlpanel, open the following URL in your browser (replace the IP to match your settings!):
-
-http://192.168.0.100:8080/
-
-# the default login is:
-
-user: admin
-password: admin
-
-# In case you get a permission denied error from apache, please restart the apache webserver process.
-
-
-
-----------------------------------------------------------------------------------------------------------
-Optional:
-
-Install a webbased Email Client
-
-apt-get install squirrelmail
-ln -s /usr/share/squirrelmail/ /var/www/webmail
-
-Access squirrelmail:
-
-http://192.168.0.100/webmail
-
-
-To configure squirrelmail, run:
-
-/usr/sbin/squirrelmail-configure
-
-----------------------------------------------------------------------------------------------------------
-
-Hints:
-
-debian 5.0 under openvz:
-
-VPSID=101
-for CAP in CHOWN DAC_READ_SEARCH SETGID SETUID NET_BIND_SERVICE NET_ADMIN SYS_CHROOT SYS_NICE CHOWN DAC_READ_SEARCH SETGID SETUID NET_BIND_SERVICE NET_ADMIN SYS_CHROOT SYS_NICE
-do
-  vzctl set $VPSID --capability ${CAP}:on --save
-done
-
-----------------------------------------------------------------------------------------------------------
-
-
-Optional recommended packages:
-
-denyhosts - a utility to help sys admins thwart ssh crackers
-rsync - fast remote file copy program (for backup)
-
------------------------------------------------------------------------------------------------------------
-
-Ispc log files rotation, for now manual add but to add in ispc installer:
-
-/etc/logrotate.d/logispc3
-
-/var/log/ispconfig/ispconfig.log {
-	weekly
-	missingok
-	rotate 4
-	compress
-	delaycompress
-}
-/var/log/ispconfig/cron.log {
-	weekly
-	missingok
-	rotate 4
-	compress
-	delaycompress
-}
-
-
------------------------------------------------------------------------------------------------------------
-
-Possible errors and their solutions
-------------------------------------
-
-pureftpd login does not work. Take a look at the syslog, if you find an error message like this:
-Mar 24 16:26:28 ispconfig pure-ftpd: (?@?) [ERROR] Sorry, invalid address given
-
-then pureftpd is not able to resolve the hostname. Name resolving can be disabled with these commands:
-
-echo 'yes' > /etc/pure-ftpd/conf/DontResolve
-/etc/init.d/pure-ftpd-mysql restart
-
-
------------------------------------------------------------------------------------------------------------
-Fail2ban also working with ipv6:
-# Download here and install the package: http://homes.dcc.ufba.br/~rogeriobastos/files/fail2ban/
-# Set banaction = route in jail.conf
-# Create or modify route.conf in /etc/fail2ban/action.d
-[Definition]
-actionban = ip route add unreachable <ip>
-actionunban = ip route del unreachable <ip>
-action6ban = ip route add unreachable <ip>
-action6unban = ip route del unreachable <ip>
------------------------------------------------------------------------------------------------------------
-
-
-
-
diff --git a/docs/INSTALL_FEDORA_12_dovecot_bind.txt b/docs/INSTALL_FEDORA_12_dovecot_bind.txt
deleted file mode 100644
index 8bf4e04..0000000
--- a/docs/INSTALL_FEDORA_12_dovecot_bind.txt
+++ /dev/null
@@ -1,154 +0,0 @@
-
-Installation
------------
-
-It is recommended to use a clean (fresh) Fedora install. Then follow the steps below to setup your server with ISPConfig 3:
-
-Installation of some basic requirements:
-
-// rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY*
-yum update
-
-You should disable selinux now, as some programs will not start when selinux is enabled:
-
-vi /etc/selinux/config
-
-and set:
-
-SELINUX=disabled
-
-then reboot the server.
-
-
-1) Install Postfix, Dovecot MySQL, phpMyAdmin with the following command line (on one line!):
-
-yum install ntp httpd mysql-server php php-mysql php-mbstring phpMyAdmin getmail postfix dovecot dovecot-mysql wget
-
-chkconfig --levels 235 mysqld on
-/etc/init.d/mysqld start
-
-chkconfig --levels 235 httpd on
-/etc/init.d/httpd start
-
-chkconfig --levels 235 dovecot on
-/etc/init.d/dovecot start
-
-chkconfig --levels 235 sendmail off
-chkconfig --levels 235 postfix on
-/etc/init.d/sendmail stop
-/etc/init.d/postfix start
-
-
-Set the mysql database password:
-
-/usr/bin/mysql_secure_installation
-
-
-2) Install Amavisd-new, Spamassassin and Clamav (1 line!):
-
-yum install amavisd-new spamassassin clamav clamav-data clamav-server clamav-update unzip bzip2 unrar
-
-chkconfig --levels 235 amavisd on
-chkconfig --levels 235 clamd.amavisd on
-/usr/bin/freshclam
-/etc/init.d/amavisd start
-/etc/init.d/clamd.amavisd start
-
-3) Install apache, PHP5 and phpmyadmin (1 line!):
-
-yum install php php-devel php-gd php-imap php-ldap php-mysql php-odbc php-pear php-xml php-xmlrpc php-magickwand php-magpierss php-mapserver php-mbstring php-mcrypt php-mhash php-mssql php-shout php-snmp php-soap php-tidy curl curl-devel perl-libwww-perl ImageMagick libxml2 libxml2-devel phpmyadmin
-
-disable php mapserver module as it causes errors on cli:
-
-vi /etc/php.d/mapserver.ini
-
-and add ; in front of the line extension=php_mapscript.so
-
-; extension=php_mapscript.so
-
-4) Install pure-ftpd and quota
-
-yum install pure-ftpd quota
-
-chkconfig --levels 235 pure-ftpd on
-
-5) Install bind dns server
-
-yum install bind bind-utils
-
-chkconfig --levels 235 named on
-
-6) Install vlogger dependencies and webalizer
-
-yum install webalizer perl-DateTime-Format-HTTP perl-DateTime-Format-Builder
-
-6.5) Install jailkit
-
-yum install gcc
-
-cd /tmp
-wget http://olivier.sessink.nl/jailkit/jailkit-2.11.tar.gz
-tar xvfz jailkit-2.11.tar.gz
-cd jailkit-2.11
-./configure
-make
-make install
-rm -rf jailkit-2.11*
-
-6.6) Install fail2ban
-
-yum install fail2ban
-
-7) Configure the firewall
-
-Now you should switch off the firewall by running:
-
-system-config-firewall-tui
-
-ISPConfig comes with a iptables bsed firewall script that can be managed from within the ispconfig interface.
-
-
-8) Install ISPConfig 3
-
-  cd /tmp
-  wget http://www.ispconfig.org/downloads/ISPConfig-3.0.2.1.tar.gz
-  tar xvfz ISPConfig-3.0.2.tar.gz
-  cd ispconfig3_install/install/
-
-Now start the installation process by executing:
-
-php -q install.php
-
-The installer will configure all services like postfix, sasl, courier, etc. for you. A manual setup as required for ISPConfig 2 (perfect setup guides) is not necessary. To login to the ISPConfig controlpanel, open the following URL in your browser (replace the IP to match your settings!):
-
-http://192.168.0.100:8080/
-
-the default login is:
-
-user: admin
-password: admin
-
-In case you get a permission denied error from apache, please restart the apache webserver process.
-
-Optional:
-
-Install a webbased Email Client
-
-yum install squirrelmail
-
-
-----------------------------------------------------------------------------------------------------------
-
-Hints:
-
-debian 4.0 under openvz:
-
-VPSID=101
-for CAP in CHOWN DAC_READ_SEARCH SETGID SETUID NET_BIND_SERVICE NET_ADMIN SYS_CHROOT SYS_NICE CHOWN DAC_READ_SEARCH SETGID SETUID NET_BIND_SERVICE NET_ADMIN SYS_CHROOT SYS_NICE
-do
-  vzctl set $VPSID --capability ${CAP}:on --save
-done
-
-----------------------------------------------------------------------------------------------------------
-
-
diff --git a/docs/INSTALL_FEDORA_9.txt b/docs/INSTALL_FEDORA_9.txt
deleted file mode 100644
index 7f1531f..0000000
--- a/docs/INSTALL_FEDORA_9.txt
+++ /dev/null
@@ -1,215 +0,0 @@
-
-Installation
------------
-
-It is recommended to use a clean (fresh) Fedora install. Then follow the steps below to setup your server with ISPConfig 3:
-
-Installation of some basic requirements:
-
-rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY*
-yum update
-yum groupinstall 'Development Tools'
-yum groupinstall 'Development Libraries'
-
-You should disable selinux now, as some programs will not start when selinux is enabled:
-
-vi /etc/selinux/config
-
-and set:
-
-SELINUX=disabled
-
-then reboot the server.
-
-
-1) Install Postfix, Courier, Saslauthd, MySQL, phpMyAdmin with the following command line (on one line!):
-
-yum install ntp httpd mysql-server php php-mysql php-mbstring rpm-build gcc mysql-devel openssl-devel cyrus-sasl-devel pkgconfig zlib-devel phpMyAdmin pcre-devel openldap-devel postgresql-devel expect libtool-ltdl-devel openldap-servers libtool gdbm-devel pam-devel gamin-devel getmail
-
-useradd -m -s /bin/bash compileuser
-passwd compileuser
-
-visudo
-
-## Allow root to run any commands anywhere
-root    ALL=(ALL)       ALL
-compileuser   ALL=(ALL)       ALL
-
-
-su compileuser
-
-mkdir $HOME/rpm
-mkdir $HOME/rpm/SOURCES
-mkdir $HOME/rpm/SPECS
-mkdir $HOME/rpm/BUILD
-mkdir $HOME/rpm/SRPMS
-mkdir $HOME/rpm/RPMS
-mkdir $HOME/rpm/RPMS/i386
-
-echo "%_topdir $HOME/rpm" >> $HOME/.rpmmacros
-
-
-wget http://prdownloads.sourceforge.net/courier/courier-authlib-0.61.0.tar.bz2
-wget http://prdownloads.sourceforge.net/courier/courier-imap-4.4.1.tar.bz2
-wget http://prdownloads.sourceforge.net/courier/maildrop-2.0.4.tar.bz2
-
-sudo rpmbuild -ta courier-authlib-0.61.0.tar.bz2
-
-sudo rpm -ivh /home/compileuser/rpm/RPMS/i386/courier-authlib-0.61.0-1.fc9.i386.rpm
-sudo rpm -ivh /home/compileuser/rpm/RPMS/i386/courier-authlib-mysql-0.61.0-1.fc9.i386.rpm
-sudo rpm -ivh /home/compileuser/rpm/RPMS/i386/courier-authlib-devel-0.61.0-1.fc9.i386.rpm
-
-rpmbuild -ta courier-imap-4.4.1.tar.bz2
-
-sudo rpm -ivh /home/compileuser/rpm/RPMS/i386/courier-imap-4.4.1-1.9.i386.rpm
-
-sudo rpmbuild -ta maildrop-2.0.4.tar.bz2
-
-sudo rpm -ivh /home/compileuser/rpm/RPMS/i386/maildrop-2.0.4-1.9.i386.rpm
-
-exit
-
-yum install postfix
-
-chkconfig --levels 235 mysqld on
-/etc/init.d/mysqld start
-
-chkconfig --levels 235 httpd on
-/etc/init.d/httpd start
-
-chkconfig --levels 235 courier-authlib on
-/etc/init.d/courier-authlib start
-
-chkconfig --levels 235 sendmail off
-chkconfig --levels 235 postfix on
-chkconfig --levels 235 saslauthd on
-/etc/init.d/sendmail stop
-/etc/init.d/postfix start
-/etc/init.d/saslauthd start
-
-chkconfig --levels 235 courier-imap on
-/etc/init.d/courier-authlib restart
-/etc/init.d/courier-imap restart
-
-
-Set the mysql database password:
-
-mysqladmin -u root password yourrootsqlpassword
-mysqladmin -h ispconfig.local -u root password yourrootsqlpassword
-
-
-2) Install Amavisd-new, Spamassassin and Clamav (1 line!):
-
-yum install amavisd-new spamassassin clamav clamav-data clamav-server clamav-update unzip bzip2 unrar
-
-chkconfig --levels 235 amavisd on
-chkconfig --levels 235 clamd.amavisd on
-/usr/bin/freshclam
-/etc/init.d/amavisd start
-/etc/init.d/clamd.amavisd start
-
-3) Install apache, PHP5 and phpmyadmin (1 line!):
-
-yum install php php-devel php-gd php-imap php-ldap php-mysql php-odbc php-pear php-xml php-xmlrpc php-eaccelerator php-magickwand php-magpierss php-mapserver php-mbstring php-mcrypt php-mhash php-mssql php-shout php-snmp php-soap php-tidy curl curl-devel perl-libwww-perl ImageMagick libxml2 libxml2-devel phpmyadmin
-
-
-4) Install pure-ftpd and quota
-
-yum install pure-ftpd quota
-
-chkconfig --levels 235 pure-ftpd on
-
-5) Install mydns
-
-rpm -i http://mydns.bboy.net/download/mydns-mysql-1.1.0-1.i386.rpm
-
-chkconfig --levels 235 mydns on
-
-6) Install vlogger and webalizer
-
-yum install webalizer perl-DateTime-Format-HTTP perl-DateTime-Format-Builder
-
-cd /tmp
-wget http://n0rp.chemlab.org/vlogger/vlogger-1.3.tar.gz
-tar xvfz vlogger-1.3.tar.gz
-mv vlogger-1.3/vlogger /usr/sbin/
-rm -rf vlogger*
-
-7) Configure the firewall
-
-Now you should switch off the firewall by running:
-
-system-config-firewall-tui
-
-ISPConfig comes with a iptables bsed firewall script that can be meneged from within the ispconfig interface.
-
-
-8) Install ISPConfig 3
-
-There are two possile scenarios, but not both:
-8.1) Install the latest released version 
-8.2) Install directly from SVN
-
-8.1) Installation of beta 3 from tar.gz
-
-  cd /tmp
-  wget http://www.ispconfig.org/downloads/ISPConfig-3.0.0.9-rc2.tar.gz
-  tar xvfz ISPConfig-3.0.0.9-rc2.tar.gz
-  cd ispconfig3_install/install/
-
-8.2) Installation from SVN
-
-  yum install subversion
-  cd /tmp
-  svn export svn://svn.ispconfig.org/ispconfig3/trunk/
-  cd trunk/install
-
-
-8.1+8.2) Now proceed with the ISPConfig installation.
-
-Now start the installation process by executing:
-
-php -q install.php
-
-The installer will configure all services like postfix, sasl, courier, etc. for you. A manual setup as required for ISPConfig 2 (perfect setup guides) is not necessary. To login to the ISPConfig controlpanel, open the following URL in your browser (replace the IP to match your settings!):
-
-http://192.168.0.100:8080/
-
-the default login is:
-
-user: admin
-password: admin
-
-In case you get a permission denied error from apache, please restart the apache webserver process.
-
-Optional:
-
-Install a webbased Email Client
-
-yum install squirrelmail
-
-
-----------------------------------------------------------------------------------------------------------
-
-Hints:
-
-debian 4.0 under openvz:
-
-VPSID=101
-for CAP in CHOWN DAC_READ_SEARCH SETGID SETUID NET_BIND_SERVICE NET_ADMIN SYS_CHROOT SYS_NICE CHOWN DAC_READ_SEARCH SETGID SETUID NET_BIND_SERVICE NET_ADMIN SYS_CHROOT SYS_NICE
-do
-  vzctl set $VPSID --capability ${CAP}:on --save
-done
-
-----------------------------------------------------------------------------------------------------------
-
-Installing Jailkit:
-
-cd /tmp
-wget http://olivier.sessink.nl/jailkit/jailkit-2.5.tar.gz
-tar xvfz jailkit-2.5.tar.gz
-cd jailkit-2.5
-./configure
-make
-make install
-rm -rf jailkit-2.5*
diff --git a/docs/INSTALL_OPENSUSE_11.txt b/docs/INSTALL_OPENSUSE_11.txt
deleted file mode 100644
index de8c0a0..0000000
--- a/docs/INSTALL_OPENSUSE_11.txt
+++ /dev/null
@@ -1,201 +0,0 @@
-
-Installation
------------
-
-It is recommended to use a clean (fresh) OpenSUSE installatiom where you selected to install just the minimal packages. A Gnome or KDE desktop is not needed and will just slow down the server. Then follow the steps below to setup your server with ISPConfig 3:
-
-Install some basic packes and the compilers that we need later
-
-yast2 -i findutils readline libgcc glibc-devel findutils-locate gcc flex lynx compat-readline4 db-devel wget gcc-c++ make vim telnet cron iptables iputils man man-pages
-
-1) Install Postfix, Courier, Saslauthd, MySQL, phpMyAdmin with the following command line (on one line!):
-
-yast2 -i postfix postfix-mysql mysql mysql-client phpMyAdmin courier-imap courier-authlib courier-authlib-mysql python cron cyrus-sasl cyrus-sasl-crammd5 cyrus-sasl-digestmd5 cyrus-sasl-gssapi cyrus-sasl-otp cyrus-sasl-plain cyrus-sasl-saslauthd libmysqlclient-devel
-
-chkconfig --add mysql
-/etc/init.d/mysql start
-
-chkconfig --add postfix
-/etc/init.d/postfix start
-
-chkconfig --add saslauthd
-/etc/init.d/saslauthd start
-
-chkconfig --add saslauthd
-/etc/init.d/saslauthd start
-
-chkconfig --add fam
-chkconfig --add courier-authdaemon
-chkconfig --add courier-pop
-chkconfig --add courier-imap
-/etc/init.d/courier-pop start
-/etc/init.d/courier-imap start
-chkconfig --add courier-pop-ssl
-chkconfig --add courier-imap-ssl
-/etc/init.d/courier-pop-ssl start
-/etc/init.d/courier-imap-ssl start
-
-cd /tmp
-wget http://download.opensuse.org/repositories/server:/mail/openSUSE_11.0/i586/getmail-4.7.6-1.4.i586.rpm
-rpm -i getmail-4.7.6-1.4.i586.rpm
-
-// Warnings like "warning: getmail-4.7.6-1.4.i586.rpm: Header V3 DSA signature: NOKEY, key ID 367fe7fc" can be ignored.
-
-// Install maildrop
-rpm --force -i http://download.opensuse.org/repositories/home%3A/cboltz/openSUSE_10.3/i586/maildrop-2.0.3-16.1.i586.rpm
-
-// Install pam_mysql
-
-yast2 -i pam-devel
-cd /tmp
-wget http://heanet.dl.sourceforge.net/sourceforge/pam-mysql/pam_mysql-0.7RC1.tar.gz
-tar xvfz pam_mysql-0.7RC1.tar.gz
-cd pam_mysql-0.7RC1
-./configure
-make
-make install
-rm -rf pam_mysql-0.7RC1
-rm pam_mysql-0.7RC1.tar.gz
-
-// Set the mysql database password:
-
-mysqladmin -u root password yourrootsqlpassword
-mysqladmin -h ispconfig.local -u root password yourrootsqlpassword
-
-
-2) Install Amavisd-new, Spamassassin and Clamav (1 line!):
-
-yast2 -i amavisd-new clamav clamav-db zoo unzip unrar bzip2 unarj perl-DBD-mysql
-
-chkconfig --add amavis
-chkconfig --add clamd
-/etc/init.d/amavis start
-/etc/init.d/clamd start
-
-3) Install PHP5 modules (1 line!):
-
-yast2 -i php5-bcmath php5-bz2 php5-calendar php5-ctype php5-curl php5-dbase php5-dom php5-ftp php5-gd php5-gettext php5-gmp php5-iconv php5-imap php5-ldap php5-mbstring php5-mcrypt php5-mysql php5-ncurses php5-odbc php5-openssl php5-pcntl php5-pgsql php5-posix php5-shmop php5-snmp php5-soap php5-sockets php5-sqlite php5-sysvsem php5-tokenizer php5-wddx php5-xmlrpc php5-xsl php5-zlib php5-exif php5-fastcgi php5-pear php5-sysvmsg php5-sysvshm ImageMagick curl
-
-Then run the following to enable the Apache modules:
-
-a2enmod suexec
-a2enmod rewrite
-a2enmod ssl
-a2enmod actions
-
-chkconfig --add apache2
-/etc/init.d/apache2 start
-
-4) Install pure-ftpd and quota
-
-yast2 -i pure-ftpd quota
-
-// The current pure-ftpd package from SuSE is unstable and segfaults when a file is uploaded, 
-// we will replace it with a manually compiled package now:
-
-cd /tmp
-wget http://download.pureftpd.org/pub/pure-ftpd/releases/pure-ftpd-1.0.21.tar.gz
-tar xvfz pure-ftpd-1.0.21.tar.gz
-cd pure-ftpd-1.0.21/
-./configure --sysconfdir=/etc/pure-ftpd --with-everything --with-mysql
-make
-make install
-mv /usr/sbin/pure-ftpd /usr/sbin/pure-ftpd.suse
-ln -s /usr/local/sbin/pure-ftpd /usr/sbin/pure-ftpd
-rm -rf pure-ftpd-1.0.21
-rm -f pure-ftpd-1.0.21.tar.gz
-
-chkconfig --add pure-ftpd
-/etc/init.d/pure-ftpd start
-
-
-5) Install mydns
-
-cd /tmp
-wget ftp://ftp.pbone.net/mirror/ftp5.gwdg.de/pub/opensuse/repositories/server:/dns/SUSE_Factory/i586/mydns-mysql-1.1.0-3.72.i586.rpm
-wget ftp://ftp.pbone.net/mirror/ftp5.gwdg.de/pub/opensuse/repositories/server:/dns/SUSE_Factory/i586/mydns-1.1.0-3.72.i586.rpm
-rpm -i mydns*.rpm
-rm -rf /tmp/mydns*
-
-chkconfig --add mydns
-
-6) Install vlogger and webalizer
-
-cd /tmp
-wget http://n0rp.chemlab.org/vlogger/vlogger-1.3.tar.gz
-tar xvfz vlogger-1.3.tar.gz
-mv vlogger-1.3/vlogger /usr/sbin/
-rm -rf vlogger*
-
-
-yast2 -i webalizer perl-DateManip
-
-
-7) Install ISPConfig 3
-
-There are two possile scenarios, but not both:
-7.1) Install the latest released version 
-7.2) Install directly from SVN
-
-7.1) Installation of beta 3 from tar.gz
-
-  cd /tmp
-  wget http://www.ispconfig.org/downloads/ISPConfig-3.0.0.9-rc2.tar.gz
-  tar xvfz ISPConfig-3.0.0.9-rc2.tar.gz
-  cd ispconfig3_install/install/
-
-7.2) Installation from SVN
-
-  yast2 -i subversion
-  cd /tmp
-  svn export svn://svn.ispconfig.org/ispconfig3/trunk/
-  cd trunk/install
-
-
-7.1+7.2) Now proceed with the ISPConfig installation.
-
-Now start the installation process by executing:
-
-php -q install.php
-
-The installer will configure all services like postfix, sasl, courier, etc. for you. A manual setup as required for ISPConfig 2 (perfect setup guides) is not necessary. To login to the ISPConfig controlpanel, open the following URL in your browser (replace the IP to match your settings!):
-
-http://192.168.0.100:8080/
-
-the default login is:
-
-user: admin
-password: admin
-
-In case you get a permission denied error from apache, please restart the apache webserver process.
-
-Optional:
-
-Install a webbased Email Client
-
-yast2 -i squirrelmail
-
-----------------------------------------------------------------------------------------------------------
-
-Hints:
-
-debian 4.0 under openvz:
-
-VPSID=101
-for CAP in CHOWN DAC_READ_SEARCH SETGID SETUID NET_BIND_SERVICE NET_ADMIN SYS_CHROOT SYS_NICE CHOWN DAC_READ_SEARCH SETGID SETUID NET_BIND_SERVICE NET_ADMIN SYS_CHROOT SYS_NICE
-do
-  vzctl set $VPSID --capability ${CAP}:on --save
-done
-
-----------------------------------------------------------------------------------------------------------
-
-Installing Jailkit:
-
-cd /tmp
-wget http://olivier.sessink.nl/jailkit/jailkit-2.5.tar.gz
-tar xvfz jailkit-2.5.tar.gz
-cd jailkit-2.5
-./configure
-make
-make install
-rm -rf jailkit-2.5*
diff --git a/docs/INSTALL_OPENSUSE_11_1.txt b/docs/INSTALL_OPENSUSE_11_1.txt
deleted file mode 100644
index f6ea738..0000000
--- a/docs/INSTALL_OPENSUSE_11_1.txt
+++ /dev/null
@@ -1,210 +0,0 @@
-
-Installation
------------
-
-It is recommended to use a clean (fresh) OpenSUSE installatiom where you selected to install just the minimal packages. A Gnome or KDE desktop is not needed and will just slow down the server. Then follow the steps below to setup your server with ISPConfig 3:
-
-The following guide is for the 32Bit version of openSUSE, for 64Bit installations the package names may differ especially the names of downloaded rpm files.
-
-Install some basic packes and the compilers that we need later
-
-yast2 -i findutils readline libgcc glibc-devel findutils-locate gcc flex lynx compat-readline4 db-devel wget gcc-c++ make vim telnet cron iptables iputils man man-pages nano pico
-
-1) Install Postfix, Courier, Saslauthd, MySQL with the following command line (on one line!):
-
-yast2 -i postfix postfix-mysql mysql mysql-client courier-imap courier-authlib courier-authlib-mysql python cron cyrus-sasl cyrus-sasl-crammd5 cyrus-sasl-digestmd5 cyrus-sasl-gssapi cyrus-sasl-otp cyrus-sasl-plain cyrus-sasl-saslauthd libmysqlclient-devel
-
-chkconfig --add mysql
-/etc/init.d/mysql start
-
-chkconfig --add postfix
-/etc/init.d/postfix start
-
-chkconfig --add saslauthd
-/etc/init.d/saslauthd start
-
-chkconfig --add saslauthd
-/etc/init.d/saslauthd start
-
-chkconfig --add fam
-chkconfig --add courier-authdaemon
-chkconfig --add courier-pop
-chkconfig --add courier-imap
-/etc/init.d/courier-pop start
-/etc/init.d/courier-imap start
-chkconfig --add courier-pop-ssl
-chkconfig --add courier-imap-ssl
-/etc/init.d/courier-pop-ssl start
-/etc/init.d/courier-imap-ssl start
-
-
-cd /tmp
-wget http://download.opensuse.org/repositories/server:/mail/openSUSE_11.0/i586/getmail-4.7.6-1.4.i586.rpm
-rpm -i getmail-4.7.6-1.4.i586.rpm
-
-// Install maildrop
-wget http://download.opensuse.org/repositories/home:/atzewilms/openSUSE_11.1_Update/i586/maildrop-2.0.4-10.5.i586.rpm
-rpm --force -i maildrop-2.0.4-10.5.i586.rpm
-
-// Install pam_mysql
-yast2 -i pam-devel
-cd /tmp
-wget http://heanet.dl.sourceforge.net/sourceforge/pam-mysql/pam_mysql-0.7RC1.tar.gz
-tar xvfz pam_mysql-0.7RC1.tar.gz
-cd pam_mysql-0.7RC1
-./configure
-make
-make install
-rm -rf /tmp/pam_mysql-0.7RC1
-rm /tmp/pam_mysql-0.7RC1.tar.gz
-
-
-// Set the mysql database password:
-
-mysql_secure_installation
-
-
-2) Install Amavisd-new, Spamassassin and Clamav (1 line!):
-
-yast2 -i amavisd-new clamav clamav-db zoo unzip unrar bzip2 unarj perl-DBD-mysql
-
-chkconfig --add amavis
-chkconfig --add clamd
-/etc/init.d/amavis start
-/etc/init.d/clamd start
-
-2.1) Install apache2
-
-yast2 -i apache2 apache2-mod_fcgid
-
-rpm -i http://download.opensuse.org/repositories/server:/php/server_database_apache_openSUSE_11.0/i586/suphp-0.6.2-10.41.i586.rpm
-
-3) Install PHP5 modules (1 line!):
-
-yast2 -i php5-bcmath php5-bz2 php5-calendar php5-ctype php5-curl php5-dbase php5-dom php5-ftp php5-gd php5-gettext php5-gmp php5-iconv php5-imap php5-ldap php5-mbstring php5-mcrypt php5-mysql php5-ncurses php5-odbc php5-openssl php5-pcntl php5-pgsql php5-posix php5-shmop php5-snmp php5-soap php5-sockets php5-sqlite php5-sysvsem php5-tokenizer php5-wddx php5-xmlrpc php5-xsl php5-zlib php5-exif php5-fastcgi php5-pear php5-sysvmsg php5-sysvshm ImageMagick curl apache2-mod_php5
-
-Then run the following to enable the Apache modules:
-
-a2enmod suexec
-a2enmod rewrite
-a2enmod ssl
-a2enmod actions
-a2enmod suphp
-a2enmod fcgid
-
-// Fix a suexec permission problem
-
-chown root:www /usr/sbin/suexec2
-chmod 4755 /usr/sbin/suexec2
-
-// and start apache
-
-chkconfig --add apache2
-/etc/init.d/apache2 start
-
-cd /tmp
-
-yast2 -i pwgen
-rpm -i http://download.opensuse.org/repositories/server:/php:/applications/openSUSE_11.1/noarch/phpMyAdmin-3.1.2-1.1.noarch.rpm
-ln -s /srv/www/htdocs/phpMyAdmin /usr/local/ispconfig/interface/web/phpmyadmin
-
-// Warnings like "warning: phpMyAdmin-3.1.2-1.1.src.rpm: Header V3 DSA signature: NOKEY, key ID 367fe7fc" can be ignored.
-
-4) Install pure-ftpd and quota
-
-yast2 -i pure-ftpd quota
-
-chkconfig --add pure-ftpd
-/etc/init.d/pure-ftpd start
-
-
-5) Install mydns
-
-cd /tmp
-wget http://download.opensuse.org/repositories/home:/bajizs_cnt/openSUSE_11.1/i586/mydns-ng-1.2.8-1.1.i586.rpm
-wget http://download.opensuse.org/repositories/home:/bajizs_cnt/openSUSE_11.1/i586/mydns-ng-mysql-1.2.8-1.1.i586.rpm
-rpm -i mydns*.rpm
-
-chkconfig --add mydns
-
-6) Install vlogger and webalizer
-
-cd /tmp
-wget http://n0rp.chemlab.org/vlogger/vlogger-1.3.tar.gz
-tar xvfz vlogger-1.3.tar.gz
-mv vlogger-1.3/vlogger /usr/sbin/
-rm -rf vlogger*
-yast2 -i webalizer perl-DateManip 
-
-6.1 Install fail2ban
-
-rpm -i http://download.opensuse.org/repositories/home:/leonardocf/openSUSE_11.0/i586/fail2ban-0.8.2-5.2.i586.rpm
-
-
-
-
-6.2) Cleanup
-
-rm -f /tmp/*.rpm
-
-6.2 Install jailkit
-
-cd /tmp
-wget http://olivier.sessink.nl/jailkit/jailkit-2.5.tar.gz
-tar xvfz jailkit-2.5.tar.gz
-cd jailkit-2.5
-./configure
-make
-make install
-cd ..
-rm -rf jailkit-2.5*
-
-
-7) Install ISPConfig 3
-
-There are two possile scenarios, but not both:
-7.1) Install the latest released version 
-7.2) Install directly from SVN
-
-7.1) Installation of beta 3 from tar.gz
-
-  cd /tmp
-  wget http://www.ispconfig.org/downloads/ISPConfig-3.0.0.9-rc2.tar.gz
-  tar xvfz ISPConfig-3.0.0.9-rc2.tar.gz
-  cd ispconfig3_install/install/
-
-7.2) Installation from SVN
-
-  yast2 -i subversion
-  cd /tmp
-  svn export svn://svn.ispconfig.org/ispconfig3/trunk/
-  cd trunk/install
-
-
-7.1+7.2) Now proceed with the ISPConfig installation.
-
-Now start the installation process by executing:
-
-php -q install.php
-
-// Cleanup
-rm -rf /tmp/trunk
-
-The installer will configure all services like postfix, sasl, courier, etc. for you. A manual setup as required for ISPConfig 2 (perfect setup guides) is not necessary. To login to the ISPConfig controlpanel, open the following URL in your browser (replace the IP to match your settings!):
-
-http://192.168.0.100:8080/
-
-the default login is:
-
-user: admin
-password: admin
-
-In case you get a permission denied error from apache, please restart the apache webserver process.
-
-Optional:
-
-Install a webbased Email Client
-
-yast2 -i squirrelmail
-
-
diff --git a/docs/INSTALL_OPENSUSE_11_2.txt b/docs/INSTALL_OPENSUSE_11_2.txt
deleted file mode 100644
index e6c9671..0000000
--- a/docs/INSTALL_OPENSUSE_11_2.txt
+++ /dev/null
@@ -1,173 +0,0 @@
-
-Installation
------------
-
-It is recommended to use a clean (fresh) OpenSUSE installatiom where you selected to install just the minimal packages. A Gnome or KDE desktop is not needed and will just slow down the server. Then follow the steps below to setup your server with ISPConfig 3:
-
-The following guide is for the 32Bit version of openSUSE, for 64Bit installations the package names may differ especially the names of downloaded rpm files.
-
-This guide will use Dovecote as pop3 / imap server and BIND as DNS Server. Dovecot and BIND are supported by ISPConfig version > 3.0.2
-
-Install some basic packes and the compilers that we need later
-
-// yast2 -i findutils readline libgcc glibc-devel findutils-locate gcc flex lynx compat-readline4 db-devel wget gcc-c++ make vim telnet cron iptables iputils man man-pages nano pico
-
-yast2 -i findutils lynx wget vim telnet cron iptables iputils man man-pages nano pico sudo
-
-
-1) Install Postfix, Divecot, MySQL with the following command line (on one line!):
-
-yast2 -i postfix postfix-mysql mysql mysql-client python libmysqlclient-devel dovecot12 dovecot12-backend-mysql
-
-chkconfig --add mysql
-/etc/init.d/mysql start
-
-chkconfig --add postfix
-/etc/init.d/postfix start
-
-chkconfig --add dovecot
-/etc/init.d/dovecot start
-
-rpm -i http://download.opensuse.org/repositories/server:/mail/openSUSE_11.2/noarch/getmail-4.16.0-1.1.noarch.rpm
-
-
-// Set the mysql database password:
-
-mysql_secure_installation
-
-
-2) Install Amavisd-new, Spamassassin and Clamav (1 line!):
-
-yast2 -i amavisd-new clamav clamav-db zoo unzip unrar bzip2 unarj perl-DBD-mysql
-
-Open /etc/amavisd.conf...
-
-vi /etc/amavisd.conf
-
-... and add the $myhostname line with your correct hostname below the $mydomain line:
-
-[...]
-$mydomain = 'example.com';   # a convenient default for other settings
-$myhostname = "server1.$mydomain";
-[...]
-
-then execute:
-
-chkconfig --add amavis
-chkconfig --add clamd
-/etc/init.d/amavis start
-/etc/init.d/clamd start
-
-2.1) Install apache2
-
-yast2 -i apache2 apache2-mod_fcgid
-
-3) Install PHP5 modules (1 line!):
-
-yast2 -i php5-bcmath php5-bz2 php5-calendar php5-ctype php5-curl php5-dom php5-ftp php5-gd php5-gettext php5-gmp php5-iconv php5-imap php5-ldap php5-mbstring php5-mcrypt php5-mysql php5-odbc php5-openssl php5-pcntl php5-pgsql php5-posix php5-shmop php5-snmp php5-soap php5-sockets php5-sqlite php5-sysvsem php5-tokenizer php5-wddx php5-xmlrpc php5-xsl php5-zlib php5-exif php5-fastcgi php5-pear php5-sysvmsg php5-sysvshm ImageMagick curl apache2-mod_php5
-
-rpm -i http://download.opensuse.org/repositories/server:/php/openSUSE_11.2/i586/suphp-0.7.1-3.1.i586.rpm
-
-Edit the file /etc/php5/cli/php.ini
-
-vi /etc/php5/cli/php.ini
-
-and change:
-
-error_reporting = E_ALL & ~E_DEPRECATED
-
-to:
-
-error_reporting = E_ALL & ~E_NOTICE
-
-Then run the following to enable the Apache modules:
-
-a2enmod suexec
-a2enmod rewrite
-a2enmod ssl
-a2enmod actions
-a2enmod suphp
-a2enmod fcgid
-
-// Fix a suexec permission problem
-
-chown root:www /usr/sbin/suexec2
-chmod 4755 /usr/sbin/suexec2
-
-// and start apache
-
-chkconfig --add apache2
-/etc/init.d/apache2 start
-
-// Comment out the /error/ alias in the apache error.conf file or the custom error pages in the websites wont work.
-
-Edit the file error.conf in the apache configuration directory and comment out the line:
-
-Alias /error/ "/usr/share/apache2/error/
-
-By changing the line to:
-
-# Alias /error/ "/usr/share/apache2/error/
-
-// Install phpmyadmin
-
-cd /tmp
-
-yast2 -i pwgen
-rpm -i http://download.opensuse.org/repositories/server:/php:/applications/openSUSE_11.2/noarch/phpMyAdmin-3.2.5-1.1.noarch.rpm
-
-// Warnings like "warning: phpMyAdmin-3.1.2-1.1.src.rpm: Header V3 DSA signature: NOKEY, key ID 367fe7fc" can be ignored.
-
-4) Install pure-ftpd and quota
-
-yast2 -i pure-ftpd quota
-
-chkconfig --add pure-ftpd
-/etc/init.d/pure-ftpd start
-
-
-5) Install Bind
-
-yast2 -i bind
-
-chkconfig --add named
-
-6) Install webalizer
-
-yast2 -i webalizer perl-DateManip 
-
-6.1 Install fail2ban
-
-yast2 -i fail2ban
-
-
-6.2 Install jailkit
-
-rpm -i http://download.opensuse.org/repositories/security/openSUSE_11.2/i586/jailkit-2.11-1.1.i586.rpm
-
-7) Install ISPConfig 3
-
-cd /tmp
-wget http://www.ispconfig.org/downloads/ISPConfig-3.0.2.tar.gz
-tar xvfz ISPConfig-3.0.2.tar.gz
-cd ispconfig3_install/install/
-php -q install.php
-
-The installer will configure all services like postfix, sasl, courier, etc. for you. A manual setup as required for ISPConfig 2 (perfect setup guides) is not necessary. To login to the ISPConfig controlpanel, open the following URL in your browser (replace the IP to match your settings!):
-
-http://192.168.0.100:8080/
-
-the default login is:
-
-user: admin
-password: admin
-
-In case you get a permission denied error from apache, please restart the apache webserver process.
-
-Optional:
-
-Install a webbased Email Client
-
-rpm -i http://download.opensuse.org/repositories/server:/php:/applications/openSUSE_11.2/noarch/squirrelmail-1.4.19-4.1.noarch.rpm
-
-
diff --git a/docs/INSTALL_OPENSUSE_11_3.txt b/docs/INSTALL_OPENSUSE_11_3.txt
deleted file mode 100644
index e036d6b..0000000
--- a/docs/INSTALL_OPENSUSE_11_3.txt
+++ /dev/null
@@ -1,195 +0,0 @@
-
-Installation
------------
-
-It is recommended to use a clean (fresh) OpenSUSE installatiom where you selected to install just the minimal packages. A Gnome or KDE desktop is not needed and will just slow down the server. Then follow the steps below to setup your server with ISPConfig 3:
-
-The following guide is for the 64Bit version of openSUSE, for 32Bit installations the package names may differ especially the names of downloaded rpm files.
-
-This guide will use Dovecote as pop3 / imap server and BIND as DNS Server. Dovecot and BIND are supported by ISPConfig version > 3.0.2
-
-Before we start, update the installed packages
-
-zypper update
-
-Install some basic packes and the compilers that we need later
-
-yast2 -i findutils readline libgcc glibc-devel findutils-locate gcc flex lynx compat-readline4 db-devel wget gcc-c++ subversion make vim telnet cron iptables iputils man man-pages nano pico sudo
-
-1) Install Postfix, Divecot, MySQL with the following command line (on one line!):
-
-yast2 -i postfix postfix-mysql mysql mysql-community-server mysql-client python libmysqlclient-devel dovecot12 dovecot12-backend-mysql pwgen cron
-
-vi /etc/postfix/master.cf
-=========================
-[...]
-tlsmgr    unix  -       -       n       1000?   1       tlsmgr
-[...]
-
-ln -s /usr/lib64/dovecot/modules /usr/lib/dovecot
-
-chkconfig --add mysql
-/etc/init.d/mysql start
-
-chkconfig --add postfix
-/etc/init.d/postfix start
-
-chkconfig --add dovecot
-/etc/init.d/dovecot start
-
-rpm -ivh http://download.opensuse.org/repositories/server:/mail/openSUSE_11.3/noarch/getmail-4.20.0-1.1.noarch.rpm
-
-// Set the mysql database password:
-
-mysql_secure_installation
-
-
-2) Install Amavisd-new, Spamassassin and Clamav (1 line!):
-
-yast2 -i amavisd-new clamav clamav-db zoo unzip unrar bzip2 unarj perl-DBD-mysql
-
-Open /etc/amavisd.conf...
-
-vi /etc/amavisd.conf
-
-... and add the $myhostname line with your correct hostname below the $mydomain line:
-
-[...]
-$mydomain = 'example.com';   # a convenient default for other settings
-$myhostname = "server1.$mydomain";
-[...]
-
-then execute:
-
-mkdir -p /var/run/clamav
-ln -s /var/lib/clamav/clamd-socket /var/run/clamav/clamd
-
-# On 64Bit systems, run this command to symlink the dovecot library folder. Thats for 64Bit systems only, so do not exekute the ln command on 32bit systems.
-
-ln -s /usr/lib64/dovecot/modules /usr/lib/dovecot 
-
-
-chkconfig --add amavis
-chkconfig --add clamd
-/etc/init.d/amavis start
-/etc/init.d/clamd start
-
-2.1) Install apache2
-
-yast2 -i apache2 apache2-mod_fcgid
-
-3) Install PHP5 modules (1 line!):
-
-yast2 -i php5-bcmath php5-bz2 php5-calendar php5-ctype php5-curl php5-dom php5-ftp php5-gd php5-gettext php5-gmp php5-iconv php5-imap php5-ldap php5-mbstring php5-mcrypt php5-mysql php5-odbc php5-openssl php5-pcntl php5-pgsql php5-posix php5-shmop php5-snmp php5-soap php5-sockets php5-sqlite php5-sysvsem php5-tokenizer php5-wddx php5-xmlrpc php5-xsl php5-zlib php5-exif php5-fastcgi php5-pear php5-sysvmsg php5-sysvshm ImageMagick curl apache2-mod_php5
-
-rpm -ivh http://download.opensuse.org/repositories/server:/php/openSUSE_11.3/x86_64/suphp-0.7.1-3.1.x86_64.rpm
-
-Edit the file /etc/php5/cli/php.ini
-
-vi /etc/php5/cli/php.ini
-
-and change:
-
-error_reporting = E_ALL & ~E_DEPRECATED
-
-to:
-
-error_reporting = E_ALL & ~E_NOTICE
-
-Then run the following to enable the Apache modules:
-
-a2enmod suexec
-a2enmod rewrite
-a2enmod ssl
-a2enmod actions
-a2enmod suphp
-a2enmod fcgid
-
-// Fix a suexec permission problem
-
-chown root:www /usr/sbin/suexec2
-chmod 4755 /usr/sbin/suexec2
-
-// and start apache
-
-chkconfig --add apache2
-/etc/init.d/apache2 start
-
-// Comment out the /error/ alias in the apache error.conf file or the custom error pages in the websites wont work.
-
-Edit the file error.conf in the apache configuration directory and comment out the line:
-
-Alias /error/ "/usr/share/apache2/error/
-
-By changing the line to:
-
-# Alias /error/ "/usr/share/apache2/error/
-
-// Install phpmyadmin
-
-cd /tmp
-
-yast2 -i pwgen
-rpm -ivh http://download.opensuse.org/repositories/server:/php:/applications/openSUSE_11.3/noarch/phpMyAdmin-3.3.4-1.1.noarch.rpm
-
-// Warnings like "warning: phpMyAdmin-3.1.2-1.1.src.rpm: Header V3 DSA signature: NOKEY, key ID 367fe7fc" can be ignored.
-
-4) Install pure-ftpd and quota
-
-yast2 -i pure-ftpd quota
-
-chkconfig --add pure-ftpd
-/etc/init.d/pure-ftpd start
-
-
-5) Install Bind
-
-yast2 -i bind
-
-chkconfig --add named
-
-6) Install webalizer and awstats
-
-rpm -ivh http://download.opensuse.org/repositories/network:/utilities/openSUSE_11.3/noarch/awstats-6.95-3.1.noarch.rpm
-yast2 -i webalizer perl-DateManip 
-
-6.1 Install fail2ban
-
-yast2 -i fail2ban
-
-
-6.2 Install jailkit and ntp
-
-rpm -ivh http://download.opensuse.org/repositories/security/openSUSE_11.3/x86_64/jailkit-2.11-1.2.x86_64.rpm
-
-yast2 -i xntp
-
-chkconfig --add ntp
-/etc/init.d/ntp start
-
-7) Install ISPConfig 3
-
-cd /tmp
-wget http://www.ispconfig.org/downloads/ISPConfig-3.0.2.2.tar.gz
-tar xvfz ISPConfig-3.0.2.2.tar.gz
-cd ispconfig3_install/install/
-php -q install.php
-
-The installer will configure all services like postfix, sasl, courier, etc. for you. A manual setup as required for ISPConfig 2 (perfect setup guides) is not necessary. To login to the ISPConfig controlpanel, open the following URL in your browser (replace the IP to match your settings!):
-
-http://192.168.0.100:8080/
-
-the default login is:
-
-user: admin
-password: admin
-
-In case you get a permission denied error from apache, please restart the apache webserver process.
-
-Optional:
-
-Install a webbased Email Client
-
-rpm -i http://download.opensuse.org/repositories/server:/php:/applications/openSUSE_11.2/noarch/squirrelmail-1.4.19-4.1.noarch.rpm
-
-
diff --git a/docs/INSTALL_POWERDNS_DEBIAN_5.txt b/docs/INSTALL_POWERDNS_DEBIAN_5.txt
deleted file mode 100644
index 1db5049..0000000
--- a/docs/INSTALL_POWERDNS_DEBIAN_5.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-
-# Installing PowerDNS on Debian
-----------------------------------------------------------------------------
-
-apt-get install pdns-server pdns-backend-mysql
-
-
diff --git a/docs/INSTALL_UBUNTU_7.10.txt b/docs/INSTALL_UBUNTU_7.10.txt
deleted file mode 100644
index be5b713..0000000
--- a/docs/INSTALL_UBUNTU_7.10.txt
+++ /dev/null
@@ -1,111 +0,0 @@
-Installation
------------
-
-It is recommended to use a clean (fresh) Ubuntu 7.10 (Gutsy Gibbon) install where you selected no additional packages or servers during setup. Then follow the steps below to setup your server with ISPConfig 3:
-
-Now become root user by executing:
-
-sudo su
-
-and entering the password of the user that you created during setup.
-
-Edit the file /etc/apt/sources.list and comment out the line beginning with "deb cdrom:....", then run:
-
-apt-get update
-apt-get -u upgrade
-
-
-1) Install Postfix, Courier, Saslauthd, MySQL, phpMyAdmin with the following command line (on one line!):
-
-apt-get install postfix postfix-mysql postfix-doc mysql-client mysql-server courier-authdaemon courier-authlib-mysql courier-pop courier-pop-ssl courier-imap courier-imap-ssl postfix-tls libsasl2-2 libsasl2-modules libsasl2-modules-sql sasl2-bin libpam-mysql openssl courier-maildrop getmail4
-
-Answer the questions from the package manager as follows.
-
-Create directories for web-based administration ? <-- No
-General type of configuration? <-- Internet site
-Mail name? <-- server1.mydomain.tld
- SSL certificate required <-- Ok
-
-...use your own domain name of course ;)
-
-2) Install Amavisd-new, Spamassassin and Clamav (1 line!):
-
-apt-get install amavisd-new spamassassin clamav clamav-daemon zoo unzip bzip2 arj nomarch lzop cabextract apt-listchanges libnet-ldap-perl libauthen-sasl-perl clamav-docs daemon libio-string-perl libio-socket-ssl-perl libnet-ident-perl zip libnet-dns-perl
-
-
-3) Install apache, PHP5 and phpmyadmin (1 line!):
-
-apt-get install apache2 apache2.2-common apache2-doc apache2-mpm-prefork apache2-utils libexpat1 ssl-cert libapache2-mod-php5 php5 php5-common php5-gd php5-mysql php5-imap phpmyadmin php5-cli
-
-Then run the following to enable the Apache modules:
-
-a2enmod suexec
-a2enmod rewrite
-a2enmod ssl
-a2enmod actions
-a2enmod include
-
-4) Install pure-ftpd and quota
-
-First we have to make sure that the capability module is loaded in the kernel
-
-modprobe capability
-echo 'capability' >> /etc/modules
-
-Then we install pureftpd and quota.
-
-apt-get install pure-ftpd-common pure-ftpd-mysql quota quotatool
-
-echo 'yes' > /etc/pure-ftpd/conf/DontResolve
-
-5) Install mydns
-
-apt-get install mydns-mysql
-
-The mydns installer is a bit tricky, you will have to select to create a new database for mydns and use a existing mysql user, e.g. the mysql root user. This database is only to fullfill the requirements for the debian pacakge during installation and will not be used by ISPConfig later. ISPConfig will automatically change the mydns configuration files to use the ISPConfig database.
-
-
-6) Install vlogger and webalizer
-
-apt-get install vlogger webalizer awstats geoip-bin
-
-
-7) Install ISPConfig 3
-
-There are two possile scenarios, but not both:
-1) Install the latest alpha 
-2) Install directly from SVN
-
-apt-get install php5-cli
-
-1) Installation of beta 3
-
-  cd /tmp
-  wget http://www.ispconfig.org/downloads/ISPConfig_3.0.0.9-rc2.tar.gz
-  tar xvfz ISPConfig_3.0.0.9-rc2.tar.gz
-  cd ispconfig3_install/install/
-
-2) Installation from SVN
-
-  apt-get install subversion
-  cd /tmp
-  svn export svn://svn.ispconfig.org/ispconfig3/trunk/
-  cd trunk/install
-
-
-1+2) Now proceed with the ISPConfig installation.
-
-Now start the installation process by executing:
-
-php -q install.php
-
-The installer will configure all services like postfix, sasl, courier, etc. for you. A manual setup as required for ISPConfig 2 (perfect setup guides) is not necessary. To login to the ISPConfig controlpanel, open the following URL in your browser (replace the IP to match your settings!):
-
-http://192.168.0.100:8080/
-
-the default login is:
-
-user: admin
-password: admin
-
-In case you get a permission denied error from apache, please restart the apache webserver process.
diff --git a/docs/INSTALL_UBUNTU_8.04.txt b/docs/INSTALL_UBUNTU_8.04.txt
deleted file mode 100644
index dec6586..0000000
--- a/docs/INSTALL_UBUNTU_8.04.txt
+++ /dev/null
@@ -1,438 +0,0 @@
-===============================================================================
-
-Installation
-===============================================================================
-
-It is recommended to use a clean (fresh) Ubuntu 8.04 LTS install where you selected no additional packages or servers during setup. Then follow the steps below to setup your server with ISPConfig 3:
-
-1) Prepare your OS
-*******************************************************************************
-Become root user by executing:
-___
-sudo su
-___
-
-and entering the password of the user that you created during setup.
-
-Edit the file /etc/apt/sources.list and comment out the line beginning with "deb cdrom:....", then run:
-___
-apt-get update
-apt-get -u upgrade
-___
-
-1.1) Change The Default Shell
-*******************************************************************************
-There are alway Shell-Scripts which are not POSIX-compatible and only run when using BASH instead of DASH!
-___
-sudo dpkg-reconfigure dash
-                           <-- ANSWER WITH: No
-___
-
-1.1) Install some software
-*******************************************************************************
-___
-apt-get install wget
-___
-
-
-2) Install Postfix, Courier, Saslauthd, MySQL, phpMyAdmin
-*******************************************************************************
-(1 line!)
-___
-apt-get install postfix postfix-mysql postfix-doc mysql-client mysql-server courier-authdaemon courier-authlib-mysql courier-pop courier-pop-ssl courier-imap courier-imap-ssl libsasl2-2 libsasl2-modules libsasl2-modules-sql sasl2-bin libpam-mysql openssl courier-maildrop getmail4
-___
-
-Answer the questions from the package manager as follows.
-
-Enter the mysql root password. <-- Enter your mysql-root Password
-Create directories for web-based administration ? <-- No
-General type of configuration? <-- Internet site
-Mail name? <-- server1.mydomain.tld
-SSL certificate required <-- Ok
-
-... use your own domain name of course ;)
-
-Authentication will be done by saslauthd. We have to change a few things to make it work properly. Because Postfix runs chrooted in /var/spool/postfix  we have to do the following:
-___
-echo 'pwcheck_method: saslauthd' >> /etc/postfix/sasl/smtpd.conf
-echo 'mech_list: plain login' >> /etc/postfix/sasl/smtpd.conf
-
-mkdir -p /var/spool/postfix/var/run/saslauthd
-___
-Now we have to edit /etc/default/saslauthd in order to activate saslauthd. Set
-###
-START=yes
-###
-
-and change the line OPTIONS="-c -m /var/run/saslauthd" to
-###
-OPTIONS="-c -m /var/spool/postfix/var/run/saslauthd -r"
-###
-
-Next add the postfix user to the sasl group (this makes sure that Postfix has the permission to access saslauthd):
-___
-adduser postfix sasl
-___
-
-Now restart Postfix and start saslauthd:
-___
-/etc/init.d/postfix restart
-/etc/init.d/saslauthd start
-___
-
-
-3) Install Amavisd-new, Spamassassin and Clamav
-*******************************************************************************
-(1 line!)
-___
-apt-get install amavisd-new spamassassin clamav clamav-daemon zoo unzip bzip2 arj nomarch lzop cabextract apt-listchanges libnet-ldap-perl libauthen-sasl-perl clamav-docs daemon libio-string-perl libio-socket-ssl-perl libnet-ident-perl zip libnet-dns-perl
-___
-
-
-4) Install apache, PHP5 and phpmyadmin
-*******************************************************************************
-(1 line!)
-___
-apt-get install apache2 apache2.2-common apache2-doc apache2-mpm-prefork apache2-utils libexpat1 ssl-cert libapache2-mod-php5 php5 php5-common php5-gd php5-mysql php5-imap phpmyadmin php5-cli
-___
-
-Then run the following to enable the Apache modules:
-___
-a2enmod suexec
-a2enmod rewrite
-a2enmod ssl
-a2enmod include
-a2enmod actions
-a2enmod headers
-___
-
-4.1) Optional: Install SuPHP
-*******************************************************************************
-___
-apt-get install libapache2-mod-suphp
-vi /etc/suphp/suphp.conf
-___
-
-set docroot to:
-###
-docroot=/var/www/clients
-###
-
-Change: application/x-httpd-php=php:/usr/bin/php-cgi to:
-###
-x-httpd-php=php:/usr/bin/php-cgi
-###
-
-4.2) Optional: Install Fast-CGI
-*******************************************************************************
-___
-apt-get install libapache2-mod-fcgid
-___
-
-
-5) Install pure-ftpd and quota
-*******************************************************************************
-___
-apt-get install pure-ftpd-common pure-ftpd-mysql quota quotatool
-echo 'yes' > /etc/pure-ftpd/conf/DontResolve
-___
-
-
-6) Install mydns
-*******************************************************************************
-___
-apt-get install g++ libc6 gcc gawk make texinfo libmysqlclient15-dev
-cd /tmp
-wget http://heanet.dl.sourceforge.net/sourceforge/mydns-ng/mydns-1.2.8.15.tar.gz
-tar xvfz mydns-1.2.8.15.tar.gz
-cd mydns-1.2.8
-./configure
-make
-make install
-___
-
-Now create the start / stop script for mydns:
-___
-vi /etc/init.d/mydns
-___
-
-and enter the following lines (between the "---"-lines):
-
--------------------------------------------------------------------------------
-#! /bin/bash
-#
-# mydns         Start the MyDNS server
-#
-# Author:       Philipp Kern <phil@philkern.de>.
-#               Based upon skeleton 1.9.4 by Miquel van Smoorenburg
-#               <miquels@cistron.nl> and Ian Murdock <imurdock@gnu.ai.mit.edu>.
-#
-
-set -e
-
-PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
-DAEMON=/usr/local/sbin/mydns
-NAME=mydns
-DESC="DNS server"
-
-SCRIPTNAME=/etc/init.d/$NAME
-
-# Gracefully exit if the package has been removed.
-test -x $DAEMON || exit 0
-
-case "$1" in
-  start)
-        echo -n "Starting $DESC: $NAME"
-        start-stop-daemon --start --quiet \
-                --exec $DAEMON -- -b
-        echo "."
-        ;;
-  stop)
-        echo -n "Stopping $DESC: $NAME"
-        start-stop-daemon --stop --oknodo --quiet \
-                --exec $DAEMON
-        echo "."
-        ;;
-  reload|force-reload)
-        echo -n "Reloading $DESC configuration ..."
-        start-stop-daemon --stop --signal HUP --quiet \
-                --exec $DAEMON
-        echo "done."
-        ;;
-  restart)
-        echo -n "Restarting $DESC: $NAME"
-        start-stop-daemon --stop --quiet --oknodo \
-                --exec $DAEMON
-        sleep 1
-        start-stop-daemon --start --quiet \
-                --exec $DAEMON -- -b
-        echo "."
-        ;;
-  *)
-        echo "Usage: $SCRIPTNAME {start|stop|restart|reload|force-reload}" >&2
-        exit 1
-        ;;
-esac
-
-exit 0
--------------------------------------------------------------------------------
-
-now execute:
-___
-chmod +x /etc/init.d/mydns
-update-rc.d mydns defaults
-___
-
-
-7) Install vlogger, webalizer and firewall
-*******************************************************************************
-___
-apt-get install vlogger webalizer bastille awstats geoip-bin
-___
-
-7.1) OPTIONAL: Installing Jailkit
-*******************************************************************************
-___
-apt-get install build-essential autoconf automake1.9 libtool flex bison debhelper
-cd /tmp
-wget http://olivier.sessink.nl/jailkit/jailkit-2.7.tar.gz
-tar xvfz jailkit-2.7.tar.gz
-cd jailkit-2.7
-./debian/rules binary
-cd ..
-dpkg -i jailkit_2.7-1_i386.deb
-rm -rf jailkit-2.7*
-___
-
-
-8) Install ISPConfig 3
-*******************************************************************************
-There are two possile scenarios a) or b), but not both:
-
-a) Installation of beta 3
-___
-cd /tmp
-wget http://www.ispconfig.org/downloads/ISPConfig-3.0.0.9-rc2.tar.gz
-tar xvfz ISPConfig_3.0.0.9-rc2.tar.gz
-cd ispconfig3_install/install/
-___
-
-b) Installation from SVN
-___
-apt-get install subversion
-cd /tmp
-svn export svn://svn.ispconfig.org/ispconfig3/trunk/
-cd trunk/install
-___
-
-after a) or b)
-
-proceed with the ISPConfig installation. Now start the installation process by executing:
-___
-php -q install.php
-___
-
-The installer will configure all services like postfix, sasl, courier, etc. for you. A manual setup as required for ISPConfig 2 (perfect setup guides) is not necessary. To login to the ISPConfig controlpanel, open the following URL in your browser (replace the IP to match your settings!):
-
-http://server1.mydomain.tld:8080/
-
-the default login is:
-
-user: admin
-password: admin
-
-In case you get a permission denied error from apache, please restart the apache webserver process.
-
-
-8) Further Configuration-Tips
-*******************************************************************************
-8.1) Apache
-*******************************************************************************
-edit /etc/apache2/sites-available/default
-change the first lines to match your system.
-
-Replace 0.0.0.0 with your IP.
-Change Document root to /var/www/apache2-default/
-This directory is now the standard-hompage for your Server.
-###
-NameVirtualHost 0.0.0.0:80
-
-<VirtualHost 0.0.0.0:80>
-	ServerAdmin webmaster@localhost
-
-	DocumentRoot /var/www/apache2-default/
-
-###
-
-8.2) Postfix - Aliases
-*******************************************************************************
-change /etc/aliases
-###
-# See man 5 aliases for format
-postmaster:    root
-clamav: root
-
-root: webmaster@yourdomain.tld
-###
-
-Then run:
-___
-newaliases
-___
-
-8.3) Php.ini
-*******************************************************************************
-I changed the following in the php.ini-Files in the following directorys:
-/etc/php5/apache2/
-/etc/php5/cgi/
-/etc/php5/cli/
-
-It is important to search the following parameters in the php.ini and replace them!!!
-Don't just copy the whole stuff to the end of the file.
-
-###
-memory_limit = 64M      ; Maximum amount of memory a script may consume (16MB)
-
-display_errors = Off
-
-log_errors = On
-
-upload_max_filesize = 32M
-
-allow_url_fopen = On
-allow_url_include = On
-
-date.timezone = Europe/Berlin
-
-extension = imap.so
-extension = mcrypt.so
-
-;Typo3 fast-cgi PHP5 bug fix
-cgi.fix_pathinfo = 0
-
-###
-
-add to the end of the file:
-###
-[htscanner]
-Extension = "htscanner.so"
-config_file = ".htaccess"
-default_docroot = "/var/www"
-###
-
-
-9) Additional Software
-*******************************************************************************
-9.1) NTP, Denyhosts
-*******************************************************************************
-__
-apt-get install ntp denyhosts
-__
-
-in /etc/ntp.conf replace the server-line with:
-###
-server 0.pool.ntp.org
-server 1.pool.ntp.org
-server 2.pool.ntp.org
-###
-
-9.2) Typo3 - typo3.org
-*******************************************************************************
-___
-apt-get install imagemagick php5-gd php5-imagick gs gs-esp
-___
-
-There is a bug in the php5-library under Ubuntu 8.04. You can fix it by changing "cgi.fix_pathinfo = 0" in the php.ini. Look at 8.4).
-
-10.2) Horde (Webmail) - horde.org
-*******************************************************************************
-First of all, install the horde3 and Imp4 packages (Ubuntu/Debian)
-___
-apt-get install horde3 imp4 gollem kronolith2 mnemo2 nag2 turba2
-pear install --onlyreqdeps Log Mail Mail_Mime MDB2 File Date
-___
-
-It is then necessary to setup an Alias for Apache. 
-If you want horde only on single pages, that are created with ispc3:
-Add the following line to ISPConfig->Sites->Web Domain->Options->Apache directives
-If you want to access webmail on all pages add the following line to /etc/apache2/apache2.conf
-###
-Alias /horde3 /usr/share/horde3
-###
-
-Allow Apache to write horde configuration files :
-___
-chown -R www-data:www-data /etc/horde
-___
-
-Important parameters to change are (in Horde setup) :
-###
-Horde URL (change it to /horde3)
-Enable Database Access. Do Not use MySQL Improved (4+), my attempts at using it failed. MySQL Standard runs fine however
-Enable Authentication. I recommend IMAP authentication (something like {localhost:143/imap/notls}. Do not forget the /notls, not specifying failed on my setup). Also make sure to add your username to the list of Administrators, otherwise, you won’t have access to horde/imp4 parameters. Using anything else than IMAP seeemed to fail on my setup
-Generate the configuration
-Horde should now be setup. You now have to configure imp4
-generate a configuration using the horde administration panel
-modify the /etc/horde/imp4/servers.php file. Instruction are given inside the file concerning the syntax. If you run Courier-IMAP, and want Imp to automatically authenticate using horde credentials :
-$servers[’imap’] = array(
-‘name’ => ‘IMAP Server’,
-’server’ => ‘localhost’,
-‘hordeauth’ => true,
-‘protocol’ => ‘imap/notls’,
-‘port’ => 143,
-‘folders’ => ‘INBOX.’,
-‘namespace’ => ‘’,
-‘maildomain’ => ‘domain.com’,
-’smtphost’ => ‘localhost’,
-’smtpport’ => 25,
-‘realm’ => ‘’,
-‘preferred’ => ‘’,
-‘dotfiles’ => false,
-‘hierarchies’ => array()
-);
-###
-
-
-11) have fun and drink a cup of coffee
-*******************************************************************************
-:-)
diff --git a/docs/INSTALL_UBUNTU_8.10.txt b/docs/INSTALL_UBUNTU_8.10.txt
deleted file mode 100644
index dc7874c..0000000
--- a/docs/INSTALL_UBUNTU_8.10.txt
+++ /dev/null
@@ -1,450 +0,0 @@
-===============================================================================
-
-Installation
-===============================================================================
-
-It is recommended to use a clean (fresh) Ubuntu 8.04 LTS install where you selected no additional packages or servers during setup. Then follow the steps below to setup your server with ISPConfig 3:
-
-1) Prepare your OS
-*******************************************************************************
-Become root user by executing:
-___
-sudo su
-___
-
-and entering the password of the user that you created during setup.
-
-Edit the file /etc/apt/sources.list and comment out the line beginning with "deb cdrom:....", then run:
-___
-apt-get update
-apt-get -u upgrade
-___
-
-1.1) Change The Default Shell
-*******************************************************************************
-There are alway Shell-Scripts which are not POSIX-compatible and only run when using BASH instead of DASH!
-___
-sudo dpkg-reconfigure dash
-                           <-- ANSWER WITH: No
-___
-
-1.1) Install some software
-*******************************************************************************
-___
-apt-get install wget
-___
-
-
-2) Install Postfix, Courier, Saslauthd, MySQL, phpMyAdmin
-*******************************************************************************
-(1 line!)
-___
-apt-get install postfix postfix-mysql postfix-doc mysql-client mysql-server courier-authdaemon courier-authlib-mysql courier-pop courier-pop-ssl courier-imap courier-imap-ssl libsasl2-2 libsasl2-modules libsasl2-modules-sql sasl2-bin libpam-mysql openssl maildrop getmail4
-___
-
-Answer the questions from the package manager as follows.
-
-Enter the mysql root password. <-- Enter your mysql-root Password
-Create directories for web-based administration ? <-- No
-General type of configuration? <-- Internet site
-Mail name? <-- server1.mydomain.tld
-SSL certificate required <-- Ok
-
-... use your own domain name of course ;)
-
-Authentication will be done by saslauthd. We have to change a few things to make it work properly. Because Postfix runs chrooted in /var/spool/postfix  we have to do the following:
-___
-echo 'pwcheck_method: saslauthd' >> /etc/postfix/sasl/smtpd.conf
-echo 'mech_list: plain login' >> /etc/postfix/sasl/smtpd.conf
-
-mkdir -p /var/spool/postfix/var/run/saslauthd
-chmod 4755 /var/run/courier/authdaemon
-
-___
-Now we have to edit /etc/default/saslauthd in order to activate saslauthd. Set
-###
-START=yes
-###
-
-and change the line OPTIONS="-c -m /var/run/saslauthd" to
-###
-OPTIONS="-c -m /var/spool/postfix/var/run/saslauthd -r"
-###
-
-Next add the postfix user to the sasl group (this makes sure that Postfix has the permission to access saslauthd):
-___
-adduser postfix sasl
-___
-
-Now restart Postfix and start saslauthd:
-___
-/etc/init.d/postfix restart
-/etc/init.d/saslauthd start
-___
-
-
-3) Install Amavisd-new, Spamassassin and Clamav
-*******************************************************************************
-(1 line!)
-___
-apt-get install amavisd-new spamassassin clamav clamav-daemon zoo unzip bzip2 arj nomarch lzop cabextract apt-listchanges libnet-ldap-perl libauthen-sasl-perl clamav-docs daemon libio-string-perl libio-socket-ssl-perl libnet-ident-perl zip libnet-dns-perl
-___
-
-
-4) Install apache, PHP5 and phpmyadmin
-*******************************************************************************
-(1 line!)
-___
-apt-get install apache2 apache2.2-common apache2-doc apache2-mpm-prefork apache2-utils libexpat1 ssl-cert libapache2-mod-php5 php5 php5-common php5-gd php5-mysql php5-imap phpmyadmin php5-cli
-___
-
-Then run the following to enable the Apache modules:
-___
-a2enmod suexec
-a2enmod rewrite
-a2enmod ssl
-a2enmod include
-a2enmod actions
-a2enmod headers
-___
-
-4.1) Optional: Install SuPHP
-*******************************************************************************
-___
-apt-get install libapache2-mod-suphp
-vi /etc/suphp/suphp.conf
-___
-
-set docroot to:
-###
-docroot=/var/clients
-###
-
-Change: application/x-httpd-php=php:/usr/bin/php-cgi to:
-###
-x-httpd-php=php:/usr/bin/php-cgi
-###
-
-4.2) Optional: Install Fast-CGI
-*******************************************************************************
-___
-apt-get install libapache2-mod-fcgid
-___
-
-
-5) Install pure-ftpd and quota
-*******************************************************************************
-___
-apt-get install pure-ftpd-common pure-ftpd-mysql quota quotatool
-echo 'yes' > /etc/pure-ftpd/conf/DontResolve
-___
-
-
-6) Install mydns
-*******************************************************************************
-___
-apt-get install g++ libc6 gcc gawk make texinfo libmysqlclient15-dev
-cd /tmp
-wget http://heanet.dl.sourceforge.net/sourceforge/mydns-ng/mydns-1.2.8.15.tar.gz
-tar xvfz mydns-1.2.8.15.tar.gz
-cd mydns-1.2.8
-./configure
-make
-make install
-___
-
-Now create the start / stop script for mydns:
-___
-vi /etc/init.d/mydns
-___
-
-and enter the following lines (between the "---"-lines):
-
--------------------------------------------------------------------------------
-#! /bin/bash
-#
-# mydns         Start the MyDNS server
-#
-# Author:       Philipp Kern <phil@philkern.de>.
-#               Based upon skeleton 1.9.4 by Miquel van Smoorenburg
-#               <miquels@cistron.nl> and Ian Murdock <imurdock@gnu.ai.mit.edu>.
-#
-### BEGIN INIT INFO
-# Provides:          MyDNS
-# Required-Start:    $syslog
-# Should-Start:
-# Required-Stop:
-# Should-Stop:
-# Default-Start:     2 3 4 5
-# Default-Stop:      0 1 6
-# Short-Description: MyDNS Server
-# Description:       MyDNS DNS Server
-### END INIT INFO
-
-set -e
-
-PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
-DAEMON=/usr/local/sbin/mydns
-NAME=mydns
-DESC="DNS server"
-
-SCRIPTNAME=/etc/init.d/$NAME
-
-# Gracefully exit if the package has been removed.
-test -x $DAEMON || exit 0
-
-case "$1" in
-  start)
-        echo -n "Starting $DESC: $NAME"
-        start-stop-daemon --start --quiet \
-                --exec $DAEMON -- -b
-        echo "."
-        ;;
-  stop)
-        echo -n "Stopping $DESC: $NAME"
-        start-stop-daemon --stop --oknodo --quiet \
-                --exec $DAEMON
-        echo "."
-        ;;
-  reload|force-reload)
-        echo -n "Reloading $DESC configuration ..."
-        start-stop-daemon --stop --signal HUP --quiet \
-                --exec $DAEMON
-        echo "done."
-        ;;
-  restart)
-        echo -n "Restarting $DESC: $NAME"
-        start-stop-daemon --stop --quiet --oknodo \
-                --exec $DAEMON
-        sleep 1
-        start-stop-daemon --start --quiet \
-                --exec $DAEMON -- -b
-        echo "."
-        ;;
-  *)
-        echo "Usage: $SCRIPTNAME {start|stop|restart|reload|force-reload}" >&2
-        exit 1
-        ;;
-esac
-
-exit 0
--------------------------------------------------------------------------------
-
-now execute:
-___
-chmod +x /etc/init.d/mydns
-update-rc.d mydns defaults
-___
-
-
-7) Install vlogger, webalizer and firewall
-*******************************************************************************
-___
-apt-get install vlogger webalizer bastille awstats geoip-bin
-___
-
-7.1) OPTIONAL: Installing Jailkit
-*******************************************************************************
-___
-apt-get install build-essential autoconf automake1.9 libtool flex bison
-cd /tmp
-wget http://olivier.sessink.nl/jailkit/jailkit-2.5.tar.gz
-tar xvfz jailkit-2.5.tar.gz
-cd jailkit-2.5
-./configure
-make
-make install
-___
-
-
-8) Install ISPConfig 3
-*******************************************************************************
-There are two possile scenarios a) or b), but not both:
-
-a) Installation of beta 3
-___
-cd /tmp
-wget http://www.ispconfig.org/downloads/ISPConfig-3.0.0.9-rc2.tar.gz
-tar xvfz ISPConfig_3.0.0.9-rc2.tar.gz
-cd ispconfig3_install/install/
-___
-
-b) Installation from SVN
-___
-apt-get install subversion
-cd /tmp
-svn export svn://svn.ispconfig.org/ispconfig3/trunk/
-cd trunk/install
-___
-
-after a) or b)
-
-proceed with the ISPConfig installation. Now start the installation process by executing:
-___
-php -q install.php
-___
-
-The installer will configure all services like postfix, sasl, courier, etc. for you. A manual setup as required for ISPConfig 2 (perfect setup guides) is not necessary. To login to the ISPConfig controlpanel, open the following URL in your browser (replace the IP to match your settings!):
-
-http://server1.mydomain.tld:8080/
-
-the default login is:
-
-user: admin
-password: admin
-
-In case you get a permission denied error from apache, please restart the apache webserver process.
-
-
-8) Further Configuration-Tips
-*******************************************************************************
-8.1) Apache
-*******************************************************************************
-edit /etc/apache2/sites-available/default
-change the first lines to match your system.
-
-Replace 0.0.0.0 with your IP.
-Change Document root to /var/www/apache2-default/
-This directory is now the standard-hompage for your Server.
-###
-NameVirtualHost 0.0.0.0:80
-
-<VirtualHost 0.0.0.0:80>
-	ServerAdmin webmaster@localhost
-
-	DocumentRoot /var/www/apache2-default/
-
-###
-
-8.2) Postfix - Aliases
-*******************************************************************************
-change /etc/aliases
-###
-# See man 5 aliases for format
-postmaster:    root
-clamav: root
-
-root: webmaster@yourdomain.tld
-###
-
-Then run:
-___
-newaliases
-___
-
-8.3) Php.ini
-*******************************************************************************
-I changed the following in the php.ini-Files in the following directorys:
-/etc/php5/apache2/
-/etc/php5/cgi/
-/etc/php5/cli/
-
-It is important to search the following parameters in the php.ini and replace them!!!
-Don't just copy the whole stuff to the end of the file.
-
-###
-memory_limit = 64M      ; Maximum amount of memory a script may consume (16MB)
-
-display_errors = Off
-
-log_errors = On
-
-upload_max_filesize = 32M
-
-allow_url_fopen = On
-allow_url_include = On
-
-date.timezone = Europe/Berlin
-
-extension = imap.so
-extension = mcrypt.so
-
-;Typo3 fast-cgi PHP5 bug fix
-cgi.fix_pathinfo = 0
-
-###
-
-add to the end of the file:
-###
-[htscanner]
-Extension = "htscanner.so"
-config_file = ".htaccess"
-default_docroot = "/var/www"
-###
-
-
-9) Additional Software
-*******************************************************************************
-9.1) NTP, Denyhosts
-*******************************************************************************
-__
-apt-get install ntp denyhosts
-__
-
-in /etc/ntp.conf replace the server-line with:
-###
-server 0.pool.ntp.org
-server 1.pool.ntp.org
-server 2.pool.ntp.org
-###
-
-9.2) Typo3 - typo3.org
-*******************************************************************************
-___
-apt-get install imagemagick php5-gd php5-imagick gs gs-esp
-___
-
-There is a bug in the php5-library under Ubuntu 8.04. You can fix it by changing "cgi.fix_pathinfo = 0" in the php.ini. Look at 8.4).
-
-10.2) Horde (Webmail) - horde.org
-*******************************************************************************
-First of all, install the horde3 and Imp4 packages (Ubuntu/Debian)
-___
-apt-get install horde3 imp4 gollem kronolith2 mnemo2 nag2 turba2
-pear install --onlyreqdeps Log Mail Mail_Mime MDB2 File Date
-___
-
-It is then necessary to setup an Alias for Apache. 
-If you want horde only on single pages, that are created with ispc3:
-Add the following line to ISPConfig->Sites->Web Domain->Options->Apache directives
-If you want to access webmail on all pages add the following line to /etc/apache2/apache2.conf
-###
-Alias /horde3 /usr/share/horde3
-###
-
-Allow Apache to write horde configuration files :
-___
-chown -R www-data:www-data /etc/horde
-___
-
-Important parameters to change are (in Horde setup) :
-###
-Horde URL (change it to /horde3)
-Enable Database Access. Do Not use MySQL Improved (4+), my attempts at using it failed. MySQL Standard runs fine however
-Enable Authentication. I recommend IMAP authentication (something like {localhost:143/imap/notls}. Do not forget the /notls, not specifying failed on my setup). Also make sure to add your username to the list of Administrators, otherwise, you won’t have access to horde/imp4 parameters. Using anything else than IMAP seeemed to fail on my setup
-Generate the configuration
-Horde should now be setup. You now have to configure imp4
-generate a configuration using the horde administration panel
-modify the /etc/horde/imp4/servers.php file. Instruction are given inside the file concerning the syntax. If you run Courier-IMAP, and want Imp to automatically authenticate using horde credentials :
-$servers[’imap’] = array(
-‘name’ => ‘IMAP Server’,
-’server’ => ‘localhost’,
-‘hordeauth’ => true,
-‘protocol’ => ‘imap/notls’,
-‘port’ => 143,
-‘folders’ => ‘INBOX.’,
-‘namespace’ => ‘’,
-‘maildomain’ => ‘domain.com’,
-’smtphost’ => ‘localhost’,
-’smtpport’ => 25,
-‘realm’ => ‘’,
-‘preferred’ => ‘’,
-‘dotfiles’ => false,
-‘hierarchies’ => array()
-);
-###
-
-
-11) have fun and drink a cup of coffee
-*******************************************************************************
-:-)
diff --git a/docs/LOCALIZE_DEBIAN_LENNY.txt b/docs/LOCALIZE_DEBIAN_LENNY.txt
deleted file mode 100644
index e66e453..0000000
--- a/docs/LOCALIZE_DEBIAN_LENNY.txt
+++ /dev/null
@@ -1,144 +0,0 @@
-# For adding more supported languages to server,
-# in console, rerun locale-config by calling:
-
-dpkg-reconfigure locales
-
-# and either choise what you need, or tag "All languages" on top. Note at when having lots of locales in machine, it will slow down
-# installing and upgrading multilingual applications. You can (and should) leave system default as it is.
-
-#For now my "locale -a" outputs this:
-
-bokmal
-bokmål
-C
-de_DE
-de_DE@euro
-de_DE.iso88591
-de_DE.iso885915@euro
-de_DE.utf8
-deutsch
-en_US
-en_US.iso88591
-en_US.iso885915
-en_US.utf8
-fi_FI
-fi_FI@euro
-fi_FI.iso88591
-fi_FI.iso885915@euro
-fi_FI.utf8
-finnish
-français
-french
-fr_FR
-fr_FR@euro
-fr_FR.iso88591
-fr_FR.iso885915@euro
-fr_FR.utf8
-german
-nb_NO
-nb_NO.iso88591
-nb_NO.utf8
-no_NO
-no_NO.ISO-8859-1
-norwegian
-POSIX
-sv_SE
-sv_SE.iso88591
-sv_SE.iso885915
-sv_SE.utf8
-swedish
-
-
-# Edit /etc/apache2/conf.d/charset and add/edit following section:
-
-    AddDefaultCharset off
-
-    # official list of charset names and their respective RFCs.
-    #
-    AddCharset us-ascii    .ascii .us-ascii
-    AddCharset ISO-8859-1  .iso8859-1  .latin1
-    AddCharset ISO-8859-2  .iso8859-2  .latin2 .cen
-    AddCharset ISO-8859-3  .iso8859-3  .latin3
-    AddCharset ISO-8859-4  .iso8859-4  .latin4
-    AddCharset ISO-8859-5  .iso8859-5  .cyr .iso-ru
-    AddCharset ISO-8859-6  .iso8859-6  .arb .arabic
-    AddCharset ISO-8859-7  .iso8859-7  .grk .greek
-    AddCharset ISO-8859-8  .iso8859-8  .heb .hebrew
-    AddCharset ISO-8859-9  .iso8859-9  .latin5 .trk
-    AddCharset ISO-8859-10  .iso8859-10  .latin6
-    AddCharset ISO-8859-13  .iso8859-13
-    AddCharset ISO-8859-14  .iso8859-14  .latin8
-    AddCharset ISO-8859-15  .iso8859-15  .latin9
-    AddCharset ISO-8859-16  .iso8859-16  .latin10
-    AddCharset ISO-2022-JP .iso2022-jp .jis
-    AddCharset ISO-2022-KR .iso2022-kr .kis
-    AddCharset ISO-2022-CN .iso2022-cn .cis
-    AddCharset Big5        .Big5       .big5 .b5
-    AddCharset cn-Big5     .cn-big5
-    # For russian, more than one charset is used (depends on client, mostly):
-    AddCharset WINDOWS-1251 .cp-1251   .win-1251
-    AddCharset CP866       .cp866
-    AddCharset KOI8      .koi8
-    AddCharset KOI8-E      .koi8-e
-    AddCharset KOI8-r      .koi8-r .koi8-ru
-    AddCharset KOI8-U      .koi8-u
-    AddCharset KOI8-ru     .koi8-uk .ua
-    AddCharset ISO-10646-UCS-2 .ucs2
-    AddCharset ISO-10646-UCS-4 .ucs4
-    AddCharset UTF-7       .utf7
-    AddCharset UTF-8       .utf8
-    AddCharset UTF-16      .utf16
-    AddCharset UTF-16BE    .utf16be
-    AddCharset UTF-16LE    .utf16le
-    AddCharset UTF-32      .utf32
-    AddCharset UTF-32BE    .utf32be
-    AddCharset UTF-32LE    .utf32le
-    AddCharset euc-cn      .euc-cn
-    AddCharset euc-gb      .euc-gb
-    AddCharset euc-jp      .euc-jp
-    AddCharset euc-kr      .euc-kr
-    #Not sure how euc-tw got in - IANA doesn't list it???
-    AddCharset EUC-TW      .euc-tw
-    AddCharset gb2312      .gb2312 .gb
-    AddCharset iso-10646-ucs-2 .ucs-2 .iso-10646-ucs-2
-    AddCharset iso-10646-ucs-4 .ucs-4 .iso-10646-ucs-4
-    AddCharset shift_jis   .shift_jis .sjis
-
-    AddLanguage ca .ca
-    AddLanguage cs .cz .cs
-    AddLanguage da .dk
-    AddLanguage de .de
-    AddLanguage el .el
-    AddLanguage en .en
-    AddLanguage eo .eo
-    AddLanguage es .es
-    AddLanguage et .et
-    AddLanguage fi .fi
-    AddLanguage fr .fr
-    AddLanguage he .he
-    AddLanguage hr .hr
-    AddLanguage it .it
-    AddLanguage ja .ja
-    AddLanguage ko .ko
-    AddLanguage ltz .ltz
-    AddLanguage nl .nl
-    AddLanguage nn .nn
-    AddLanguage no .no
-    AddLanguage pl .po
-    AddLanguage pt .pt
-    AddLanguage pt-BR .pt-br
-    AddLanguage ru .ru
-    AddLanguage sv .sv
-    AddLanguage zh-CN .zh-cn
-    AddLanguage zh-TW .zh-tw
-
-
-#this information could also be in two sections in there, and if most of it looks
-#like to be on place already, most important change is "AddDefaultCharset off"
-
-# After modification, restart Apache service
-
-/etc/init.d/apache2 restart
-
-
-
diff --git a/docs/CHROOTED_DEBIAN_5.0.txt b/docs/under_development/CHROOTED_DEBIAN_5.0.txt
similarity index 100%
rename from docs/CHROOTED_DEBIAN_5.0.txt
rename to docs/under_development/CHROOTED_DEBIAN_5.0.txt
diff --git a/install/dist/lib/fedora.lib.php b/install/dist/lib/fedora.lib.php
index 114ce64..ac2319a 100644
--- a/install/dist/lib/fedora.lib.php
+++ b/install/dist/lib/fedora.lib.php
@@ -670,10 +670,12 @@
 		$vhost_conf_dir = $conf['apache']['vhost_conf_dir'];
 		$vhost_conf_enabled_dir = $conf['apache']['vhost_conf_enabled_dir'];
 
-		// copy('tpl/apache_ispconfig.conf.master',$vhost_conf_dir.'/ispconfig.conf');
-		$content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/apache_ispconfig.conf.master', 'tpl/apache_ispconfig.conf.master');
+		$tpl = new tpl('apache_ispconfig.conf.master');
+		$tpl->setVar('apache_version',getapacheversion());
+		
 		$records = $this->db->queryAllRecords('SELECT * FROM '.$conf['mysql']['master_database'].'.server_ip WHERE server_id = '.$conf['server_id']." AND virtualhost = 'y'");
-
+		$ip_addresses = array();
+		
 		if(is_array($records) && count($records) > 0) {
 			foreach($records as $rec) {
 				if($rec['ip_type'] == 'IPv6') {
@@ -686,15 +688,17 @@
 					foreach($ports as $port) {
 						$port = intval($port);
 						if($port > 0 && $port < 65536 && $ip_address != '') {
-							$content .= 'NameVirtualHost '.$ip_address.":".$port."\n";
+							$ip_addresses[] = array('ip_address' => $ip_address, 'port' => $port);
 						}
 					}
 				}
 			}
 		}
+		
+		if(count($ip_addresses) > 0) $tpl->setLoop('ip_adresses',$ip_addresses);
 
-		$content .= "\n";
-		wf($vhost_conf_dir.'/ispconfig.conf', $content);
+		wf($vhost_conf_dir.'/ispconfig.conf', $tpl->grab());
+		unset($tpl);
 
 		if(!@is_link($vhost_conf_enabled_dir."/000-ispconfig.conf")) {
 			exec("ln -s ".$vhost_conf_dir."/ispconfig.conf ".$vhost_conf_enabled_dir."/000-ispconfig.conf");
@@ -1058,28 +1062,30 @@
 
 
 			// Dont just copy over the virtualhost template but add some custom settings
-			$content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/apache_ispconfig.vhost.master', "tpl/apache_ispconfig.vhost.master");
-			$content = str_replace('{vhost_port}', $conf['apache']['vhost_port'], $content);
+			$tpl = new tpl('apache_ispconfig.vhost.master');
+			$tpl->setVar('vhost_port',$conf['apache']['vhost_port']);
 
 			// comment out the listen directive if port is 80 or 443
 			if($conf['apache']['vhost_port'] == 80 or $conf['apache']['vhost_port'] == 443) {
-				$content = str_replace('{vhost_port_listen}', '#', $content);
+				$tpl->setVar('vhost_port_listen','#');
 			} else {
-				$content = str_replace('{vhost_port_listen}', '', $content);
+				$tpl->setVar('vhost_port_listen','');
 			}
 
-			if(is_file('/usr/local/ispconfig/interface/ssl/ispserver.crt') && is_file('/usr/local/ispconfig/interface/ssl/ispserver.key')) {
-				$content = str_replace('{ssl_comment}', '', $content);
+			if(is_file($install_dir.'/interface/ssl/ispserver.crt') && is_file($install_dir.'/interface/ssl/ispserver.key')) {
+				$tpl->setVar('ssl_comment','');
 			} else {
-				$content = str_replace('{ssl_comment}', '#', $content);
+				$tpl->setVar('ssl_comment','#');
 			}
 			if(is_file($install_dir.'/interface/ssl/ispserver.crt') && is_file($install_dir.'/interface/ssl/ispserver.key') && is_file($install_dir.'/interface/ssl/ispserver.bundle')) {
-				$content = str_replace('{ssl_bundle_comment}', '', $content);
+				$tpl->setVar('ssl_bundle_comment','');
 			} else {
-				$content = str_replace('{ssl_bundle_comment}', '#', $content);
+				$tpl->setVar('ssl_bundle_comment','#');
 			}
+			
+			$tpl->setVar('apache_version',getapacheversion());
 
-			wf("$vhost_conf_dir/ispconfig.vhost", $content);
+			wf($vhost_conf_dir.'/ispconfig.vhost', $tpl->grab());
 
 			//copy('tpl/apache_ispconfig.vhost.master', "$vhost_conf_dir/ispconfig.vhost");
 			//* and create the symlink
diff --git a/install/dist/lib/gentoo.lib.php b/install/dist/lib/gentoo.lib.php
index 3ee3939..88a5640 100644
--- a/install/dist/lib/gentoo.lib.php
+++ b/install/dist/lib/gentoo.lib.php
@@ -519,6 +519,7 @@
 
 
 		//* Copy the ISPConfig configuration include
+		/*
 		$content = $this->get_template_file('apache_ispconfig.conf', true);
 
 		$records = $this->db->queryAllRecords("SELECT * FROM server_ip WHERE server_id = ".$conf["server_id"]." AND virtualhost = 'y'");
@@ -531,6 +532,37 @@
 		}
 
 		$this->write_config_file($conf['apache']['vhost_conf_dir'].'/000-ispconfig.conf', $content);
+		*/
+		
+		$tpl = new tpl('apache_ispconfig.conf.master');
+		$tpl->setVar('apache_version',getapacheversion());
+		
+		$records = $this->db->queryAllRecords('SELECT * FROM '.$conf['mysql']['master_database'].'.server_ip WHERE server_id = '.$conf['server_id']." AND virtualhost = 'y'");
+		$ip_addresses = array();
+		
+		if(is_array($records) && count($records) > 0) {
+			foreach($records as $rec) {
+				if($rec['ip_type'] == 'IPv6') {
+					$ip_address = '['.$rec['ip_address'].']';
+				} else {
+					$ip_address = $rec['ip_address'];
+				}
+				$ports = explode(',', $rec['virtualhost_port']);
+				if(is_array($ports)) {
+					foreach($ports as $port) {
+						$port = intval($port);
+						if($port > 0 && $port < 65536 && $ip_address != '') {
+							$ip_addresses[] = array('ip_address' => $ip_address, 'port' => $port);
+						}
+					}
+				}
+			}
+		}
+		
+		if(count($ip_addresses) > 0) $tpl->setLoop('ip_adresses',$ip_addresses);
+
+		wf($conf['apache']['vhost_conf_dir'].'/000-ispconfig.conf', $tpl->grab());
+		unset($tpl);
 
 		//* Gentoo by default does not include .vhost files. Add include line to config file.
 		$content = rf($conf['apache']['config_file']);
diff --git a/install/dist/lib/opensuse.lib.php b/install/dist/lib/opensuse.lib.php
index c66d888..230f4eb 100644
--- a/install/dist/lib/opensuse.lib.php
+++ b/install/dist/lib/opensuse.lib.php
@@ -685,10 +685,12 @@
 		$vhost_conf_dir = $conf['apache']['vhost_conf_dir'];
 		$vhost_conf_enabled_dir = $conf['apache']['vhost_conf_enabled_dir'];
 
-		//copy('tpl/apache_ispconfig.conf.master',$vhost_conf_dir.'/ispconfig.conf');
-		$content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/apache_ispconfig.conf.master', 'tpl/apache_ispconfig.conf.master');
+		$tpl = new tpl('apache_ispconfig.conf.master');
+		$tpl->setVar('apache_version',getapacheversion());
+		
 		$records = $this->db->queryAllRecords('SELECT * FROM '.$conf['mysql']['master_database'].'.server_ip WHERE server_id = '.$conf['server_id']." AND virtualhost = 'y'");
-
+		$ip_addresses = array();
+		
 		if(is_array($records) && count($records) > 0) {
 			foreach($records as $rec) {
 				if($rec['ip_type'] == 'IPv6') {
@@ -701,15 +703,17 @@
 					foreach($ports as $port) {
 						$port = intval($port);
 						if($port > 0 && $port < 65536 && $ip_address != '') {
-							$content .= 'NameVirtualHost '.$ip_address.":".$port."\n";
+							$ip_addresses[] = array('ip_address' => $ip_address, 'port' => $port);
 						}
 					}
 				}
 			}
 		}
-
-		$content .= "\n";
-		wf($vhost_conf_dir.'/ispconfig.conf', $content);
+		
+		if(count($ip_addresses) > 0) $tpl->setLoop('ip_adresses',$ip_addresses);
+		
+		wf($vhost_conf_dir.'/ispconfig.conf', $tpl->grab());
+		unset($tpl);
 
 		if(!@is_link($vhost_conf_enabled_dir."/000-ispconfig.conf")) {
 			exec("ln -s ".$vhost_conf_dir."/ispconfig.conf ".$vhost_conf_enabled_dir."/000-ispconfig.conf");
@@ -1114,31 +1118,30 @@
 
 
 			// Dont just copy over the virtualhost template but add some custom settings
-
-			$content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/apache_ispconfig.vhost.master', "tpl/apache_ispconfig.vhost.master");
-			$content = str_replace('{vhost_port}', $conf['apache']['vhost_port'], $content);
+			$tpl = new tpl('apache_ispconfig.vhost.master');
+			$tpl->setVar('vhost_port',$conf['apache']['vhost_port']);
 
 			// comment out the listen directive if port is 80 or 443
 			if($conf['apache']['vhost_port'] == 80 or $conf['apache']['vhost_port'] == 443) {
-				$content = str_replace('{vhost_port_listen}', '#', $content);
+				$tpl->setVar('vhost_port_listen','#');
 			} else {
-				$content = str_replace('{vhost_port_listen}', '', $content);
+				$tpl->setVar('vhost_port_listen','');
 			}
 
-			if(is_file('/usr/local/ispconfig/interface/ssl/ispserver.crt') && is_file('/usr/local/ispconfig/interface/ssl/ispserver.key')) {
-				$content = str_replace('{ssl_comment}', '', $content);
+			if(is_file($install_dir.'/interface/ssl/ispserver.crt') && is_file($install_dir.'/interface/ssl/ispserver.key')) {
+				$tpl->setVar('ssl_comment','');
 			} else {
-				$content = str_replace('{ssl_comment}', '#', $content);
+				$tpl->setVar('ssl_comment','#');
 			}
 			if(is_file($install_dir.'/interface/ssl/ispserver.crt') && is_file($install_dir.'/interface/ssl/ispserver.key') && is_file($install_dir.'/interface/ssl/ispserver.bundle')) {
-				$content = str_replace('{ssl_bundle_comment}', '', $content);
+				$tpl->setVar('ssl_bundle_comment','');
 			} else {
-				$content = str_replace('{ssl_bundle_comment}', '#', $content);
+				$tpl->setVar('ssl_bundle_comment','#');
 			}
+			
+			$tpl->setVar('apache_version',getapacheversion());
 
-			$content = str_replace('/var/www/', '/srv/www/', $content);
-
-			wf("$vhost_conf_dir/ispconfig.vhost", $content);
+			wf($vhost_conf_dir.'/ispconfig.vhost', $tpl->grab());
 
 			//if(!is_file('/srv/www/php-fcgi-scripts/ispconfig/.php-fcgi-starter')) {
 			$content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/apache_ispconfig_fcgi_starter.master', 'tpl/apache_ispconfig_fcgi_starter.master');
diff --git a/install/install.php b/install/install.php
index 22bd4a7..9ae525c 100644
--- a/install/install.php
+++ b/install/install.php
@@ -65,6 +65,9 @@
 define('ISPC_LOG_FILE', '/var/log/ispconfig_install.log');
 define('ISPC_INSTALL_ROOT', realpath(dirname(__FILE__).'/../'));
 
+//** Include the templating lib
+require_once 'lib/classes/tpl.inc.php';
+
 //** Check for existing installation
 /*if(is_dir("/usr/local/ispconfig")) {
     die('We will stop here. There is already a ISPConfig installation, use the update script to update this installation.');
diff --git a/install/lib/classes/tpl.inc.php b/install/lib/classes/tpl.inc.php
new file mode 100644
index 0000000..73ff192
--- /dev/null
+++ b/install/lib/classes/tpl.inc.php
@@ -0,0 +1,1431 @@
+<?php
+/**
+ * vlibTemplate is a class used to seperate PHP and HTML.
+ * For instructions on how to use vlibTemplate, see the
+ * vlibTemplate.html file, located in the 'docs' directory.
+ *
+ * @since 07/03/2002
+ * @author Kelvin Jones <kelvin@kelvinjones.co.uk>
+ * @package vLIB
+ * @access public
+ * @see vlibTemplate.html
+ */
+
+
+/* vim: set expandtab tabstop=4 shiftwidth=4: */
+// +----------------------------------------------------------------------+
+// | PHP version 4.0                                                      |
+// +----------------------------------------------------------------------+
+// | Copyright (c) 2002 Active Fish Group                                 |
+// +----------------------------------------------------------------------+
+// | Authors: Kelvin Jones <kelvin@kelvinjones.co.uk>                     |
+// +----------------------------------------------------------------------+
+//
+// $Id: class.tpl.inc.php,v 1.1 2003/07/08 12:31:10 platinum Exp $
+
+//** check and avoid multiple loading of class
+if (!defined('vlibTemplateClassLoaded')) {
+
+	define('vlibTemplateClassLoaded', 1);
+	include_once ISPC_INSTALL_ROOT.'/install/lib/classes/tpl_error.inc.php';
+	include_once ISPC_INSTALL_ROOT.'/install/lib/classes/tpl_ini.inc.php';
+
+	class tpl{
+
+		/*-----------------------------------------------------------------------------\
+        |                                 ATTENTION                                    |
+        |  Do not touch the following variables. vlibTemplate will not work otherwise. |
+        \-----------------------------------------------------------------------------*/
+		private $OPTIONS = array(
+			'MAX_INCLUDES'          =>   10,
+			'TEMPLATE_DIR'          => null,
+			'GLOBAL_VARS'           => null,
+			'GLOBAL_CONTEXT_VARS'   => null,
+			'LOOP_CONTEXT_VARS'     => null,
+			'SET_LOOP_VAR'          => null,
+			'DEFAULT_ESCAPE'        => null,
+			'STRICT'                => null,
+			'CASELESS'              => null,
+			'UNKNOWNS'              => null,
+			'TIME_PARSE'            => null,
+			'ENABLE_PHPINCLUDE'     => null,
+			'INCLUDE_PATHS'         => array(),
+			'CACHE_DIRECTORY'       => null,
+			'CACHE_LIFETIME'        => null,
+			'CACHE_EXTENSION'       => null
+		);
+
+		/** open and close tags used for escaping */
+		private $ESCAPE_TAGS = array(
+			'html'      => array('open' => 'htmlspecialchars('    , 'close'=> ', ENT_QUOTES)'),
+			'url'       => array('open' => 'urlencode('           , 'close'=> ')'),
+			'rawurl'    => array('open' => 'rawurlencode('        , 'close'=> ')'),
+			'sq'        => array('open' => 'addcslashes('         , 'close'=> ", \"'\")"),
+			'dq'        => array('open' => 'addcslashes('         , 'close'=> ", '\"')"),
+			'1'         => array('open' => 'htmlspecialchars('    , 'close'=> ', ENT_QUOTES)'),
+			'0'         => array('open' => ''                     , 'close'=> ''),
+			'none'      => array('open' => ''                     , 'close'=> ''),
+			'hex'       => array('open' => '$this->_escape_hex('  , 'close'=> ', false)'),
+			'hexentity' => array('open' => '$this->_escape_hex('  , 'close'=> ', true)')
+		);
+
+
+
+		/** open and close tags used for formatting */
+		private $FORMAT_TAGS = array(
+			'strtoupper' => array('open' => 'strtoupper(',          'close'=> ')'),
+			'uc'         => array('open' => 'strtoupper(',          'close'=> ')'),
+			'strtolower' => array('open' => 'strtolower(',          'close'=> ')'),
+			'lc'         => array('open' => 'strtolower(',          'close'=> ')'),
+			'ucfirst'    => array('open' => 'ucfirst(',             'close'=> ')'),
+			'lcucfirst'  => array('open' => 'ucfirst(strtolower(',  'close'=> '))'),
+			'ucwords'    => array('open' => 'ucwords(',             'close'=> ')'),
+			'lcucwords'  => array('open' => 'ucwords(strtolower(',  'close'=> '))')
+		);
+
+		/** operators allowed when using extended TMPL_IF syntax */
+		private $allowed_if_ops = array('==', '!=', '<>', '<', '>', '<=', '>=');
+
+
+
+		/** dbs allowed by vlibTemplate::setDbLoop(). */
+		private $allowed_loop_dbs = array('MYSQL', 'POSTGRESQL', 'INFORMIX', 'INTERBASE', 'INGRES',
+			'MSSQL', 'MSQL', 'OCI8', 'ORACLE', 'OVRIMOS', 'SYBASE');
+
+
+
+		/** root directory of vlibTemplate automagically filled in */
+		private $VLIBTEMPLATE_ROOT = null;
+
+
+
+		/** contains current directory used when doing recursive include */
+		private $_currentincludedir = array();
+
+
+
+		/** current depth of includes */
+		private $_includedepth = 0;
+
+
+
+		/** full path to tmpl file */
+		private $_tmplfilename = null;
+
+
+
+		/** file data before it's parsed */
+		private $_tmplfile = null;
+
+
+
+		/** parsed version of file, ready for eval()ing */
+		private $_tmplfilep = null;
+
+
+
+		/** eval()ed version ready for printing or whatever */
+		private $_tmploutput = null;
+
+
+
+		/** array for variables to be kept */
+		private $_vars = array();
+
+
+
+		/** array where loop variables are kept */
+		private $_arrvars = array();
+
+		/** array which holds the current namespace during parse */
+		private $_namespace = array();
+
+
+
+		/** variable is set to true once the template is parsed, to save re-parsing everything */
+		private $_parsed = false;
+
+
+
+		/** array holds all unknowns vars */
+		private $_unknowns = array();
+
+
+
+		/** microtime when template parsing began */
+		private $_firstparsetime = null;
+
+
+
+		/** total time taken to parse template */
+		private $_totalparsetime = null;
+
+
+
+		/** name of current loop being passed in */
+		private $_currloopname = null;
+
+
+
+		/** rows with the above loop */
+		private $_currloop = array();
+
+
+
+		/** define vars to avoid warnings */
+		private $_debug = null;
+		private $_cache = null;
+
+
+
+		/** array which holds the dynamic Includes */
+		private $_dyninclude = array();
+
+		/*-----------------------------------------------------------------------------\
+        |                           public functions                                   |
+        \-----------------------------------------------------------------------------*/
+
+
+
+
+
+		/**
+		 * Usually called by the class constructor.
+		 * Stores the filename in $this->_tmplfilename.
+		 * Raises an error if the template file is not found.
+		 * @param string $tmplfile full path to template file
+		 * @return boolean true
+		 * @access public
+		 */
+		public function newTemplate($tmplfile)
+		{
+			if (!$tfile = $this->_fileSearch($tmplfile)){
+				vlibTemplateError::raiseError('VT_ERROR_NOFILE', KILL, $tmplfile);
+			}
+
+			//* make sure that any parsing vars are cleared for the new template
+			$this->_tmplfile = null;
+			$this->_tmplfilep = null;
+			$this->_tmploutput = null;
+			$this->_parsed = false;
+			$this->_unknowns = array();
+			$this->_firstparsetime = null;
+			$this->_totalparsetime = null;
+
+			//* reset debug module
+			if ($this->_debug){
+				$this->_debugReset();
+			}
+			$this->_tmplfilename = $tfile;
+			return true;
+		}
+
+		/**
+		 * Sets variables to be used by the template
+		 * If $k is an array, then it will treat it as an associative array
+		 * using the keys as variable names and the values as variable values.
+		 * @param mixed $k key to define variable name
+		 * @param mixed $v variable to assign to $k
+		 * @return boolean true/false
+		 * @access public
+		 */
+		public function setVar($k, $v = null)
+		{
+			if (is_array($k)) {
+				foreach($k as $key => $value){
+					$key = ($this->OPTIONS['CASELESS']) ? strtolower(trim($key)) : trim($key);
+					if (preg_match('/^[A-Za-z_]+[A-Za-z0-9_]*$/', $key) && $value !== null ) {
+						$this->_vars[$key] = $value;
+					}
+				}
+			} else {
+				if (preg_match('/^[A-Za-z_]+[A-Za-z0-9_]*$/', $k) && $v !== null) {
+					if ($this->OPTIONS['CASELESS']) $k = strtolower($k);
+					$this->_vars[trim($k)] = $v;
+				} else {
+					return false;
+				}
+			}
+			return true;
+		}
+
+
+
+		/**
+		 * Sets dynamic includes to be used by the template
+		 * If $k is an array, then it will treat it as an associative array
+		 * using the keys as variable names and the values as variable values.
+		 * @param mixed $k key to define variable name
+		 * @param mixed $v variable to assign to $k
+		 * @return boolean true/false
+		 * @access public
+		 */
+		public function setInclude($k, $v = null)
+		{
+			if(is_array($k)) {
+				foreach($k as $key => $val) {
+					$this->_dyninclude[$key] = $val;
+				}
+			} else {
+				$this->_dyninclude[$k] = $v;
+			}
+			return true;
+		}
+
+		/**
+		 * Unsets a variable which has already been set
+		 * Parse in all vars wanted for deletion in seperate parametres
+		 * @param string var name to remove use: vlibTemplate::unsetVar(var[, var..])
+		 * @return boolean true/false returns true unless called with 0 params
+		 * @access public
+		 */
+		public function unsetVar()
+		{
+			$num_args = func_num_args();
+			if ($num_args < 1)  return false;
+
+			for ($i = 0; $i < $num_args; $i++) {
+				$var = func_get_arg($i);
+				if ($this->OPTIONS['CASELESS']) $var = strtolower($var);
+				if (!preg_match('/^[A-Za-z_]+[A-Za-z0-9_]*$/', $var)) continue;
+				unset($this->_vars[$var]);
+			}
+			return true;
+		}
+
+		/**
+		 * Gets all vars currently set in global namespace.
+		 * @return array
+		 * @access public
+		 */
+		public function getVars()
+		{
+			return empty($this->_vars) ? false : $this->_vars;
+		}
+
+		/**
+		 * Gets a single var from the global namespace
+		 * @return var
+		 * @access public
+		 */
+		public function getVar($var)
+		{
+			if ($this->OPTIONS['CASELESS']) $var = strtolower($var);
+			return (empty($var) || !isset($this->_vars[$var])) ? false : $this->_vars[$var];
+		}
+
+		/**
+		 * sets the GLOBAL_CONTEXT_VARS
+		 * @return true
+		 * @access public
+		 */
+		public function setContextVars()
+		{
+			$_phpself = @$GLOBALS['HTTP_SERVER_VARS']['PHP_SELF'];
+			$_pathinfo = @$GLOBALS['HTTP_SERVER_VARS']['PATH_INFO'];
+			$_request_uri = @$GLOBALS['HTTP_SERVER_VARS']['REQUEST_URI'];
+			$_qs   = @$GLOBALS['HTTP_SERVER_VARS']['QUERY_STRING'];
+
+			//* the following fixes bug of $PHP_SELF on Win32 CGI and IIS.
+			$_self = (!empty($_pathinfo)) ? $_pathinfo : $_phpself;
+			$_uri  = (!empty($_request_uri)) ? $_request_uri : $_self.'?'.$_qs;
+
+			$this->setvar('__SELF__', $_self);
+			$this->setvar('__REQUEST_URI__', $_uri);
+			return true;
+		}
+
+		/**
+		 * Builds the loop construct for use with <TMPL_LOOP>.
+		 * @param string $k string to define loop name
+		 * @param array $v array to assign to $k
+		 * @return boolean true/false
+		 * @access public
+		 */
+		public function setLoop($k, $v)
+		{
+			if (is_array($v) && preg_match('/^[A-Za-z_]+[A-Za-z0-9_]*$/', $k)) {
+				$k = ($this->OPTIONS['CASELESS']) ? strtolower(trim($k)) : trim($k);
+				$this->_arrvars[$k] = array();
+				if ($this->OPTIONS['SET_LOOP_VAR'] && !empty($v)) $this->setvar($k, 1);
+				if (($this->_arrvars[$k] = $this->_arrayBuild($v)) == false) {
+					vlibTemplateError::raiseError('VT_WARNING_INVALID_ARR', WARNING, $k);
+				} else {
+					$this->vars['_'.$k.'_num'] = count($v);
+				}
+			}
+			return true;
+		}
+
+		/**
+		 * [** EXPERIMENTAL **]
+		 * Function to create a loop from a Db result resource link.
+		 * @param string $loopname to commit loop. If not set, will use last loopname set using newLoop()
+		 * @param string $result link to a Db result resource
+		 * @param string $db_type, type of db that the result resource belongs to.
+		 * @return boolean true/false
+		 * @access public
+		 */
+		public function setDbLoop($loopname, $result, $db_type = 'MYSQL')
+		{
+			/*
+			$db_type = strtoupper($db_type);
+            if (!in_array($db_type, $this->allowed_loop_dbs)) {
+                vlibTemplateError::raiseError('VT_WARNING_INVALID_LOOP_DB', WARNING, $db_type);
+                return false;
+            }
+
+            $loop_arr = array();
+            // TODO: Are all these necessary as were onyl using mysql and possible postgres ? - pedro
+            switch ($db_type) {
+
+                case 'MYSQL':
+                    if (get_resource_type($result) != 'mysql result') {
+                        vlibTemplateError::raiseError('VT_WARNING_INVALID_RESOURCE', WARNING, $db_type);
+                        return false;
+                    }
+                    while($r = mysql_fetch_assoc($result)) {
+                        $loop_arr[] = $r;
+                    }
+                    break;
+
+                case 'POSTGRESQL':
+                    if (get_resource_type($result) != 'pgsql result') {
+                        vlibTemplateError::raiseError('VT_WARNING_INVALID_RESOURCE', WARNING, $db_type);
+                        return false;
+                    }
+
+                    $nr = (function_exists('pg_num_rows')) ? pg_num_rows($result) : pg_numrows($result);
+
+                    for ($i=0; $i < $nr; $i++) {
+                        $loop_arr[] = pg_fetch_array($result, $i, PGSQL_ASSOC);
+                    }
+                    break;
+
+                case 'INFORMIX':
+                    if (!$result) {
+                        vlibTemplateError::raiseError('VT_WARNING_INVALID_RESOURCE', WARNING, $db_type);
+                        return false;
+                    }
+                    while($r = ifx_fetch_row($result, 'NEXT')) {
+                        $loop_arr[] = $r;
+                    }
+                    break;
+
+                case 'INTERBASE':
+                    if (get_resource_type($result) != 'interbase result') {
+                        vlibTemplateError::raiseError('VT_WARNING_INVALID_RESOURCE', WARNING, $db_type);
+                        return false;
+                    }
+                    while($r = ibase_fetch_row($result)) {
+                        $loop_arr[] = $r;
+                    }
+                    break;
+
+                case 'INGRES':
+                    if (!$result) {
+                        vlibTemplateError::raiseError('VT_WARNING_INVALID_RESOURCE', WARNING, $db_type);
+                        return false;
+                    }
+                    while($r = ingres_fetch_array(INGRES_ASSOC, $result)) {
+                        $loop_arr[] = $r;
+                    }
+                    break;
+
+                case 'MSSQL':
+                    if (get_resource_type($result) != 'mssql result') {
+                        vlibTemplateError::raiseError('VT_WARNING_INVALID_RESOURCE', WARNING, $db_type);
+                        return false;
+                    }
+                    while($r = mssql_fetch_array($result)) {
+                        $loop_arr[] = $r;
+                    }
+                    break;
+
+                case 'MSQL':
+                    if (get_resource_type($result) != 'msql result') {
+                        vlibTemplateError::raiseError('VT_WARNING_INVALID_RESOURCE', WARNING, $db_type);
+                        return false;
+                    }
+                    while($r = msql_fetch_array($result, MSQL_ASSOC)) {
+                        $loop_arr[] = $r;
+                    }
+                    break;
+
+                case 'OCI8':
+                    if (get_resource_type($result) != 'oci8 statement') {
+                        vlibTemplateError::raiseError('VT_WARNING_INVALID_RESOURCE', WARNING, $db_type);
+                        return false;
+                    }
+                    while(OCIFetchInto($result, &$r, OCI_ASSOC+OCI_RETURN_LOBS)) {
+                        $loop_arr[] = $r;
+                    }
+                    break;
+
+                case 'ORACLE':
+                    if (get_resource_type($result) != 'oracle Cursor') {
+                        vlibTemplateError::raiseError('VT_WARNING_INVALID_RESOURCE', WARNING, $db_type);
+                        return false;
+                    }
+                    while(ora_fetch_into($result, &$r, ORA_FETCHINTO_ASSOC)) {
+                        $loop_arr[] = $r;
+                    }
+                    break;
+
+                case 'OVRIMOS':
+                    if (!$result) {
+                        vlibTemplateError::raiseError('VT_WARNING_INVALID_RESOURCE', WARNING, $db_type);
+                        return false;
+                    }
+                    while(ovrimos_fetch_into($result, &$r, 'NEXT')) {
+                        $loop_arr[] = $r;
+                    }
+                    break;
+
+                case 'SYBASE':
+                    if (get_resource_type($result) != 'sybase-db result') {
+                        vlibTemplateError::raiseError('VT_WARNING_INVALID_RESOURCE', WARNING, $db_type);
+                        return false;
+                    }
+
+                    while($r = sybase_fetch_array($result)) {
+                        $loop_arr[] = $r;
+                    }
+                    break;
+            }
+            $this->setLoop($loopname, $loop_arr);
+            return true;
+			*/
+		}
+
+		/**
+		 * Sets the name for the curent loop in the 3 step loop process.
+		 * @param string $name string to define loop name
+		 * @return boolean true/false
+		 * @access public
+		 */
+		public function newLoop($loopname)
+		{
+			if (preg_match('/^[a-z_]+[a-z0-9_]*$/i', $loopname)) {
+				$this->_currloopname[$loopname] = $loopname;
+				$this->_currloop[$loopname] = array();
+				return true;
+			} else {
+				return false;
+			}
+		}
+
+		/**
+		 * Adds a row to the current loop in the 3 step loop process.
+		 * @param array $row loop row to add to current loop
+		 * @param string $loopname loop to which you want to add row, if not set will use last loop set using newLoop().
+		 * @return boolean true/false
+		 * @access public
+		 */
+		public function addRow($row, $loopname = null)
+		{
+			if (!$loopname) $loopname = $this->_currloopname[(count($this->_currloopname)-1)];
+
+			if (!isset($this->_currloop[$loopname]) || empty($this->_currloopname)) {
+				vlibTemplateError::raiseError('VT_WARNING_LOOP_NOT_SET', WARNING);
+				return false;
+			}
+			if (is_array($row)) {
+				$this->_currloop[$loopname][] = $row;
+				return true;
+			} else {
+				return false;
+			}
+		}
+
+		/**
+		 * Completes the 3 step loop process. This assigns the rows and resets
+		 * the variables used.
+		 * @param string $loopname to commit loop. If not set, will use last loopname set using newLoop()
+		 * @return boolean true/false
+		 * @access public
+		 */
+		public function addLoop($loopname = null)
+		{
+			if ($loopname == null) { // add last loop used
+				if (!empty($this->_currloop)) {
+					foreach ($this->_currloop as $k => $v) {
+						$this->setLoop($k, $v);
+						unset($this->_currloop[$k]);
+					}
+					$this->_currloopname = array();
+					return true;
+				} else {
+					return false;
+				}
+			} elseif (!isset($this->_currloop[$loopname]) || empty($this->_currloopname)) { // newLoop not yet envoked
+				vlibTemplateError::raiseError('VT_WARNING_LOOP_NOT_SET', WARNING);
+				return false;
+			} else { // add a specific loop
+				$this->setLoop($loopname, $this->_currloop[$loopname]);
+				unset($this->_currloopname[$loopname], $this->_currloop[$loopname]);
+			}
+			return true;
+		}
+
+		/**
+		 * Unsets a loop which has already been set.
+		 * Can only unset top level loops.
+		 * @param string loop to remove use: vlibTemplate::unsetLoop(loop[, loop..])
+		 * @return boolean true/false returns true unless called with 0 params
+		 * @access public
+		 */
+		public function unsetLoop()
+		{
+			$num_args = func_num_args();
+			if ($num_args < 1) return false;
+
+			for ($i = 0; $i < $num_args; $i++) {
+				$var = func_get_arg($i);
+				if ($this->OPTIONS['CASELESS']) $var = strtolower($var);
+				if (!preg_match('/^[A-Za-z_]+[A-Za-z0-9_]*$/', $var)) continue;
+				unset($this->_arrvars[$var]);
+			}
+			return true;
+		}
+
+		/**
+		 * Resets the vlibTemplate object. After using vlibTemplate::reset() you must
+		 * use vlibTemplate::newTemplate(tmpl) to reuse, not passing in the options array.
+		 * @return boolean true
+		 * @access public
+		 */
+		public function reset()
+		{
+			$this->clearVars();
+			$this->clearLoops();
+			$this->_tmplfilename = null;
+			$this->_tmplfile = null;
+			$this->_tmplfilep = null;
+			$this->_tmploutput = null;
+			$this->_parsed = false;
+			$this->_unknowns = array();
+			$this->_firstparsetime = null;
+			$this->_totalparsetime = null;
+			$this->_currloopname = null;
+			$this->_currloop = array();
+			return true;
+		}
+
+		/**
+		 * Unsets all variables in the template
+		 * @return boolean true
+		 * @access public
+		 */
+		public function clearVars()
+		{
+			$this->_vars = array();
+			return true;
+		}
+
+		/**
+		 * Unsets all loops in the template
+		 * @return boolean true
+		 * @access public
+		 */
+		public function clearLoops()
+		{
+			$this->_arrvars = array();
+			$this->_currloopname = null;
+			$this->_currloop = array();
+			return true;
+		}
+
+		/**
+		 * Unsets all variables and loops set using setVar/Loop()
+		 * @return boolean true
+		 * @access public
+		 */
+		public function clearAll()
+		{
+			$this->clearVars();
+			$this->clearLoops();
+			return true;
+		}
+
+		/**
+		 * Returns true if unknowns were found after parsing.
+		 * Function MUST be called AFTER one of the parsing functions to have any relevance.
+		 * @return boolean true/false
+		 * @access public
+		 */
+		public function unknownsExist()
+		{
+			return !empty($this->_unknowns);
+		}
+
+		/**
+		 * Alias for unknownsExist.
+		 * @access public
+		 */
+		public function unknowns()
+		{
+			return $this->unknownsExist();
+		}
+
+		/**
+		 * Returns an array of all unknown vars found when parsing.
+		 * This function is only relevant after parsing a document.
+		 * @return array
+		 * @access public
+		 */
+		public function getUnknowns()
+		{
+			return $this->_unknowns;
+		}
+
+		/**
+		 * Sets how you want to handle variables that were found in the
+		 * template but not set in vlibTemplate using vlibTemplate::setVar().
+		 * @param  string $arg ignore, remove, print, leave or comment
+		 * @return boolean
+		 * @access public
+		 */
+		public function setUnknowns($arg)
+		{
+			$arg = strtolower(trim($arg));
+			if (preg_match('/^ignore|remove|print|leave|comment$/', $arg)) {
+				$this->OPTIONS['UNKNOWNS'] = $arg;
+				return true;
+			}
+			return false;
+		}
+
+		/**
+		 * function sets the paths to use when including files.
+		 * Use of this function: vlibTemplate::setPath(string path [, string path, ..]);
+		 * i.e. if $tmpl is your template object do: $tmpl->setPath('/web/htdocs/templates','/web/htdocs/www');
+		 * with as many paths as you like.
+		 * if this function is called without any arguments, it will just delete any previously set paths.
+		 *
+		 * @param string path (mulitple)
+		 * @return bool success
+		 * @access public
+		 */
+		public function setPath()
+		{
+			$num_args = func_num_args();
+			if ($num_args < 1) {
+				$this->OPTIONS['INCLUDE_PATHS'] = array();
+				return true;
+			}
+			for ($i = 0; $i < $num_args; $i++) {
+				$thispath = func_get_arg($i);
+				array_push($this->OPTIONS['INCLUDE_PATHS'], realpath($thispath));
+			}
+			return true;
+		}
+
+		/**
+		 * After using one of the parse functions, this will allow you
+		 * access the time taken to parse the template.
+		 * see OPTION 'TIME_PARSE'.
+		 *
+		 * @return float time taken to parse template
+		 * @access public
+		 */
+		public function getParseTime()
+		{
+			if ($this->OPTIONS['TIME_PARSE'] && $this->_parsed) {
+				return $this->_totalparsetime;
+			}
+			return false;
+		}
+
+
+		/**
+		 * Identical to pparse() except that it uses output buffering w/ gz compression thus
+		 * printing the output directly and compressed if poss.
+		 * Will possibly if parsing a huge template.
+		 *
+		 * @access public
+		 * @return boolean true/false
+		 */
+		public function fastPrint()
+		{
+			$ret = $this->_parse('ob_gzhandler');
+			print($this->_tmploutput);
+			return $ret;
+		}
+
+
+		/**
+		 * Calls parse, and then prints out $this->_tmploutput
+		 * @access public
+		 * @return boolean true/false
+		 */
+		public function pparse()
+		{
+			if (!$this->_parsed) $this->_parse();
+			print($this->_tmploutput);
+			return true;
+		}
+
+		/**
+		 * Alias for pparse()
+		 * @access public
+		 */
+		public function pprint()
+		{
+			return $this->pparse();
+		}
+
+
+		/**
+		 * Returns the parsed output, ready for printing, passing to mail() ...etc.
+		 * Invokes $this->_parse() if template has not yet been parsed.
+		 *
+		 * @access public
+		 * @return boolean true/false
+		 */
+		public function grab()
+		{
+			if (!$this->_parsed) $this->_parse();
+			return $this->_tmploutput;
+		}
+
+		/*-----------------------------------------------------------------------------\
+        |                           private functions                                  |
+        \-----------------------------------------------------------------------------*/
+
+		/**
+		 * vlibTemplate constructor.
+		 * if $tmplfile has been passed to it, it will send to $this->newTemplate()
+		 * @param string $tmplfile full path to template file
+		 * @param array $options see above
+		 * @return boolean true/false
+		 * @access private
+		 */
+		public function __construct($tmplfile = null, $options = null)
+		{
+			if (is_array($tmplfile) && $options == null) {
+				$options = $tmplfile;
+				unset($tmplfile);
+			}
+
+			$this->VLIBTEMPLATE_ROOT = dirname(realpath(__FILE__));
+
+			if (is_array(vlibIni::vlibTemplate())) {
+				foreach (vlibIni::vlibTemplate() as $name => $val) {
+					$this->OPTIONS[$name] = $val;
+				}
+			}
+
+			if (is_array($options)) {
+				foreach($options as $key => $val) {
+					$key = strtoupper($key);
+					if ($key == 'PATH') {
+						$this->setPath($val);
+					} else {
+						$this->_setOption($key, strtolower($val));
+					}
+				}
+			}
+			if($tmplfile) $this->newTemplate($tmplfile);
+			if ($this->OPTIONS['GLOBAL_CONTEXT_VARS']) $this->setContextVars();
+			return true;
+		}
+
+		/**
+		 * function returns the text from the file, or if we're using cache, the text
+		 * from the cache file. MUST RETURN DATA.
+		 * @param string tmplfile contains path to template file
+		 * @param do_eval used for included files. If set then this function must do the eval()'ing.
+		 * @access private
+		 * @return mixed data/string or boolean
+		 */
+		private function _getData ($tmplfile, $do_eval=false)
+		{
+			//* check the current file depth
+			if ($this->_includedepth > $this->OPTIONS['MAX_INCLUDES'] || $tmplfile == false) {
+				return;
+			} else {
+				if ($this->_debug){
+					array_push($this->_debugIncludedfiles, $tmplfile);
+				}
+				if ($do_eval) {
+					array_push($this->_currentincludedir, dirname($tmplfile));
+					$this->_includedepth++;
+				}
+			}
+
+
+			if($this->_cache && $this->_checkCache($tmplfile)) { //* cache exists so lets use it
+				$data = fread($fp = fopen($this->_cachefile, 'r'), filesize($this->_cachefile));
+				fclose($fp);
+			} else { //* no cache lets parse the file
+				$data = fread($fp = fopen($tmplfile, 'r'), filesize($tmplfile));
+				fclose($fp);
+
+				$regex = '/(<|<\/|{|{\/|<!--|<!--\/){1}\s*';
+				$regex.= 'tmpl_([\w]+)\s*';
+				$regex.= '((?:(?:';
+				$regex.=    '(?:';
+				$regex.=        '(name|format|escape|op|value|file)';
+				$regex.=        '\s*=\s*';
+				$regex.=    ')?';
+				$regex.=    '(?:[\"\'])?';
+				$regex.=    '((?<=[\"\'])';
+				$regex.=    '[^\"\']*|[a-z0-9_\.]*)';
+				$regex.=    '[\"\']?';
+				$regex.= ')?\s*)*?)';
+				$regex.= '(?:>|\/>|}|-->){1}';
+				$regex.= '/i';
+				$data = preg_replace_callback($regex, array($this, '_parseTag'), $data);
+
+				if ($this->_cache) { // add cache if need be
+					$this->_createCache($data);
+				}
+			}
+
+			//* now we must parse the $data and check for any <tmpl_include>'s
+			if ($this->_debug) $this->doDebugWarnings(file($tmplfile), $tmplfile);
+
+			if ($do_eval) {
+				$success = @eval('?>'.$data.'<?php return 1;');
+				$this->_includedepth--;
+				array_pop($this->_currentincludedir);
+				return $success;
+			} else {
+				return $data;
+			}
+		}
+
+		/**
+		 * Searches for all possible instances of file { $file }
+		 * @param string $file path of file we're looking for
+		 * @access private
+		 * @return mixed fullpath to file or boolean false
+		 */
+		private function _fileSearch($file)
+		{
+
+			$filename = basename($file);
+			$filepath = dirname($file);
+
+			if(isset($_SESSION['s']['module']['name']) && isset($_SESSION['s']['theme'])) {
+				if(is_file(ISPC_THEMES_PATH.'/'.$_SESSION['s']['theme'].'/templates/'.$_SESSION['s']['module']['name'].'/'.$filename)) {
+					return ISPC_THEMES_PATH.'/'.$_SESSION['s']['theme'].'/templates/'.$_SESSION['s']['module']['name'].'/'.$filename;
+				}
+			}
+
+			//* check fullpath first..
+			$fullpath = $filepath.'/'.$filename;
+			if (is_file($fullpath)) return $fullpath;
+
+			//* ..then check for relative path for current directory..
+			if (!empty($this->_currentincludedir)) {
+				$currdir = $this->_currentincludedir[(count($this->_currentincludedir) -1)];
+				$relativepath = realpath($currdir.'/'.$filepath.'/'.$filename);
+				if (is_file($relativepath)) {
+					array_push($this->_currentincludedir, dirname($relativepath));
+					return $relativepath;
+				}
+			}
+
+			//* ..then check for relative path for all additional given paths..
+			if (!empty($this->OPTIONS['INCLUDE_PATHS'])) {
+				foreach ($this->OPTIONS['INCLUDE_PATHS'] as $currdir) {
+					$relativepath = realpath($currdir.'/'.$filepath.'/'.$filename);
+					if (is_file($relativepath)) {
+						return $relativepath;
+					}
+				}
+			}
+
+			//* ..then check path from TEMPLATE_DIR..
+			if (!empty($this->OPTIONS['TEMPLATE_DIR'])) {
+				$fullpath = realpath($this->OPTIONS['TEMPLATE_DIR'].'/'.$filepath.'/'.$filename);
+				if (is_file($fullpath)) return $fullpath;
+			}
+
+			//* ..then check relative path from executing php script..
+			$fullpath = realpath($filepath.'/'.$filename);
+			if (is_file($fullpath)) return $fullpath;
+
+			//* ..then check path from template file.
+			if (!empty($this->VLIBTEMPLATE_ROOT)) {
+				$fullpath = realpath($this->VLIBTEMPLATE_ROOT.'/'.$filepath.'/'.$filename);
+				if (is_file($fullpath)) return $fullpath;
+			}
+
+			return false; // uh oh, file not found
+		}
+
+		/**
+		 * Modifies the array $arr to add Template variables, __FIRST__, __LAST__ ..etc
+		 * if $this->OPTIONS['LOOP_CONTEXT_VARS'] is true.
+		 * Used by $this->setloop().
+		 * @param array $arr
+		 * @return array new look array
+		 * @access private
+		 */
+		private function _arrayBuild($arr)
+		{
+			if (is_array($arr) && !empty($arr)) {
+				$arr = array_values($arr); // to prevent problems w/ non sequential arrays
+				for ($i = 0; $i < count($arr); $i++) {
+					if(!is_array($arr[$i]))  return false;
+					foreach ($arr[$i] as $k => $v) {
+						unset($arr[$i][$k]);
+						if ($this->OPTIONS['CASELESS']) $k = strtolower($k);
+						if (preg_match('/^[0-9]+$/', $k)) $k = '_'.$k;
+
+						if (is_array($v)) {
+							if (($arr[$i][$k] = $this->_arrayBuild($v)) == false) return false;
+						} else { // reinsert the var
+							$arr[$i][$k] = $v;
+						}
+					}
+					if ($this->OPTIONS['LOOP_CONTEXT_VARS']) {
+						if ($i == 0) $arr[$i]['__FIRST__'] = true;
+						if (($i + 1) == count($arr)) $arr[$i]['__LAST__'] = true;
+						if ($i != 0 && (($i + 1) < count($arr))) $arr[$i]['__INNER__'] = true;
+						if (is_int(($i+1) / 2))  $arr[$i]['__EVEN__'] = true;
+						if (!is_int(($i+1) / 2))  $arr[$i]['__ODD__'] = true;
+						$arr[$i]['__ROWNUM__'] = ($i + 1);
+					}
+				}
+				return $arr;
+			} elseif (empty($arr)) {
+				return true;
+			}
+		}
+
+		/**
+		 * returns a string used for parsing in tmpl_if statements.
+		 * @param string $varname
+		 * @param string $value
+		 * @param string $op
+		 * @param string $namespace current namespace
+		 * @access private
+		 * @return string used for eval'ing
+		 */
+		private function _parseIf($varname, $value = null, $op = null, $namespace = null, $format = null)
+		{
+			if (isset($namespace)) $namespace = substr($namespace, 0, -1);
+			$comp_str = ''; // used for extended if statements
+
+			// work out what to put on the end id value="whatever" is used
+			if (isset($value)) {
+
+				// add the correct operator depending on whether it's been specified or not
+				if (!empty($op)) {
+					if (in_array($op, $this->allowed_if_ops)) {
+						$comp_str .= $op;
+					} else {
+						vlibTemplateError::raiseError('VT_WARNING_INVALID_IF_OP', WARNING, $op);
+					}
+				} else {
+					$comp_str .= '==';
+				}
+
+				// now we add the value, if it's numeric, then we leave the quotes off
+				if (is_numeric($value)) {
+					$comp_str .= $value;
+				} else {
+					$comp_str .= '\''.$value.'\'';
+				}
+			}
+
+			if (count($this->_namespace) == 0 || $namespace == 'global') return '$this->_vars[\''.$varname.'\']'.$comp_str;
+			$retstr = '$this->_arrvars';
+			$numnamespaces = count($this->_namespace);
+			for ($i=0; $i < $numnamespaces; $i++) {
+				if ($this->_namespace[$i] == $namespace || (($i + 1) == $numnamespaces && !empty($namespace))) {
+					$retstr .= "['".$namespace."'][\$_".$i."]";
+					break 1;
+				} else {
+					$retstr .= "['".$this->_namespace[$i]."'][\$_".$i."]";
+				}
+			}
+			if ($this->OPTIONS['GLOBAL_VARS'] && empty($namespace)) {
+				$retstr = '(('.$retstr.'[\''.$varname.'\'] !== null) ? '.$retstr.'[\''.$varname.'\'] : $this->_vars[\''.$varname.'\'])';
+				if(isset($format) && isset($value) && $format == 'version') {
+					return 'version_compare(' . $retstr . ', \'' . $value . '\', \'' . (!empty($op) ? $op : '==') . '\')';
+				} else {
+					return $retstr.$comp_str;
+				}
+			}
+			else {
+				if(isset($format) && isset($value) && $format == 'version') {
+					return 'version_compare(' . $retstr."['".$varname."']" . ', \'' . $value . '\', \'' . (!empty($op) ? $op : '==') . '\')';
+				} else {
+					return $retstr."['".$varname."']".$comp_str;
+				}
+			}
+		}
+
+
+		/**
+		 * returns a string used for parsing in tmpl_loop statements.
+		 * @param string $varname
+		 * @access private
+		 * @return string used for eval'ing
+		 */
+		private function _parseLoop ($varname)
+		{
+			array_push($this->_namespace, $varname);
+			$tempvar = count($this->_namespace) - 1;
+			$retstr = "for (\$_".$tempvar."=0 ; \$_".$tempvar." < count(\$this->_arrvars";
+			for ($i=0; $i < count($this->_namespace); $i++) {
+				$retstr .= "['".$this->_namespace[$i]."']";
+				if ($this->_namespace[$i] != $varname) $retstr .= "[\$_".$i."]";
+			}
+			return $retstr."); \$_".$tempvar."++) {";
+		}
+
+		/**
+		 * returns a string used for parsing in tmpl_var statements.
+		 * @param string $wholetag
+		 * @param string $tag
+		 * @param string $varname
+		 * @param string $escape
+		 * @param string $format
+		 * @param string $namespace
+		 * @access private
+		 * @return string used for eval'ing
+		 */
+		private function _parseVar ($wholetag, $tag, $varname, $escape, $format, $namespace)
+		{
+			if (!empty($namespace)) $namespace = substr($namespace, 0, -1);
+			$wholetag = stripslashes($wholetag);
+
+			if (count($this->_namespace) == 0 || $namespace == 'global') {
+				$var1 = '$this->_vars[\''.$varname.'\']';
+			} else {
+				$var1build = "\$this->_arrvars";
+				$numnamespaces = count($this->_namespace);
+				for ($i=0; $i < $numnamespaces; $i++) {
+					if ($this->_namespace[$i] == $namespace || (($i + 1) == $numnamespaces && !empty($namespace))) {
+						$var1build .= "['".$namespace."'][\$_".$i."]";
+						break 1;
+					} else {
+						$var1build .= "['".$this->_namespace[$i]."'][\$_".$i."]";
+					}
+				}
+				$var1 = $var1build . "['$varname']";
+				if ($this->OPTIONS['GLOBAL_VARS'] && empty($namespace)) {
+					$var2 = '$this->_vars[\''.$varname.'\']';
+				}
+			}
+
+			$beforevar = '';
+			$aftervar  = '';
+			if (!empty($escape)&& isset($this->ESCAPE_TAGS[$escape])) {
+				$beforevar .= $this->ESCAPE_TAGS[$escape]['open'];
+				$aftervar   = $this->ESCAPE_TAGS[$escape]['close'] . $aftervar;
+			}
+
+			if (!empty($format)&& isset($this->FORMAT_TAGS[$format])) {
+				$beforevar .= $this->FORMAT_TAGS[$format]['open'];
+				$aftervar   = $this->FORMAT_TAGS[$format]['close'] . $aftervar;
+			}
+
+			//* build return values
+			$retstr  = 'if ('.$var1.' !== null) { ';
+			$retstr .= 'print('.$beforevar.$var1.$aftervar.'); ';
+			$retstr .= '}';
+
+			if (@$var2) {
+				$retstr .= ' elseif ('.$var2.' !== null) { ';
+				$retstr .= 'print('.$beforevar.$var2.$aftervar.'); ';
+				$retstr .= '}';
+			}
+
+			switch (strtolower($this->OPTIONS['UNKNOWNS'])) {
+			case 'comment':
+				$comment = addcslashes('<!-- unknown variable '.preg_replace('/<!--|-->/', '', $wholetag).'//-->', '"');
+				$retstr .= ' else { print("'.$comment.'"); $this->_setUnknown("'.$varname.'"); }';
+				return $retstr;
+
+			case 'leave':
+				$retstr .= ' else { print("'.addcslashes($wholetag, '"').'"); $this->_setUnknown("'.$varname.'"); }';
+				return $retstr;
+
+			case 'print':
+				$retstr .= ' else { print("'.htmlspecialchars($wholetag, ENT_QUOTES).'"); $this->_setUnknown("'.$varname.'"); }';
+				return $retstr;
+
+			case 'ignore':
+				return $retstr;
+
+			case 'remove':
+			default:
+				$retstr .= ' else { $this->_setUnknown("'.$varname.'"); }';
+				return $retstr;
+
+			}
+		}
+
+		/**
+		 * takes values from preg_replace in $this->_intparse() and determines
+		 * the replace string.
+		 *
+		 * @param array $args array of all matches found by preg_replace
+		 * @access private
+		 * @return string replace values
+		 */
+		private function _parseTag ($args)
+		{
+			$wholetag = $args[0];
+			$openclose = $args[1];
+			$tag = strtolower($args[2]);
+			
+			if ($tag == 'else') return '<?php } else { ?>';
+			if ($tag == 'tmpl_include') return $wholetag; // ignore tmpl_include tags
+
+			if (preg_match("/^<\/|{\/|<!--\/$/s", $openclose) || preg_match("/^end[if|loop|unless|comment]$/", $tag)) {
+				if ($tag == 'loop' || $tag == 'endloop') array_pop($this->_namespace);
+				if ($tag == 'comment' || $tag == 'endcomment') {
+					return '<?php */ ?>';
+				} else {
+					return '<?php } ?>';
+				}
+			}
+
+			// arrange attributes
+			$tmp_atts = $args[3];
+			$atts = preg_split('/\s+/', $tmp_atts);
+			foreach($atts as $att) {
+				$regex =    '/(?:';
+				$regex.=        '(name|format|escape|op|value|file)';
+				$regex.=        '\s*=\s*';
+				$regex.=    ')?';
+				$regex.=    '(?:[\"\'])?';
+				$regex.=    '((?<=[\"\'])';
+				$regex.=    '[^\"\']*|[a-z0-9_\.]*)';
+				$regex.=    '[\"\']?/';
+				if(preg_match($regex, $att, $match)) {
+					$key = (empty($match[1])) ? 'name' : strtolower($match[1]);
+					if ($key == 'name' && preg_match('/^(php)?include$/', $tag)) $key = 'file';
+					$$key = $match[2];
+				}
+			}
+
+			$var = ($this->OPTIONS['CASELESS']) ? strtolower($name) : $name;
+
+			if ($this->_debug && !empty($var)) {
+				if (preg_match("/^global\.([A-Za-z_]+[_A-Za-z0-9]*)$/", $var, $matches)) $var2 = $matches[1];
+				if (empty($this->_debugTemplatevars[$tag])) $this->_debugTemplatevars[$tag] = array();
+				if (!isset($var2)) $var2 = $var;
+				if (!in_array($var2, $this->_debugTemplatevars[$tag])) array_push($this->_debugTemplatevars[$tag], $var2);
+			}
+
+			if (preg_match("/^([A-Za-z_]+[_A-Za-z0-9]*(\.)+)?([A-Za-z_]+[_A-Za-z0-9]*)$/", $var, $matches)) {
+				$var = $matches[3];
+				$namespace = $matches[1];
+			}
+
+
+			//* return correct string (tag dependent)
+			switch ($tag) {
+			case 'var':
+				if (empty($escape) && (!empty($this->OPTIONS['DEFAULT_ESCAPE']) && strtolower($this->OPTIONS['DEFAULT_ESCAPE']) != 'none')) {
+					$escape = strtolower($this->OPTIONS['DEFAULT_ESCAPE']);
+				}
+				return '<?php '.$this->_parseVar ($wholetag, $tag, $var, @$escape, @$format, @$namespace)." ?>\n";
+
+			case 'if':
+				return '<?php if ('. $this->_parseIf($var, @$value, @$op, @$namespace, @$format) .') { ?>';
+
+			case 'unless':
+				return '<?php if (!'. $this->_parseIf($var, @$value, @$op, @$namespace, @$format) .') { ?>';
+
+			case 'elseif':
+				return '<?php } elseif ('. $this->_parseIf($var, @$value, @$op, @$namespace, @$format) .') { ?>';
+
+			case 'loop':
+				return '<?php '. $this->_parseLoop($var) .'?>';
+
+			case 'comment':
+				if (empty($var)) { // full open/close style comment
+					return '<?php /* ?>';
+				} else { // just ignore tag if it was a one line comment
+					return;
+				}
+
+			case 'phpinclude':
+				if ($this->OPTIONS['ENABLE_PHPINCLUDE']) {
+					return '<?php include(\''.$file.'\'); ?>';
+				}
+
+			case 'include':
+				return '<?php $this->_getData($this->_fileSearch(\''.$file.'\'), 1); ?>';
+
+			case 'dyninclude':
+				return '<?php $this->_getData($this->_fileSearch($this->_dyninclude[\''.$name.'\']), 1); ?>';
+
+			default:
+				if ($this->OPTIONS['STRICT']) vlibTemplateError::raiseError('VT_ERROR_INVALID_TAG', KILL, htmlspecialchars($wholetag, ENT_QUOTES));
+				break;
+			}
+
+		}
+
+		/**
+		 * Parses $this->_tmplfile into correct format for eval() to work
+		 * Called by $this->_parse(), or $this->fastPrint, this replaces all <tmpl_*> references
+		 * with their correct php representation, i.e. <tmpl_var title> becomes $this->vars['title']
+		 * Sets final parsed file to $this->_tmplfilep.
+		 *
+		 * @access private
+		 * @return boolean true/false
+		 */
+		private function _intParse ()
+		{
+			//$mqrt = get_magic_quotes_runtime();
+			//set_magic_quotes_runtime(0);
+			$this->_tmplfilep = '?>'.$this->_getData($this->_tmplfilename).'<?php return true;';
+			//set_magic_quotes_runtime($mqrt);
+			return true;
+		}
+
+		/**
+		 * Calls _intParse, and eval()s $this->tmplfilep
+		 * and outputs the results to $this->tmploutput
+		 *
+		 * @param bool compress whether to compress contents
+		 * @access private
+		 * @return boolean true/false
+		 */
+		private function _parse ($compress = '')
+		{
+			if (!$this->_parsed) {
+				if ($this->OPTIONS['TIME_PARSE']) $this->_firstparsetime = $this->_getMicroTime();
+
+				$this->_intParse();
+				$this->_parsed = true;
+
+				if ($this->OPTIONS['TIME_PARSE']) $this->_totalparsetime = ($this->_getMicroTime() - $this->_firstparsetime);
+				if ($this->OPTIONS['TIME_PARSE'] && $this->OPTIONS['GLOBAL_CONTEXT_VARS']) $this->setVar('__PARSE_TIME__', $this->getParseTime());
+			}
+
+			// ob_start($compress);
+			ob_start();
+
+			array_push($this->_currentincludedir, dirname($this->_tmplfilename));
+			$this->_includedepth++;
+			$success = @eval($this->_tmplfilep);
+			$this->_includedepth--;
+			array_pop($this->_currentincludedir);
+
+			if ($this->_debug) $this->doDebug();
+			if (!$success) vlibTemplateError::raiseError('VT_ERROR_PARSE', FATAL);
+			$this->_tmploutput .= ob_get_contents();
+			ob_end_clean();
+			return true;
+		}
+
+		/**
+		 * Sets one or more of the boolean options 1/0, that control certain actions in the template.
+		 * Use of this function:
+		 * either: vlibTemplate::_setOptions(string option_name, bool option_val [, string option_name, bool option_val ..]);
+		 * or      vlibTemplate::_setOptions(array);
+		 *          with an associative array where the key is the option_name
+		 *          and the value is the option_value.
+		 *
+		 * @param mixed (mulitple)
+		 * @return bool true/false
+		 * @access private
+		 */
+		private function _setOption()
+		{
+			$numargs = func_num_args();
+			if ($numargs < 1) {
+				vlibTemplateError::raiseError('VT_ERROR_WRONG_NO_PARAMS', null, '_setOption()');
+				return false;
+			}
+
+			if ($numargs == 1) {
+				$options = func_get_arg(1);
+				if (is_array($options)) {
+					foreach ($options as $k => $v) {
+						if ($v != null) {
+							if(in_array($k, array_keys($this->OPTIONS))) $this->OPTIONS[$k] = $v;
+						} else {
+							continue;
+						}
+					}
+				} else {
+					vlibTemplateError::raiseError('VT_ERROR_WRONG_NO_PARAMS', null, '_setOption()');
+					return false;
+				}
+			}elseif (is_int($numargs / 2)) {
+				for ($i = 0; $i < $numargs; $i=($i+2)) {
+					$k  = func_get_arg($i);
+					$v = func_get_arg(($i+1));
+					if ($v != null) {
+						if(in_array($k, array_keys($this->OPTIONS))) $this->OPTIONS[$k] = $v;
+					}
+				}
+			} else {
+				vlibTemplateError::raiseError('VT_ERROR_WRONG_NO_PARAMS', null, '_setOption()');
+				return false;
+			}
+			return true;
+		}
+
+		/**
+		 * Used during parsing, this function sets an unknown var checking to see if it
+		 * has been previously set.
+		 * @param string var
+		 * @access private
+		 */
+		private function _setUnknown($var)
+		{
+			if (!in_array($var, $this->_unknowns)) array_push($this->_unknowns, $var);
+		}
+
+		/**
+		 * Returns microtime as a float number
+		 * @return float microtime
+		 * @access private
+		 */
+		private function _getMicrotime()
+		{
+			list($msec, $sec) = explode(' ', microtime());
+			return (float)$msec + (float)$sec;
+		}
+
+		/**
+		 * Returns str encoded to hex code.
+		 * @param string str to be encoded
+		 * @param bool true/false specify whether to use hex_entity
+		 * @return string encoded in hex
+		 * @access private
+		 */
+		private  function _escape_hex($str = '', $entity = false) {
+			$prestr = $entity ? '&#x' : '%';
+			$poststr= $entity ? ';' : '';
+			for ($i=0; $i < strlen($str); $i++) {
+				$return .= $prestr.bin2hex($str[$i]).$poststr;
+			}
+			return $return;
+		}
+
+		/*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+    The following functions have no use and are included just so that if the user
+    is making use of vlibTemplateCache functions, this doesn't crash when changed to
+    vlibTemplate if the user is quickly bypassing the vlibTemplateCache class.
+    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -*/
+		function clearCache()        {vlibTemplateError::raiseError('VT_WARNING_NOT_CACHE_OBJ', WARNING, 'clearCache()');}
+
+		function recache()           {vlibTemplateError::raiseError('VT_WARNING_NOT_CACHE_OBJ', WARNING, 'recache()');}
+
+		function setCacheLifeTime()  {vlibTemplateError::raiseError('VT_WARNING_NOT_CACHE_OBJ', WARNING, 'setCacheLifeTime()');}
+
+		function setCacheExtension() {vlibTemplateError::raiseError('VT_WARNING_NOT_CACHE_OBJ', WARNING, 'setCacheExtension()');}
+
+	} // << end class Def
+
+	//include_once (ISPC_CLASS_PATH.'/vlibTemplate/debug.php');
+	include_once ISPC_INSTALL_ROOT.'/install/lib/classes/tpl_cache.inc.php';
+
+} // << end if(!defined())..
+?>
diff --git a/install/lib/classes/tpl_cache.inc.php b/install/lib/classes/tpl_cache.inc.php
new file mode 100644
index 0000000..4bf75fa
--- /dev/null
+++ b/install/lib/classes/tpl_cache.inc.php
@@ -0,0 +1,193 @@
+<?php
+/* vim: set expandtab tabstop=4 shiftwidth=4: */
+// +----------------------------------------------------------------------+
+// | PHP version 4.0                                                      |
+// +----------------------------------------------------------------------+
+// | Copyright (c) 2002 Active Fish Group                                 |
+// +----------------------------------------------------------------------+
+// | Authors: Kelvin Jones <kelvin@kelvinjones.co.uk>                     |
+// +----------------------------------------------------------------------+
+//
+// $Id: cache.php,v 1.1 2003/07/08 12:32:06 platinum Exp $
+
+/**
+ * Class uses all of vlibTemplate's functionality but caches the template files.
+ * It creates an identical tree structure to your filesystem but with cached files.
+ *
+ * @author Kelvin Jones <kelvin@kelvinjones.co.uk>
+ * @since 22/02/2002
+ * @package vLIB
+ * @access public
+ */
+
+
+class tplc extends tpl {
+
+	/*-----------------------------------------------------------------------------\
+|     DO NOT TOUCH ANYTHING IN THIS CLASS, IT MAY NOT WORK OTHERWISE           |
+\-----------------------------------------------------------------------------*/
+
+	var $_cache = 1;     // tells vlibTemplate that we're caching
+	var $_cachefile;     // full path to current cache file (even if it doesn't yet exist)
+	var $_cacheexists;   // has this file been cached before
+	var $_cachefilelocked; // is this file currently locked whilst writing
+	var $_cachefiledir;  // dir of current cache file
+	var $_clearcache = 0;
+
+
+	/**
+	 * FUNCTION: clearCache
+	 * will unset a file, and set $this->_cacheexists to 0.
+	 *
+	 * @access public
+	 * @return boolean
+	 */
+	function clearCache() {
+		$this->_clearcache = 1;
+		return true;
+	}
+
+
+	/**
+	 * FUNCTION: recache
+	 * alias for clearCache().
+	 *
+	 * @access public
+	 * @return boolean
+	 */
+	function recache() {
+		return $this->clearCache();
+	}
+
+
+	/**
+	 * FUNCTION: setCacheLifeTime
+	 * sets the lifetime of the cached file
+	 *
+	 * @param int $int number of seconds to set lifetime to
+	 * @access public
+	 * @return boolean
+	 */
+	function setCacheLifeTime($int = null) {
+		if ($int == null || !is_int($int)) return false;
+		if ($int == 0) $int = 60;
+		if ($int == -1) $int = 157680000; // set to 5 yrs time
+		$this->OPTIONS['CACHE_LIFETIME'] = $int;
+		return true;
+	}
+
+
+	/**
+	 * FUNCTION: setCacheExtension
+	 * sets the extention of the cache file
+	 *
+	 * @param str $str name of new cache extention
+	 * @access public
+	 * @return boolean
+	 */
+	function setCacheExtension($str = null) {
+		if ($str == null || !preg_match('/^[a-z0-9]+$/', strtolower($str))) return false;
+		$this->OPTIONS['CACHE_EXTENSION'] = strtolower($str);
+		return true;
+	}
+
+
+	/*----------------------------------------\
+          Private Functions
+-----------------------------------------*/
+
+
+	/**
+	 * FUNCTION: _checkCache
+	 * checks if there's a cache, if there is then it will read the cache file as the template.
+	 */
+	function _checkCache ($tmplfile) {
+		$this->_cachefile = $this->_getFilename($tmplfile);
+		if ($this->_clearcache) {
+			if (file_exists($this->_cachefile)) unlink($this->_cachefile);
+			return false;
+		}
+
+		if (file_exists($this->_cachefile)) {
+			$this->_cacheexists = 1;
+
+			// if it's expired
+			if ((filemtime($this->_cachefile) + $this->OPTIONS['CACHE_LIFETIME']) < date('U')
+				|| filectime($this->_cachefile) < filemtime($tmplfile)) {
+				$this->_cacheexists = 0;
+				return false; // so that we know to recache
+			}
+			else {
+				return true;
+			}
+
+		} else {
+			$this->_cacheexists = 0;
+			return false;
+		}
+	}
+
+
+	/**
+	 * FUNCTION: _getFilename
+	 * gets the full pathname for the cached file
+	 *
+	 */
+	function _getFilename($tmplfile) {
+		return $this->OPTIONS['CACHE_DIRECTORY'].'/'.md5('vlibCachestaR'.realpath($tmplfile)).'.'.$this->OPTIONS['CACHE_EXTENSION'];
+	}
+
+
+	/**
+	 * FUNCTION: _createCache
+	 * creates the cached file
+	 *
+	 */
+	function _createCache($data) {
+		$cache_file = $this->_cachefile;
+		if(!$this->_prepareDirs($cache_file)) return false; // prepare all of the directories
+
+		$f = fopen($cache_file, "w");
+		flock($f, 2); // set an EXclusive lock
+		if (!$f) vlibTemplateError::raiseError('VT_ERROR_NO_CACHE_WRITE', KILL, $cache_file);
+		fputs($f, $data); // write the parsed string from vlibTemplate
+		flock($f, 3); // UNlock file
+		fclose($f);
+		touch($cache_file);
+		return true;
+	}
+
+
+	/**
+	 * FUNCTION: _prepareDirs
+	 * prepares the directory structure
+	 *
+	 */
+	function _prepareDirs($file) {
+		if (empty($file)) die('no filename'); //do error in future
+		$filepath = dirname($file);
+		if (is_dir($filepath)) return true;
+
+		$dirs = preg_split('/[\\/]/', $filepath);
+		$currpath;
+		foreach ($dirs as $dir) {
+			$currpath .= $dir .'/';
+			$type = @filetype($currpath);
+
+			($type=='link') and $type = 'dir';
+			if ($type != 'dir' && $type != false && !empty($type)) {
+				vlibTemplateError::raiseError('VT_ERROR_WRONG_CACHE_TYPE', KILL, 'directory: '.$currpath.', type: '.$type);
+			}
+			if ($type == 'dir') {
+				continue;
+			}
+			else {
+				$s = @mkdir($currpath, 0775);
+				if (!$s) vlibTemplateError::raiseError('VT_ERROR_CACHE_MKDIR_FAILURE', KILL, 'directory: '.$currpath);
+			}
+		}
+		return true;
+	}
+
+} // -- end vlibTemplateCache class
+?>
diff --git a/install/lib/classes/tpl_error.inc.php b/install/lib/classes/tpl_error.inc.php
new file mode 100644
index 0000000..c2badaa
--- /dev/null
+++ b/install/lib/classes/tpl_error.inc.php
@@ -0,0 +1,95 @@
+<?php
+/* vim: set expandtab tabstop=4 shiftwidth=4: */
+// +----------------------------------------------------------------------+
+// | PHP version 4.0                                                      |
+// +----------------------------------------------------------------------+
+// | Copyright (c) 2002 Active Fish Group                                 |
+// +----------------------------------------------------------------------+
+// | Authors: Kelvin Jones <kelvin@kelvinjones.co.uk>                     |
+// +----------------------------------------------------------------------+
+//
+// $Id: error.php,v 1.1 2003/07/08 12:32:06 platinum Exp $
+
+define('FATAL', E_USER_ERROR);
+define('WARNING', E_USER_WARNING);
+define('NOTICE', E_USER_NOTICE);
+define('KILL',   -1); // used for killing inside parsing.
+
+/**
+ * Class is used by vlibTemplate.
+ * It handles all of the error reporting for vlibTemplate.
+ *
+ * @author Kelvin Jones <kelvin@kelvinjones.co.uk>
+ * @since 06/03/2002
+ * @package vLIB
+ * @access private
+ */
+
+
+class vlibTemplateError {
+
+	/*-----------------------------------------------------------------------------\
+|     DO NOT TOUCH ANYTHING IN THIS CLASS IT MAY NOT WORK OTHERWISE            |
+\-----------------------------------------------------------------------------*/
+
+	public static function raiseError ($code, $level = null, $extra=null) {
+		if (!($level & error_reporting())&& $level != KILL) return; // binary AND checks for reporting level
+
+		$error_codes = array(
+			'VT_ERROR_NOFILE'               => 'vlibTemplate Error: Template ('.$extra.') file not found.',
+			'VT_ERROR_PARSE'                => 'vlibTemplate Error: Parse error!<br>To debug this file, use vlibTemplateDebug instead of vlibTemplate in the class instantiation(i.e. new vlibTemplateDebug).',
+			'VT_NOTICE_INVALID_TAG'         => 'vlibTemplate Notice: Invalid tag ('.$extra.').',
+			'VT_ERROR_INVALID_TAG'          => 'vlibTemplate Error: Invalid tag ('.$extra.'). To disable this you must turn of the STRICT option.',
+			'VT_NOTICE_INVALID_ATT'         => 'vlibTemplate Notice: Invalid attribute ('.$extra.').',
+			'VT_WARNING_INVALID_ARR'        => 'vlibTemplate Warning: Invalid loop structure passed to vlibTemplate::setLoop() (loop name: '.$extra.').',
+			'VT_ERROR_INVALID_ERROR_CODE'   => 'vlibTemplate Error: Invalid error raised.',
+			'VT_ERROR_WRONG_NO_PARAMS'      => 'vlibTemplate Warning: Wrond parameter count passed to '.$extra.'.',
+			'VT_ERROR_UNKNOWN_VAR'          => 'vlibTemplate Error: template var not found.',
+			'VT_ERROR_NO_CACHE_WRITE'       => 'vlibTemplate Error: unable to write to cache file ('.$extra.').',
+			'VT_ERROR_WRONG_CACHE_TYPE'     => 'vlibTemplate Error: non-directory file found in cache root with same name as directory ('.$extra.').',
+			'VT_ERROR_CACHE_MKDIR_FAILURE'  => 'vlibTemplate Error: failed to create directory in cache root ('.$extra.').',
+			'VT_WARNING_NOT_CACHE_OBJ'      => 'vlibTemplate Warning: called a vlibTemplateCache function ('.$extra.') without instantiating the vlibTemplateCache class.',
+			'VT_WARNING_LOOP_NOT_SET'       => 'vlibTemplate Warning: called vlibTemplate::addRow() or vlibTemplate::addLoop() with an invalid loop name.',
+			'VT_WARNING_INVALID_RESOURCE'   => 'vlibTemplate Warning: Invalid resource type passed to vlibTemplate::setDbLoop() for Db "'.$extra.'".',
+			'VT_WARNING_INVALID_LOOP_DB'    => 'vlibTemplate Warning: Invalid Db type passed to vlibTemplate::setDbLoop(), "'.$extra.'" not currently available.',
+			'VT_WARNING_INVALID_IF_OP'      => 'vlibTemplate Warning: The Operator "'.$extra.'" is not supported by vlibTemplate.'
+		);
+
+		$error_levels = array(
+			'VT_ERROR_NOFILE'               => FATAL,
+			'VT_ERROR_PARSE'                => FATAL,
+			'VT_NOTICE_INVALID_TAG'         => NOTICE,
+			'VT_ERROR_INVALID_TAG'          => FATAL,
+			'VT_NOTICE_INVALID_ATT'         => NOTICE,
+			'VT_WARNING_INVALID_ARR'        => WARNING,
+			'VT_ERROR_INVALID_ERROR_CODE'   => FATAL,
+			'VT_ERROR_WRONG_NO_PARAMS'      => WARNING,
+			'VT_ERROR_UNKNOWN_VAR'          => WARNING,
+			'VT_ERROR_NO_CACHE_WRITE'       => KILL,
+			'VT_ERROR_WRONG_CACHE_TYPE'     => KILL,
+			'VT_ERROR_CACHE_MKDIR_FAILURE'  => KILL,
+			'VT_WARNING_NOT_CACHE_OBJ'      => WARNING,
+			'VT_WARNING_LOOP_NOT_SET'       => WARNING,
+			'VT_WARNING_INVALID_RESOURCE'   => WARNING,
+			'VT_WARNING_INVALID_LOOP_DB'    => WARNING,
+			'VT_WARNING_INVALID_IF_OP'      => WARNING
+		);
+
+		($level === null) and $level = $error_levels[$code];
+		if ($level == KILL) {
+			die ($error_codes[$code]);
+		}
+
+		if ($msg = $error_codes[$code]) {
+			trigger_error($msg, $level);
+		} else {
+			$level = $error_levels['VT_ERROR_INVALID_ERROR_CODE'];
+			$msg = $error_codes['VT_ERROR_INVALID_ERROR_CODE'];
+			trigger_error($msg, $level);
+		}
+		return;
+	}
+
+}
+
+?>
diff --git a/install/lib/classes/tpl_ini.inc.php b/install/lib/classes/tpl_ini.inc.php
new file mode 100644
index 0000000..7a8c821
--- /dev/null
+++ b/install/lib/classes/tpl_ini.inc.php
@@ -0,0 +1,119 @@
+<?php
+/* vim: set expandtab tabstop=4 shiftwidth=4: */
+// +----------------------------------------------------------------------+
+// | PHP version 4.0                                                      |
+// +----------------------------------------------------------------------+
+// | Copyright (c) 2002 Active Fish Group                                 |
+// +----------------------------------------------------------------------+
+// | Authors: Kelvin Jones <kelvin@kelvinjones.co.uk>                     |
+// +----------------------------------------------------------------------+
+//
+// $Id: vlibIni.php,v 1.1 2003/07/08 12:31:10 platinum Exp $
+
+/*
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+; This file contains configuration parametres for use  ;
+; with the vLIB library. [ NOW A CLASS!! ]             ;
+;                                                      ;
+; vLIB uses this file so that for future releases, you ;
+; will not have to delve through all the php script    ;
+; again to set your specific variable/properties ..etc ;
+;                                                      ;
+; ---------------------------------------------------- ;
+; ATTENTION: Do NOT remove any variable given in the   ;
+; configurations below as they will probably still be  ;
+; needed by vLIB. If you do not need a variable simply ;
+; let it be.                                           ;
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+*/
+
+if (!defined('vlibIniClassLoaded')) {
+	define('vlibIniClassLoaded', 1);
+
+	/**
+	 * vlibIni is a class used to store configuration parameters
+	 * for the vLIB library.
+	 *
+	 * @since 21/07/2002
+	 * @author Kelvin Jones <kelvin@kelvinjones.co.uk>
+	 * @package vLIB
+	 * @access private
+	 */
+
+
+	class vlibIni {
+
+		/** config vars for vlibTemplate */
+		public static function vlibTemplate () {
+
+			global $conf;
+
+			$tpl_dir = ISPC_INSTALL_ROOT."/install/tpl";
+			$include_paths = array('/usr/local/ispconfig/server/conf-custom/install');
+
+			return array(
+
+				'TEMPLATE_DIR' => $tpl_dir,   // Default directory for your template files (full path)
+				// leave the '/' or '\' off the end of the directory.
+				'INCLUDE_PATHS' => $include_paths, // The include path is always searched first for a template file before the template_dir is checked
+
+				'MAX_INCLUDES' => 10,                      // Drill depth for tmpl_include's
+
+				'GLOBAL_VARS' => 1,                        // if set to 1, any variables not found in a
+				// loop will search for a global var as well
+
+				'GLOBAL_CONTEXT_VARS' => 1,                // if set to 1, vlibTemplate will add global vars
+				// reflecting the environment.
+
+				'LOOP_CONTEXT_VARS' => 1,                  // if set to 1, vlibTemplate will add loop specific vars
+				// on each row of the loop.
+
+				'SET_LOOP_VAR' => 1,                       // Sets a global variable for each top level loops
+
+				'DEFAULT_ESCAPE' => 'none',                // 1 of the following: html, url, sq, dq, none
+
+				'STRICT' => 0,                             // Dies when encountering an incorrect tmpl_*
+				// style tags i.e. tmpl_vae
+
+				'CASELESS' => 0,                           // Removes case sensitivity on all variables
+
+				'UNKNOWNS' => 'ignore',                    // How to handle unknown variables.
+				// 1 of the following: ignore, remove, leave,print, comment
+				// 1 of the following: ignore, remove, leave, print, comment
+
+				'TIME_PARSE' => '0',                       // Will enable you to time how long vlibTemplate takes to parse
+				// your template. You then use the function: getParseTime().
+
+				'ENABLE_PHPINCLUDE' => '1',                // Will allow template to include a php file using <TMPL_PHPINCLUDE>
+
+
+				/* the following are only used by the vlibTemplateCache class. */
+
+				'CACHE_DIRECTORY' => '/tmp',
+				// Directory where the cached filesystem
+				// will be set up (full path, and must be writable)
+				// '/' or '\' off the end of the directory.
+
+				'CACHE_LIFETIME' => 604800,                // Duration until file is re-cached in seconds (604800 = 1 week)
+
+				'CACHE_EXTENSION' => 'vtc'                  // extention to be used by the cached file i.e. index.php will become
+				// index.vtc (vlibTemplate Compiled)
+			);
+
+		} // << end function vlibTemplate
+
+
+
+		/** config vars for vlibDate */
+		public function vlibDate () {
+
+			return array(
+				'DEFAULT_LANG' => 'de'                     // default language for the date displays
+			);
+
+		}// << end function vlibDate
+
+
+	}// << end class vlibIni
+}
+?>
diff --git a/install/lib/install.lib.php b/install/lib/install.lib.php
index 5686ac1..5de8777 100644
--- a/install/lib/install.lib.php
+++ b/install/lib/install.lib.php
@@ -828,5 +828,30 @@
 	return $timezone;
 }
 
+function getapacheversion($get_minor = false) {
+		global $app;
+		
+		$cmd = '';
+		if(is_installed('apache2ctl')) $cmd = 'apache2ctl -v';
+		elseif(is_installed('apachectl')) $cmd = 'apachectl -v';
+		else {
+			$app->log("Could not check apache version, apachectl not found.", LOGLEVEL_WARN);
+			return '2.2';
+		}
+		
+		exec($cmd, $output, $return_var);
+		if($return_var != 0 || !$output[0]) {
+			$app->log("Could not check apache version, apachectl did not return any data.", LOGLEVEL_WARN);
+			return '2.2';
+		}
+		
+		if(preg_match('/version:\s*Apache\/(\d+)(\.(\d+)(\.(\d+))*)?(\D|$)/i', $output[0], $matches)) {
+			return $matches[1] . (isset($matches[3]) ? '.' . $matches[3] : '') . (isset($matches[5]) && $get_minor == true ? '.' . $matches[5] : '');
+		} else {
+			$app->log("Could not check apache version, did not find version string in apachectl output.", LOGLEVEL_WARN);
+			return '2.2';
+		}
+	}
+
 
 ?>
diff --git a/install/lib/installer_base.lib.php b/install/lib/installer_base.lib.php
index dd7ce0d..d0fb287 100644
--- a/install/lib/installer_base.lib.php
+++ b/install/lib/installer_base.lib.php
@@ -1285,11 +1285,12 @@
 		$vhost_conf_dir = $conf['apache']['vhost_conf_dir'];
 		$vhost_conf_enabled_dir = $conf['apache']['vhost_conf_enabled_dir'];
 
-		// copy('tpl/apache_ispconfig.conf.master',$vhost_conf_dir.'/ispconfig.conf');
-
-		$content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/apache_ispconfig.conf.master', 'tpl/apache_ispconfig.conf.master');
+		$tpl = new tpl('apache_ispconfig.conf.master');
+		$tpl->setVar('apache_version',getapacheversion());
+		
 		$records = $this->db->queryAllRecords('SELECT * FROM '.$conf['mysql']['master_database'].'.server_ip WHERE server_id = '.$conf['server_id']." AND virtualhost = 'y'");
-
+		$ip_addresses = array();
+		
 		if(is_array($records) && count($records) > 0) {
 			foreach($records as $rec) {
 				if($rec['ip_type'] == 'IPv6') {
@@ -1302,15 +1303,17 @@
 					foreach($ports as $port) {
 						$port = intval($port);
 						if($port > 0 && $port < 65536 && $ip_address != '') {
-							$content .= 'NameVirtualHost '.$ip_address.":".$port."\n";
+							$ip_addresses[] = array('ip_address' => $ip_address, 'port' => $port);
 						}
 					}
 				}
 			}
 		}
-
-		$content .= "\n";
-		wf($vhost_conf_dir.'/ispconfig.conf', $content);
+		
+		if(count($ip_addresses) > 0) $tpl->setLoop('ip_adresses',$ip_addresses);
+		
+		wf($vhost_conf_dir.'/ispconfig.conf', $tpl->grab());
+		unset($tpl);
 
 		if(!@is_link($vhost_conf_enabled_dir.'/000-ispconfig.conf')) {
 			symlink($vhost_conf_dir.'/ispconfig.conf', $vhost_conf_enabled_dir.'/000-ispconfig.conf');
@@ -1562,23 +1565,24 @@
 			}
 
 			// Dont just copy over the virtualhost template but add some custom settings
-			$content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/apache_apps.vhost.master', 'tpl/apache_apps.vhost.master');
-
-			$content = str_replace('{apps_vhost_ip}', $conf['web']['apps_vhost_ip'], $content);
-			$content = str_replace('{apps_vhost_port}', $conf['web']['apps_vhost_port'], $content);
-			$content = str_replace('{apps_vhost_dir}', $conf['web']['website_basedir'].'/apps', $content);
-			$content = str_replace('{website_basedir}', $conf['web']['website_basedir'], $content);
-			$content = str_replace('{apps_vhost_servername}', $apps_vhost_servername, $content);
+			$tpl = new tpl('apache_apps.vhost.master');
+			$tpl->setVar('apps_vhost_ip',$conf['web']['apps_vhost_ip']);
+			$tpl->setVar('apps_vhost_port',$conf['web']['apps_vhost_port']);
+			$tpl->setVar('apps_vhost_dir',$conf['web']['website_basedir'].'/apps');
+			$tpl->setVar('apps_vhost_basedir',$conf['web']['website_basedir']);
+			$tpl->setVar('apps_vhost_servername',$apps_vhost_servername);
+			$tpl->setVar('apache_version',getapacheversion());
 
 
 			// comment out the listen directive if port is 80 or 443
 			if($conf['web']['apps_vhost_ip'] == 80 or $conf['web']['apps_vhost_ip'] == 443) {
-				$content = str_replace('{vhost_port_listen}', '#', $content);
+				$tpl->setVar('vhost_port_listen','#');
 			} else {
-				$content = str_replace('{vhost_port_listen}', '', $content);
+				$tpl->setVar('vhost_port_listen','');
 			}
 
-			wf($vhost_conf_dir.'/apps.vhost', $content);
+			wf($vhost_conf_dir.'/apps.vhost', $tpl->grab());
+			unset($tpl);
 
 			//copy('tpl/apache_ispconfig.vhost.master', "$vhost_conf_dir/ispconfig.vhost");
 			//* and create the symlink
@@ -1958,30 +1962,31 @@
 			$vhost_conf_enabled_dir = $conf['apache']['vhost_conf_enabled_dir'];
 
 			// Dont just copy over the virtualhost template but add some custom settings
-			$content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/apache_ispconfig.vhost.master', 'tpl/apache_ispconfig.vhost.master');
-			$content = str_replace('{vhost_port}', $conf['apache']['vhost_port'], $content);
+			$tpl = new tpl('apache_ispconfig.vhost.master');
+			$tpl->setVar('vhost_port',$conf['apache']['vhost_port']);
 
 			// comment out the listen directive if port is 80 or 443
 			if($conf['apache']['vhost_port'] == 80 or $conf['apache']['vhost_port'] == 443) {
-				$content = str_replace('{vhost_port_listen}', '#', $content);
+				$tpl->setVar('vhost_port_listen','#');
 			} else {
-				$content = str_replace('{vhost_port_listen}', '', $content);
+				$tpl->setVar('vhost_port_listen','');
 			}
 
 			if(is_file($install_dir.'/interface/ssl/ispserver.crt') && is_file($install_dir.'/interface/ssl/ispserver.key')) {
-				$content = str_replace('{ssl_comment}', '', $content);
+				$tpl->setVar('ssl_comment','');
 			} else {
-				$content = str_replace('{ssl_comment}', '#', $content);
+				$tpl->setVar('ssl_comment','#');
 			}
 			if(is_file($install_dir.'/interface/ssl/ispserver.crt') && is_file($install_dir.'/interface/ssl/ispserver.key') && is_file($install_dir.'/interface/ssl/ispserver.bundle')) {
-				$content = str_replace('{ssl_bundle_comment}', '', $content);
+				$tpl->setVar('ssl_bundle_comment','');
 			} else {
-				$content = str_replace('{ssl_bundle_comment}', '#', $content);
+				$tpl->setVar('ssl_bundle_comment','#');
 			}
+			
+			$tpl->setVar('apache_version',getapacheversion());
 
-			wf($vhost_conf_dir.'/ispconfig.vhost', $content);
+			wf($vhost_conf_dir.'/ispconfig.vhost', $tpl->grab());
 
-			//copy('tpl/apache_ispconfig.vhost.master', $vhost_conf_dir.'/ispconfig.vhost');
 			//* and create the symlink
 			if($this->is_update == false) {
 				if(@is_link($vhost_conf_enabled_dir.'/ispconfig.vhost')) unlink($vhost_conf_enabled_dir.'/ispconfig.vhost');
diff --git a/install/tpl/apache_apps.vhost.master b/install/tpl/apache_apps.vhost.master
index d132b50..6d6d4e2 100644
--- a/install/tpl/apache_apps.vhost.master
+++ b/install/tpl/apache_apps.vhost.master
@@ -4,40 +4,46 @@
 # for the ISPConfig apps vhost
 ######################################################
 
-{vhost_port_listen} Listen {apps_vhost_port}
-# NameVirtualHost *:{apps_vhost_port}
+{tmpl_var name='vhost_port_listen'} Listen {tmpl_var name='apps_vhost_port'}
+# NameVirtualHost *:{tmpl_var name='apps_vhost_port'}
 
-<VirtualHost {apps_vhost_ip}:{apps_vhost_port}>
+<VirtualHost {tmpl_var name='apps_vhost_ip'}:{tmpl_var name='apps_vhost_port'}>
   ServerAdmin webmaster@localhost
-  {apps_vhost_servername}
+  {tmpl_var name='apps_vhost_servername'}
   
   <FilesMatch "\.ph(p3?|tml)$">
     SetHandler None
   </FilesMatch>
   
   <IfModule mod_php5.c>
-    DocumentRoot {apps_vhost_dir}
+    DocumentRoot {tmpl_var name='apps_vhost_dir'}
     AddType application/x-httpd-php .php
-    <Directory {apps_vhost_dir}>
-      # php_admin_value open_basedir "{apps_vhost_dir}:/usr/share:/tmp"
-      Options +FollowSymLinks
-      AllowOverride None
-      Order allow,deny
-      Allow from all
+    <Directory {tmpl_var name='apps_vhost_dir'}>
+		Options FollowSymLinks
+		AllowOverride None
+		<tmpl_if name='apache_version' op='>' value='2.2' format='version'>
+		Require all granted
+		<tmpl_else>
+		Order allow,deny
+		Allow from all
+		</tmpl_if>
     </Directory>
   </IfModule>
   
   <IfModule mod_fcgid.c>
-    DocumentRoot {apps_vhost_dir}
+    DocumentRoot {tmpl_var name='apps_vhost_dir'}
     SuexecUserGroup ispapps ispapps
-    <Directory {apps_vhost_dir}>
-      Options +Indexes +FollowSymLinks +MultiViews +ExecCGI
-      AllowOverride AuthConfig Indexes Limit Options FileInfo
-      AddHandler fcgid-script .php
-      FCGIWrapper {website_basedir}/php-fcgi-scripts/apps/.php-fcgi-starter .php
-	  # FcgidBusyTimeout 3600
-      Order allow,deny
-      Allow from all
+    <Directory {tmpl_var name='apps_vhost_dir'}>
+		Options +Indexes +FollowSymLinks +MultiViews +ExecCGI
+		AllowOverride AuthConfig Indexes Limit Options FileInfo
+		AddHandler fcgid-script .php
+		FCGIWrapper {tmpl_var name='apps_vhost_basedir'}/php-fcgi-scripts/apps/.php-fcgi-starter .php
+		<tmpl_if name='apache_version' op='>' value='2.2' format='version'>
+		Require all granted
+		<tmpl_else>
+		Order allow,deny
+		Allow from all
+		</tmpl_if>
     </Directory>
   </IfModule>
 
diff --git a/install/tpl/apache_ispconfig.conf.master b/install/tpl/apache_ispconfig.conf.master
index 0745c28..f9062f5 100644
--- a/install/tpl/apache_ispconfig.conf.master
+++ b/install/tpl/apache_ispconfig.conf.master
@@ -1,5 +1,4 @@
 
-
 ################################################
 # ISPConfig Logfile configuration for vlogger
 ################################################
@@ -9,46 +8,107 @@
 
 <Directory /var/www/clients>
     AllowOverride None
-    Order Deny,Allow
-    Deny from all
+	<tmpl_if name='apache_version' op='>' value='2.2' format='version'>
+	Require all deny
+	<tmpl_else>
+	Order Deny,Allow
+	Deny from all
+	</tmpl_if>
 </Directory>
 
 # Do not allow access to the root file system of the server for security reasons
 <Directory />
-       AllowOverride None
-       Order Deny,Allow
-       Deny from all
+    AllowOverride None
+	<tmpl_if name='apache_version' op='>' value='2.2' format='version'>
+	Require all deny
+	<tmpl_else>
+	Order Deny,Allow
+	Deny from all
+	</tmpl_if>
 </Directory>
 
 <Directory /var/www/conf>
     AllowOverride None
-    Order Deny,Allow
-    Deny from all
+	<tmpl_if name='apache_version' op='>' value='2.2' format='version'>
+	Require all deny
+	<tmpl_else>
+	Order Deny,Allow
+	Deny from all
+	</tmpl_if>
 </Directory>
 
 # Except of the following directories that contain website scripts
 <Directory /usr/share/phpmyadmin>
+		<tmpl_if name='apache_version' op='>' value='2.2' format='version'>
+		Require all granted
+		<tmpl_else>
         Order allow,deny
         Allow from all
+		</tmpl_if>
 </Directory>
 
 <Directory /usr/share/phpMyAdmin>
+		<tmpl_if name='apache_version' op='>' value='2.2' format='version'>
+		Require all granted
+		<tmpl_else>
         Order allow,deny
         Allow from all
+		</tmpl_if>
 </Directory>
 
 <Directory /usr/share/squirrelmail>
+		<tmpl_if name='apache_version' op='>' value='2.2' format='version'>
+		Require all granted
+		<tmpl_else>
         Order allow,deny
         Allow from all
+		</tmpl_if>
+</Directory>
+
+# Allow access to mailman on OpenSuSE
+<Directory /usr/lib/mailman/cgi-bin>
+		<tmpl_if name='apache_version' op='>' value='2.2' format='version'>
+		Require all granted
+		<tmpl_else>
+        Order allow,deny
+        Allow from all
+		</tmpl_if>
+</Directory>
+
+<Directory /usr/lib/mailman/icons>
+		<tmpl_if name='apache_version' op='>' value='2.2' format='version'>
+		Require all granted
+		<tmpl_else>
+        Order allow,deny
+        Allow from all
+		</tmpl_if>
+</Directory>
+
+<Directory /var/lib/mailman/archives/>
+        Options +FollowSymLinks
+		<tmpl_if name='apache_version' op='>' value='2.2' format='version'>
+		Require all granted
+		<tmpl_else>
+        Order allow,deny
+        Allow from all
+		</tmpl_if>
 </Directory>
 
 # allow path to awstats and alias for awstats icons
 <Directory /usr/share/awstats>
+		<tmpl_if name='apache_version' op='>' value='2.2' format='version'>
+		Require all granted
+		<tmpl_else>
         Order allow,deny
         Allow from all
+		</tmpl_if>
 </Directory>
 
 Alias /awstats-icon "/usr/share/awstats/icon"
 
 NameVirtualHost *:80
 NameVirtualHost *:443
+<tmpl_loop name="ip_adresses">
+NameVirtualHost {tmpl_var name="ip_address"}:{tmpl_var name="port"}
+</tmpl_loop>
+
diff --git a/install/tpl/apache_ispconfig.vhost.master b/install/tpl/apache_ispconfig.vhost.master
index 7067cda..bf2fe9e 100644
--- a/install/tpl/apache_ispconfig.vhost.master
+++ b/install/tpl/apache_ispconfig.vhost.master
@@ -4,10 +4,10 @@
 # for the ISPConfig controlpanel
 ######################################################
 
-{vhost_port_listen} Listen {vhost_port}
-NameVirtualHost *:{vhost_port}
+<tmpl_var name="vhost_port_listen"> Listen <tmpl_var name="vhost_port">
+NameVirtualHost *:<tmpl_var name="vhost_port">
 
-<VirtualHost _default_:{vhost_port}>
+<VirtualHost _default_:<tmpl_var name="vhost_port">>
   ServerAdmin webmaster@localhost
   
   <FilesMatch "\.ph(p3?|tml)$">
@@ -22,8 +22,12 @@
       AllowOverride AuthConfig Indexes Limit Options FileInfo
       AddHandler fcgid-script .php
       FCGIWrapper /var/www/php-fcgi-scripts/ispconfig/.php-fcgi-starter .php
+      <tmpl_if name='apache_version' op='>' value='2.2' format='version'>
+	  Require all granted
+	  <tmpl_else>
       Order allow,deny
       Allow from all
+	  </tmpl_if>
     </Directory>
     IPCCommTimeout  7200
 	MaxRequestLen 15728640
@@ -37,8 +41,12 @@
       # php_admin_value open_basedir "/usr/local/ispconfig/interface:/usr/share:/tmp"
       Options +FollowSymLinks
       AllowOverride None
+      <tmpl_if name='apache_version' op='>' value='2.2' format='version'>
+	  Require all granted
+	  <tmpl_else>
       Order allow,deny
       Allow from all
+	  </tmpl_if>
 	  php_value magic_quotes_gpc        0
     </Directory>
   </IfModule>
@@ -52,22 +60,30 @@
   </IfModule>
 
   # SSL Configuration
-  {ssl_comment}SSLEngine On
-  {ssl_comment}SSLCertificateFile /usr/local/ispconfig/interface/ssl/ispserver.crt
-  {ssl_comment}SSLCertificateKeyFile /usr/local/ispconfig/interface/ssl/ispserver.key
-  {ssl_bundle_comment}SSLCACertificateFile /usr/local/ispconfig/interface/ssl/ispserver.bundle
+  <tmpl_var name="ssl_comment">SSLEngine On
+  <tmpl_var name="ssl_comment">SSLCertificateFile /usr/local/ispconfig/interface/ssl/ispserver.crt
+  <tmpl_var name="ssl_comment">SSLCertificateKeyFile /usr/local/ispconfig/interface/ssl/ispserver.key
+  <tmpl_var name="ssl_bundle_comment">SSLCACertificateFile /usr/local/ispconfig/interface/ssl/ispserver.bundle
 
 </VirtualHost>
 
 <Directory /var/www/php-cgi-scripts>
     AllowOverride None
+	<tmpl_if name='apache_version' op='>' value='2.2' format='version'>
+	Require all denied
+	<tmpl_else>
     Order Deny,Allow
     Deny from all
+	</tmpl_if>
 </Directory>
 
 <Directory /var/www/php-fcgi-scripts>
     AllowOverride None
+    <tmpl_if name='apache_version' op='>' value='2.2' format='version'>
+	Require all denied
+	<tmpl_else>
     Order Deny,Allow
     Deny from all
+	</tmpl_if>
 </Directory>
 
diff --git a/install/tpl/debian_postfix.conf.master b/install/tpl/debian_postfix.conf.master
index beb7140..22e41ce 100644
--- a/install/tpl/debian_postfix.conf.master
+++ b/install/tpl/debian_postfix.conf.master
@@ -11,7 +11,7 @@
 smtpd_sasl_auth_enable = yes
 broken_sasl_auth_clients = yes
 smtpd_sasl_authenticated_header = yes
-smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, check_recipient_access mysql:{config_dir}/mysql-virtual_recipient.cf, reject_unauth_destination{rbl_list}
+smtpd_recipient_restrictions = check_recipient_access mysql:{config_dir}/mysql-virtual_recipient.cf, permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination{rbl_list}
 smtpd_use_tls = yes
 smtpd_tls_security_level = may
 smtpd_tls_cert_file = {config_dir}/smtpd.cert
diff --git a/install/tpl/fedora_postfix.conf.master b/install/tpl/fedora_postfix.conf.master
index 2c3294e..f5cdf6f 100644
--- a/install/tpl/fedora_postfix.conf.master
+++ b/install/tpl/fedora_postfix.conf.master
@@ -8,7 +8,7 @@
 smtpd_sasl_auth_enable = yes
 broken_sasl_auth_clients = yes
 smtpd_sasl_authenticated_header = yes
-smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, check_recipient_access mysql:{config_dir}/mysql-virtual_recipient.cf, reject_unauth_destination{rbl_list}
+smtpd_recipient_restrictions = check_recipient_access mysql:{config_dir}/mysql-virtual_recipient.cf, permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination{rbl_list}
 smtpd_use_tls = yes
 smtpd_tls_security_level = may
 smtpd_tls_cert_file = {config_dir}/smtpd.cert
diff --git a/install/tpl/gentoo_postfix.conf.master b/install/tpl/gentoo_postfix.conf.master
index 7af96d3..90f55e6 100644
--- a/install/tpl/gentoo_postfix.conf.master
+++ b/install/tpl/gentoo_postfix.conf.master
@@ -8,7 +8,7 @@
 smtpd_sasl_auth_enable = yes
 broken_sasl_auth_clients = yes
 smtpd_sasl_authenticated_header = yes
-smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, check_recipient_access mysql:{config_dir}/mysql-virtual_recipient.cf, reject_unauth_destination{rbl_list}
+smtpd_recipient_restrictions = check_recipient_access mysql:{config_dir}/mysql-virtual_recipient.cf, permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination{rbl_list}
 smtpd_use_tls = yes
 smtpd_tls_security_level = may
 smtpd_tls_cert_file = {config_dir}/smtpd.cert
diff --git a/install/tpl/nginx_apps.vhost.master b/install/tpl/nginx_apps.vhost.master
index 9f8ae88..a8fe664 100644
--- a/install/tpl/nginx_apps.vhost.master
+++ b/install/tpl/nginx_apps.vhost.master
@@ -97,7 +97,7 @@
                        fastcgi_buffers 256 4k;
                        fastcgi_busy_buffers_size 256k;
                        fastcgi_temp_file_write_size 256k;
-                       fastcgi_read_timeout 240;
+                       fastcgi_read_timeout 1200;
                }
                location ~* ^/phpmyadmin/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ {
                        root /usr/share/;
diff --git a/install/tpl/opensuse_postfix.conf.master b/install/tpl/opensuse_postfix.conf.master
index 7af96d3..90f55e6 100644
--- a/install/tpl/opensuse_postfix.conf.master
+++ b/install/tpl/opensuse_postfix.conf.master
@@ -8,7 +8,7 @@
 smtpd_sasl_auth_enable = yes
 broken_sasl_auth_clients = yes
 smtpd_sasl_authenticated_header = yes
-smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, check_recipient_access mysql:{config_dir}/mysql-virtual_recipient.cf, reject_unauth_destination{rbl_list}
+smtpd_recipient_restrictions = check_recipient_access mysql:{config_dir}/mysql-virtual_recipient.cf, permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination{rbl_list}
 smtpd_use_tls = yes
 smtpd_tls_security_level = may
 smtpd_tls_cert_file = {config_dir}/smtpd.cert
diff --git a/install/update.php b/install/update.php
index 249c67f..1eafbb3 100644
--- a/install/update.php
+++ b/install/update.php
@@ -66,6 +66,9 @@
 define('ISPC_LOG_FILE', '/var/log/ispconfig_install.log');
 define('ISPC_INSTALL_ROOT', realpath(dirname(__FILE__).'/../'));
 
+//** Include the templating lib
+require_once 'lib/classes/tpl.inc.php';
+
 //** Check for ISPConfig 2.x versions
 if(is_dir('/root/ispconfig') || is_dir('/home/admispconfig')) {
 	die('This software cannot be installed on a server wich runs ISPConfig 2.x.');
diff --git a/interface/lib/classes/remote.d/sites.inc.php b/interface/lib/classes/remote.d/sites.inc.php
index 94ec2b1..2574ee8 100644
--- a/interface/lib/classes/remote.d/sites.inc.php
+++ b/interface/lib/classes/remote.d/sites.inc.php
@@ -128,7 +128,18 @@
 			$this->dataRecord = $params;
 			$app->sites_database_plugin->processDatabaseInsert($this);
 
-			return $this->insertQueryExecute($sql, $params);
+			$retval = $this->insertQueryExecute($sql, $params);
+			
+			// set correct values for backup_interval and backup_copies
+			if(isset($params['backup_interval']) || isset($params['backup_copies'])){
+				$sql_set = array();
+				if(isset($params['backup_interval'])) $sql_set[] = "backup_interval = '".$app->db->quote($params['backup_interval'])."'";
+				if(isset($params['backup_copies'])) $sql_set[] = "backup_copies = ".$app->functions->intval($params['backup_copies']);
+				//$app->db->query("UPDATE web_database SET ".implode(', ', $sql_set)." WHERE database_id = ".$retval);
+				$this->updateQueryExecute("UPDATE web_database SET ".implode(', ', $sql_set)." WHERE database_id = ".$retval, $retval, $params);
+			}
+			
+			return $retval;
 		}
 
 		return false;
@@ -151,7 +162,18 @@
 			$this->id = $primary_id;
 			$this->dataRecord = $params;
 			$app->sites_database_plugin->processDatabaseUpdate($this);
-			return $this->updateQueryExecute($sql, $primary_id, $params);
+			$retval = $this->updateQueryExecute($sql, $primary_id, $params);
+			
+			// set correct values for backup_interval and backup_copies
+			if(isset($params['backup_interval']) || isset($params['backup_copies'])){
+				$sql_set = array();
+				if(isset($params['backup_interval'])) $sql_set[] = "backup_interval = '".$app->db->quote($params['backup_interval'])."'";
+				if(isset($params['backup_copies'])) $sql_set[] = "backup_copies = ".$app->functions->intval($params['backup_copies']);
+				//$app->db->query("UPDATE web_database SET ".implode(', ', $sql_set)." WHERE database_id = ".$primary_id);
+				$this->updateQueryExecute("UPDATE web_database SET ".implode(', ', $sql_set)." WHERE database_id = ".$primary_id, $primary_id, $params);
+			}
+			
+			return $retval;
 		}
 
 		return false;
diff --git a/interface/lib/config.inc.php b/interface/lib/config.inc.php
index a5915c7..7b5dace 100644
--- a/interface/lib/config.inc.php
+++ b/interface/lib/config.inc.php
@@ -139,6 +139,7 @@
 //** Default Language
 $conf['language'] = 'en';
 $conf['debug_language'] = false;
+$conf['language_file_import_enabled'] = true; // Bool value: true / false
 
 //** Default Country
 $conf['country'] = 'DE';
diff --git a/interface/lib/lang/cz.lng b/interface/lib/lang/cz.lng
index 747c0c0..9dc581f 100644
--- a/interface/lib/lang/cz.lng
+++ b/interface/lib/lang/cz.lng
@@ -133,5 +133,11 @@
 $wb['login_as_txt'] = 'Přihlašte se jako';
 $wb['no_domain_perm'] = 'Nemáte oprávnění pro tuto doménu. ';
 $wb['no_destination_perm'] = 'Nemáte oprávnění pro tuto destinaci.';
+$wb['client_you_are_locked'] = 'Nemáte oprávnění měnit žádná nastavení.';
+$wb['gender_m_txt'] = 'Pan';
+$wb['gender_f_txt'] = 'Paní';
+$wb['client_cannot_be_deleted_because_of_billing_module_txt'] = 'This client has records in the billing module, therefore he cannot be deleted.';
+$wb['yes_txt'] = 'Ano';
+$wb['no_txt'] = 'Ne';
 ?>
 
diff --git a/interface/lib/plugins/sites_web_vhost_domain_plugin.inc.php b/interface/lib/plugins/sites_web_vhost_domain_plugin.inc.php
index 670c5d6..d1adf95 100644
--- a/interface/lib/plugins/sites_web_vhost_domain_plugin.inc.php
+++ b/interface/lib/plugins/sites_web_vhost_domain_plugin.inc.php
@@ -198,7 +198,7 @@
 				//* Change database backup options when web backup options have been changed
 				if(isset($page_form->dataRecord['backup_interval']) && ($page_form->dataRecord['backup_interval'] != $page_form->oldDataRecord['backup_interval'] || $page_form->dataRecord['backup_copies'] != $page_form->oldDataRecord['backup_copies'])) {
 					//* Update all databases
-					$backup_interval = $app->functions->intval($page_form->dataRecord['backup_interval']);
+					$backup_interval = $app->db->quote($page_form->dataRecord['backup_interval']);
 					$backup_copies = $app->functions->intval($page_form->dataRecord['backup_copies']);
 					$records = $app->db->queryAllRecords("SELECT database_id FROM web_database WHERE parent_domain_id = ".$page_form->id);
 					foreach($records as $rec) {
diff --git a/interface/web/admin/lib/lang/cz_directive_snippets.lng b/interface/web/admin/lib/lang/cz_directive_snippets.lng
index 085aec4..8038176 100644
--- a/interface/web/admin/lib/lang/cz_directive_snippets.lng
+++ b/interface/web/admin/lib/lang/cz_directive_snippets.lng
@@ -6,5 +6,6 @@
 $wb['active_txt'] = 'Aktivní';
 $wb['directive_snippets_name_empty'] = 'Please specify a name for the snippet.';
 $wb['directive_snippets_name_error_unique'] = 'There is already a directive snippet with this name.';
+$wb['variables_txt'] = 'Proměnné';
 ?>
 
diff --git a/interface/web/admin/lib/lang/cz_language_import.lng b/interface/web/admin/lib/lang/cz_language_import.lng
index 11e42f8..792cd3b 100644
--- a/interface/web/admin/lib/lang/cz_language_import.lng
+++ b/interface/web/admin/lib/lang/cz_language_import.lng
@@ -5,5 +5,6 @@
 $wb['language_overwrite_txt'] = 'Přepsat soubor, pokud existuje.';
 $wb['btn_cancel_txt'] = 'Zpět';
 $wb['ignore_version_txt'] = 'Přeskočit kontrolu verze ISPConfigu.';
+$wb['list_desc_txt'] = 'VAROVÁNÍ: Nepoužívejte import souborů jazyku z nedůvěryhodných zdrojů.';
 ?>
 
diff --git a/interface/web/admin/lib/lang/cz_login_as.lng b/interface/web/admin/lib/lang/cz_login_as.lng
new file mode 100644
index 0000000..0f09d10
--- /dev/null
+++ b/interface/web/admin/lib/lang/cz_login_as.lng
@@ -0,0 +1,12 @@
+<?php
+$wb['login_1_txt'] = 'Chcete se přihlásit jako klient';
+$wb['login_2_txt'] = 'Pokud se přihlásíte jako klient, zpět do sekce Administrátora se vratíte kliknutím na odhlášení klienta.';
+$wb['btn_yes_txt'] = 'Ano, přihlásit se jako klient';
+$wb['btn_back_txt'] = 'Ne, zpět na seznam klientů';
+$wb['udp_port_help_txt'] = 'Odděleny čárkou';
+$wb['active_txt'] = 'Aktivní';
+$wb['firewall_error_unique'] = 'There is already a firewall record for this server.';
+$wb['tcp_ports_error_regex'] = 'Character not allowed in tcp port definition. Allowed characters are numbers, \\":\\" and \\",\\".';
+$wb['udp_ports_error_regex'] = 'Character not allowed in udp port definition. Allowed characters are numbers, \\":\\" and \\",\\".';
+?>
+
diff --git a/interface/web/admin/lib/lang/cz_server_config.lng b/interface/web/admin/lib/lang/cz_server_config.lng
index 8290bec..0d62bb1 100644
--- a/interface/web/admin/lib/lang/cz_server_config.lng
+++ b/interface/web/admin/lib/lang/cz_server_config.lng
@@ -174,7 +174,7 @@
 $wb['rbl_error_regex'] = 'Please specify valid RBL hostnames.';
 $wb['overquota_notify_admin_txt'] = 'Poslat varování o překročení nebo vyčerpání kvót adminovi';
 $wb['overquota_notify_client_txt'] = 'Poslat varování o překročení nebo vyčerpání kvót uživateli';
-$wb['overquota_notify_onok_txt'] = 'Send quota ok message to client';
+$wb['overquota_notify_onok_txt'] = 'Poslat zprávu klientovi, že kvóta je již v pořádku';
 $wb['overquota_notify_freq_txt'] = 'Poslat varování o kvótách každý X dní';
 $wb['overquota_notify_freq_note_txt'] = '0 = poslat zprávu pouze jednou, žádné opakované zprávy';
 $wb['admin_notify_events_txt'] = 'Send email to admin starting with the following level';
@@ -191,5 +191,7 @@
 $wb['munin_password_txt'] = 'Munin Password';
 $wb['munin_url_error_regex'] = 'Invalid Munin URL';
 $wb['munin_url_note_txt'] = 'Placeholder:';
+$wb['backup_dir_is_mount_txt'] = 'Backup directory is a mount?';
+$wb['backup_dir_mount_cmd_txt'] = 'Mount command, if backup directory not mounted';
 ?>
 
diff --git a/interface/web/admin/lib/lang/cz_system_config.lng b/interface/web/admin/lib/lang/cz_system_config.lng
index d3776ab..dc00b8d 100644
--- a/interface/web/admin/lib/lang/cz_system_config.lng
+++ b/interface/web/admin/lib/lang/cz_system_config.lng
@@ -51,8 +51,22 @@
 $wb['mailbox_show_autoresponder_tab_txt'] = 'Show Autoresponder tab in Mailbox detail';
 $wb['mailbox_show_mail_filter_tab_txt'] = 'Show Mail Filter tab in Mailbox detail';
 $wb['mailbox_show_custom_rules_tab_txt'] = 'Show Custom Rules tab in Mailbox detail';
-$wb['webmail_url_error_regex'] = 'Invalid webmail URL';
+$wb['webmail_url_error_regex'] = 'Neplatný webmail URL';
 $wb['phpmyadmin_url_note_txt'] = 'Placeholder:';
 $wb['webmail_url_note_txt'] = 'Placeholder:';
+$wb['available_dashlets_note_txt'] = 'Available Dashlets:';
+$wb['admin_dashlets_left_txt'] = 'Left Admin Dashlets';
+$wb['admin_dashlets_right_txt'] = 'Right Admin Dashlets';
+$wb['reseller_dashlets_left_txt'] = 'Left Reseller Dashlets';
+$wb['reseller_dashlets_right_txt'] = 'Right Reseller Dashlets';
+$wb['client_dashlets_left_txt'] = 'Left Client Dashlets';
+$wb['client_dashlets_right_txt'] = 'Right Client Dashlets';
+$wb['customer_no_template_txt'] = 'Zákaznické číslo - šablona';
+$wb['customer_no_template_error_regex_txt'] = 'Zákaznické číslo šablony obsahuje neplatné znaky';
+$wb['customer_no_start_txt'] = 'Zákaznické číslo - počáteční hodnota';
+$wb['customer_no_counter_txt'] = 'Zákaznické číslo -  čítač';
+$wb['session_timeout_txt'] = 'Časový limit relace (minuty)';
+$wb['session_allow_endless_txt'] = 'Enable \\"stay logged in\\"';
+$wb['No'] = 'Ne';
 ?>
 
diff --git a/interface/web/admin/lib/lang/cz_users.lng b/interface/web/admin/lib/lang/cz_users.lng
index 0324f16..16e6882 100644
--- a/interface/web/admin/lib/lang/cz_users.lng
+++ b/interface/web/admin/lib/lang/cz_users.lng
@@ -30,5 +30,6 @@
 $wb['password_mismatch_txt'] = 'Hesla se neshodují.';
 $wb['password_match_txt'] = 'Hesla se shodují.';
 $wb['username_error_collision'] = 'Uživatelské jméno nesmí být web nebo web a číslo.\\"';
+$wb['client_not_admin_err'] = 'A user that belongs to a client can not be set to type: admin';
 ?>
 
diff --git a/interface/web/client/lib/lang/cz.lng b/interface/web/client/lib/lang/cz.lng
index 38d1ac8..cf86d1c 100644
--- a/interface/web/client/lib/lang/cz.lng
+++ b/interface/web/client/lib/lang/cz.lng
@@ -5,8 +5,8 @@
 $wb['Add Client'] = 'Přidat klienta';
 $wb['Edit Client'] = 'Upravit klienta';
 $wb['Clients'] = 'Klienti';
-$wb['Templates'] = 'Templates';
-$wb['Limit-Templates'] = 'Limit-Templates';
+$wb['Templates'] = 'Šablony';
+$wb['Limit-Templates'] = 'Klientské šablony (Limity)';
 $wb['Add Reseller'] = 'Přidat distributora';
 $wb['Edit Reseller'] = 'Upravit distributora';
 $wb['Resellers'] = 'Distributoři (prodejci)';
diff --git a/interface/web/client/lib/lang/cz_client.lng b/interface/web/client/lib/lang/cz_client.lng
index e0a57d7..8851aa2 100644
--- a/interface/web/client/lib/lang/cz_client.lng
+++ b/interface/web/client/lib/lang/cz_client.lng
@@ -144,5 +144,14 @@
 $wb['limit_aps_txt'] = 'Max. počet APS instalací';
 $wb['limit_aps_error_notint'] = 'Limit pro APS instalace musí být číslo.';
 $wb['default_slave_dnsserver_txt'] = 'Výchozí sekundární DNS server';
+$wb['locked_txt'] = 'Zamčeno (zakáže všechny weby atd.)';
+$wb['canceled_txt'] = 'Zrušeno (zakáže přihlášení klienta)';
+$wb['gender_txt'] = 'Oslovení';
+$wb['gender_m_txt'] = 'Pan';
+$wb['gender_f_txt'] = 'Paní';
+$wb['added_by_txt'] = 'Kdo vytvořil účet';
+$wb['added_date_txt'] = 'Datum vytvoření účtu';
+$wb['parent_client_id_txt'] = 'Přiřazení klienta k distributorovi (prodejci)';
+$wb['none_txt'] = 'none';
 ?>
 
diff --git a/interface/web/client/lib/lang/cz_client_message.lng b/interface/web/client/lib/lang/cz_client_message.lng
index 401908d..72ee184 100644
--- a/interface/web/client/lib/lang/cz_client_message.lng
+++ b/interface/web/client/lib/lang/cz_client_message.lng
@@ -15,5 +15,7 @@
 $wb['all_clients_resellers_txt'] = 'Všichni klienti a distributoři (prodejci)';
 $wb['all_clients_txt'] = 'Všichni klienti';
 $wb['variables_txt'] = 'Výběr (možnosti):';
+$wb['gender_m_txt'] = 'Pan';
+$wb['gender_f_txt'] = 'Paní';
 ?>
 
diff --git a/interface/web/client/lib/lang/cz_client_message_template.lng b/interface/web/client/lib/lang/cz_client_message_template.lng
new file mode 100644
index 0000000..2892f4d
--- /dev/null
+++ b/interface/web/client/lib/lang/cz_client_message_template.lng
@@ -0,0 +1,12 @@
+<?php
+$wb['template_type_txt'] = 'Typ e-mailu';
+$wb['template_name_txt'] = 'Název šablony';
+$wb['subject_txt'] = 'Předmět';
+$wb['message_txt'] = 'Zpráva';
+$wb['Email template'] = 'Šablona e-mailu';
+$wb['Settings'] = 'Nastavení';
+$wb['variables_txt'] = 'Proměnné';
+$wb['variables_description_txt'] = 'Proměnné uživatelské jméno a heslo jsou k dispozici (funkční) jako volba pouze v uvítacím e-mailu.';
+$wb['duplicate_welcome_error'] = 'There can be only one default welcome email template. Please edit the existing template instead of adding a new one.';
+?>
+
diff --git a/interface/web/client/lib/lang/cz_client_message_template_list.lng b/interface/web/client/lib/lang/cz_client_message_template_list.lng
new file mode 100644
index 0000000..f96a284
--- /dev/null
+++ b/interface/web/client/lib/lang/cz_client_message_template_list.lng
@@ -0,0 +1,6 @@
+<?php
+$wb['list_head_txt'] = 'E-mailové šablony';
+$wb['template_type_txt'] = 'Zpráva pro';
+$wb['template_name_txt'] = 'Název šablony';
+?>
+
diff --git a/interface/web/client/lib/lang/cz_client_template.lng b/interface/web/client/lib/lang/cz_client_template.lng
index 22c5301..20f031e 100644
--- a/interface/web/client/lib/lang/cz_client_template.lng
+++ b/interface/web/client/lib/lang/cz_client_template.lng
@@ -87,5 +87,7 @@
 $wb['aps_limits_txt'] = 'APS limity instalátoru';
 $wb['limit_aps_txt'] = 'Max. počet APS instalací';
 $wb['limit_aps_error_notint'] = 'Limit pro APS instalace musí být číslo.';
+$wb['limit_domainmodule_txt'] = 'Domainmodule Limit';
+$wb['client_limits_txt'] = 'Klientské limity';
 ?>
 
diff --git a/interface/web/client/lib/lang/cz_reseller.lng b/interface/web/client/lib/lang/cz_reseller.lng
index 3ba47ac..3ff3e69 100644
--- a/interface/web/client/lib/lang/cz_reseller.lng
+++ b/interface/web/client/lib/lang/cz_reseller.lng
@@ -143,5 +143,20 @@
 $wb['limit_aps_txt'] = 'Max. počet APS instalací';
 $wb['limit_aps_error_notint'] = 'Limit pro APS instalace musí být číslo.';
 $wb['default_slave_dnsserver_txt'] = 'Výchozí sekundární DNS server';
+$wb['locked_txt'] = 'Zamčený účet';
+$wb['canceled_txt'] = 'Zrušený účet';
+$wb['gender_m_txt'] = 'Pan';
+$wb['gender_f_txt'] = 'Paní';
+$wb['gender_txt'] = 'Oslovení';
+$wb['customer_no_template_txt'] = 'Zákaznické číslo - šablona';
+$wb['customer_no_template_error_regex_txt'] = 'Zákaznické číslo šablony obsahuje neplatné znaky';
+$wb['customer_no_start_txt'] = 'Zákaznické číslo - počáteční hodnota';
+$wb['customer_no_counter_txt'] = 'Zákaznické číslo -  čítač';
+$wb['added_by_txt'] = 'Kdo vytvořil účet';
+$wb['added_date_txt'] = 'Datum vytvoření účtu';
+$wb['limit_domainmodule_error_notint'] = 'Domainmodule limit must be a number.';
+$wb['limit_domainmodule_txt'] = 'Domainmodule Limit';
+$wb['client_limits_txt'] = 'Klientské limity';
+$wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than \\"custom\\" is selected.';
 ?>
 
diff --git a/interface/web/dashboard/lib/lang/cz_dashlet_mailquota.lng b/interface/web/dashboard/lib/lang/cz_dashlet_mailquota.lng
index db6450a..19dc161 100644
--- a/interface/web/dashboard/lib/lang/cz_dashlet_mailquota.lng
+++ b/interface/web/dashboard/lib/lang/cz_dashlet_mailquota.lng
@@ -1,5 +1,5 @@
 <?php
-$wb['mailquota_txt'] = 'Kvóta e-mailové schránky';
+$wb['mailquota_txt'] = 'Kvóty e-mailových schránek';
 $wb['email_txt'] = 'E-mailové adresy';
 $wb['name_txt'] = 'Jméno';
 $wb['used_txt'] = 'Využité místo';
diff --git a/interface/web/designer/lib/lang/cz_module_nav_item_edit.lng b/interface/web/designer/lib/lang/cz_module_nav_item_edit.lng
index 39aaae8..0d0d972 100644
--- a/interface/web/designer/lib/lang/cz_module_nav_item_edit.lng
+++ b/interface/web/designer/lib/lang/cz_module_nav_item_edit.lng
@@ -1,5 +1,5 @@
 <?php
-$wb['title_txt'] = 'Title';
+$wb['title_txt'] = 'Oslovení';
 $wb['target_txt'] = 'Cíl';
 $wb['link_txt'] = 'Link';
 $wb['header_txt'] = 'Navi properties';
diff --git a/interface/web/designer/lib/lang/cz_module_show.lng b/interface/web/designer/lib/lang/cz_module_show.lng
index 78fdd9c..160d501 100644
--- a/interface/web/designer/lib/lang/cz_module_show.lng
+++ b/interface/web/designer/lib/lang/cz_module_show.lng
@@ -1,6 +1,6 @@
 <?php
 $wb['header_txt'] = 'Menu editor';
-$wb['title_txt'] = 'Title';
+$wb['title_txt'] = 'Oslovení';
 $wb['name_txt'] = 'Module';
 $wb['delete_txt'] = 'Smazat';
 $wb['properties_txt'] = 'Properties';
diff --git a/interface/web/dns/lib/lang/cz_dns_a.lng b/interface/web/dns/lib/lang/cz_dns_a.lng
index 4631836..d059725 100644
--- a/interface/web/dns/lib/lang/cz_dns_a.lng
+++ b/interface/web/dns/lib/lang/cz_dns_a.lng
@@ -13,5 +13,6 @@
 $wb['data_error_empty'] = 'IP adresa je prázdná';
 $wb['data_error_regex'] = 'IP adresa má chybný formát';
 $wb['data_error_duplicate'] = 'Duplikace A záznamu';
+$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.';
 ?>
 
diff --git a/interface/web/dns/lib/lang/cz_dns_aaaa.lng b/interface/web/dns/lib/lang/cz_dns_aaaa.lng
index 1936207..bff6a41 100644
--- a/interface/web/dns/lib/lang/cz_dns_aaaa.lng
+++ b/interface/web/dns/lib/lang/cz_dns_aaaa.lng
@@ -12,5 +12,6 @@
 $wb['name_error_regex'] = 'Hostname má chybný formát.';
 $wb['data_error_empty'] = 'IP adresa je prázdná';
 $wb['data_error_regex'] = 'IP adresa má chybný formát';
+$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.';
 ?>
 
diff --git a/interface/web/dns/lib/lang/cz_dns_alias.lng b/interface/web/dns/lib/lang/cz_dns_alias.lng
index a32def2..d9d0d83 100644
--- a/interface/web/dns/lib/lang/cz_dns_alias.lng
+++ b/interface/web/dns/lib/lang/cz_dns_alias.lng
@@ -12,5 +12,6 @@
 $wb['name_error_regex'] = 'Hostname má chybný formát.';
 $wb['data_error_empty'] = 'Cílový Hostname je prázdný';
 $wb['data_error_regex'] = 'Cílový Hostname má chybný formát';
+$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.';
 ?>
 
diff --git a/interface/web/dns/lib/lang/cz_dns_cname.lng b/interface/web/dns/lib/lang/cz_dns_cname.lng
index 3a7299a..4580376 100644
--- a/interface/web/dns/lib/lang/cz_dns_cname.lng
+++ b/interface/web/dns/lib/lang/cz_dns_cname.lng
@@ -13,5 +13,6 @@
 $wb['data_error_empty'] = 'Cílový hostname je prázdný';
 $wb['data_error_regex'] = 'Cílový hostname má chybný formát';
 $wb['data_error_duplicate'] = 'Duplikace A záznamu nebo CNAME-záznamu';
+$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.';
 ?>
 
diff --git a/interface/web/dns/lib/lang/cz_dns_hinfo.lng b/interface/web/dns/lib/lang/cz_dns_hinfo.lng
index 636600b..8d0b565 100644
--- a/interface/web/dns/lib/lang/cz_dns_hinfo.lng
+++ b/interface/web/dns/lib/lang/cz_dns_hinfo.lng
@@ -12,5 +12,6 @@
 $wb['name_error_regex'] = 'Hostname má chybný formát.';
 $wb['data_error_empty'] = 'Informace o hostovi je prázdná';
 $wb['data_error_regex'] = 'Informace o hostovi má chybný formát';
+$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.';
 ?>
 
diff --git a/interface/web/dns/lib/lang/cz_dns_mx.lng b/interface/web/dns/lib/lang/cz_dns_mx.lng
index 49c98ea..cae3eb9 100644
--- a/interface/web/dns/lib/lang/cz_dns_mx.lng
+++ b/interface/web/dns/lib/lang/cz_dns_mx.lng
@@ -14,5 +14,6 @@
 $wb['data_error_empty'] = 'Hostname e-mailového serveru je prázdný';
 $wb['data_error_regex'] = 'Hostname e-mailového serveru má chybný formát';
 $wb['duplicate_mx_record_txt'] = 'Duplicitní MX záznam.';
+$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.';
 ?>
 
diff --git a/interface/web/dns/lib/lang/cz_dns_ns.lng b/interface/web/dns/lib/lang/cz_dns_ns.lng
index 73f897b..55b35aa 100644
--- a/interface/web/dns/lib/lang/cz_dns_ns.lng
+++ b/interface/web/dns/lib/lang/cz_dns_ns.lng
@@ -12,5 +12,6 @@
 $wb['name_error_regex'] = 'Zóna má chybný formát.';
 $wb['data_error_empty'] = 'Jmenný server je prázdný';
 $wb['data_error_regex'] = 'Jmenný server má chybný formát';
+$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.';
 ?>
 
diff --git a/interface/web/dns/lib/lang/cz_dns_ptr.lng b/interface/web/dns/lib/lang/cz_dns_ptr.lng
index 6124f30..c536559 100644
--- a/interface/web/dns/lib/lang/cz_dns_ptr.lng
+++ b/interface/web/dns/lib/lang/cz_dns_ptr.lng
@@ -12,5 +12,6 @@
 $wb['name_error_regex'] = 'Název má chybný formát.';
 $wb['data_error_empty'] = 'Kanonický hostname je prázdný';
 $wb['data_error_regex'] = 'Kanonického hostname má chybný formát';
+$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.';
 ?>
 
diff --git a/interface/web/dns/lib/lang/cz_dns_rp.lng b/interface/web/dns/lib/lang/cz_dns_rp.lng
index 10218a7..8cdb653 100644
--- a/interface/web/dns/lib/lang/cz_dns_rp.lng
+++ b/interface/web/dns/lib/lang/cz_dns_rp.lng
@@ -12,5 +12,6 @@
 $wb['name_error_regex'] = 'Hostname má chybný formát.';
 $wb['data_error_empty'] = 'Odpovědná osoba je prázdná';
 $wb['data_error_regex'] = 'Odpovědná osoba má chybný formát';
+$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.';
 ?>
 
diff --git a/interface/web/dns/lib/lang/cz_dns_srv.lng b/interface/web/dns/lib/lang/cz_dns_srv.lng
index 88b1fc1..81692b6 100644
--- a/interface/web/dns/lib/lang/cz_dns_srv.lng
+++ b/interface/web/dns/lib/lang/cz_dns_srv.lng
@@ -16,5 +16,6 @@
 $wb['data_error_regex'] = 'Záznam serveru má chybný formát';
 $wb['srv_error_regex'] = 'Neplatný formát záznamu serveru. Záznam serveru musí­ obsahovat 3 textové řetězce oddělené mezerami.';
 $wb['aux_txt'] = 'Priority';
+$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.';
 ?>
 
diff --git a/interface/web/dns/lib/lang/cz_dns_txt.lng b/interface/web/dns/lib/lang/cz_dns_txt.lng
index 0c07487..faf3181 100644
--- a/interface/web/dns/lib/lang/cz_dns_txt.lng
+++ b/interface/web/dns/lib/lang/cz_dns_txt.lng
@@ -12,5 +12,6 @@
 $wb['name_error_regex'] = 'Hostname má chybný formát.';
 $wb['data_error_empty'] = 'Text je prázdný';
 $wb['data_error_regex'] = 'Text má chybný formát';
+$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.';
 ?>
 
diff --git a/interface/web/help/lib/lang/cz.lng b/interface/web/help/lib/lang/cz.lng
index 95efe02..a4f7351 100644
--- a/interface/web/help/lib/lang/cz.lng
+++ b/interface/web/help/lib/lang/cz.lng
@@ -7,7 +7,7 @@
 $wb['About ISPConfig'] = 'O ISPConfigu';
 $wb['Version'] = 'Verze';
 $wb['Frequently Asked Questions'] = 'Často kladené dotazy';
-$wb['FAQ Sections'] = 'Sekce FAQ';
+$wb['FAQ Sections'] = 'Sekce FAQ - Často kladené dotazy';
 $wb['Manage Sections'] = 'Spravovat sekce';
 $wb['Manage Questions'] = 'Spravovat dotazy';
 $wb['Add a Question & Answer Pair'] = 'Přidat otázku a odpověď';
diff --git a/interface/web/help/lib/lang/cz_help_faq_sections_list.lng b/interface/web/help/lib/lang/cz_help_faq_sections_list.lng
index 596a9ef..3ddc231 100644
--- a/interface/web/help/lib/lang/cz_help_faq_sections_list.lng
+++ b/interface/web/help/lib/lang/cz_help_faq_sections_list.lng
@@ -3,7 +3,7 @@
 $wb['faq_delete_txt'] = 'Smazat';
 $wb['faq_edit_txt'] = 'Upravit';
 $wb['faq_sections_txt'] = 'Sekce';
-$wb['faq_faq_sections_txt'] = 'Sekce FAQ';
+$wb['faq_faq_sections_txt'] = 'Sekce FAQ - Často kladené dotazy';
 $wb['faq_new_section_txt'] = 'Přidat novou sekci';
 ?>
 
diff --git a/interface/web/login/lib/lang/cz.lng b/interface/web/login/lib/lang/cz.lng
index 4ce9a3b..2d19673 100644
--- a/interface/web/login/lib/lang/cz.lng
+++ b/interface/web/login/lib/lang/cz.lng
@@ -21,6 +21,8 @@
 $wb['pw_button_txt'] = 'Znovu odeslat heslo';
 $wb['email_txt'] = 'E-mail';
 $wb['theme_not_compatible'] = 'Zvolené téma není kompatibilní s aktuální verzí ISPConfig. Zkontrolujte prosím, zda není nová verze tématu.<br />Výchozí motiv byl aktivován automaticky.';
-$wb['back_txt'] = 'Back';
+$wb['back_txt'] = 'Zpět';
+$wb['email_error'] = 'E-mail obsahuje nepovolené znaky nebo má neplatný formát.';
+$wb['stay_logged_in_txt'] = 'Zapamatovat si přihlášení';
 ?>
 
diff --git a/interface/web/mail/lib/lang/cz.lng b/interface/web/mail/lib/lang/cz.lng
index c4b386b..8e9eb34 100644
--- a/interface/web/mail/lib/lang/cz.lng
+++ b/interface/web/mail/lib/lang/cz.lng
@@ -1,16 +1,16 @@
 <?php
-$wb['Email Alias'] = 'E-mailový alias';
+$wb['Email Alias'] = 'E-mailové aliasy';
 $wb['Email Blacklist'] = 'Email černá listina';
 $wb['Blacklist'] = 'Černá listina';
 $wb['Mail Content Filter'] = 'Obsahový filtr';
 $wb['Filter'] = 'Filtr';
 $wb['Mail Domain'] = 'Doména e-mailů';
-$wb['Domain'] = 'Domény';
-$wb['Email Catchall'] = 'E-mailový koš';
+$wb['Domain'] = 'E-mailové domény';
+$wb['Email Catchall'] = 'E-mailové koše';
 $wb['Email Forward'] = 'Přesměrování e-mailů';
 $wb['Get Email'] = 'Získat externí e-maily';
 $wb['Spamfilter'] = 'Spamový filtr';
-$wb['Email Routing'] = 'Směrování';
+$wb['Email Routing'] = 'Pokročilé e-mailové směrování';
 $wb['Email transport'] = 'Transport';
 $wb['Mailbox'] = 'Mailbox';
 $wb['Autoresponder'] = 'Automatická odpověď';
@@ -32,7 +32,7 @@
 $wb['Spamfilter Whitelist'] = 'Spamový filtr bílá listina';
 $wb['Email'] = 'E-mail';
 $wb['Email Mailbox'] = 'E-mailové schránky';
-$wb['Email Accounts'] = 'E-mail účty';
+$wb['Email Accounts'] = 'E-mailové účty';
 $wb['User / Domain'] = 'Uživatel / Doména';
 $wb['Server Settings'] = 'Nastavení serveru';
 $wb['Fetchmail'] = 'Externí získávání e-mailů';
@@ -41,9 +41,9 @@
 $wb['Postfix Blacklist'] = 'Postfix černá listina';
 $wb['Content Filter'] = 'Obsahový filtr';
 $wb['Global Filters'] = 'Globální filtry';
-$wb['Domain Alias'] = 'Alias domény';
+$wb['Domain Alias'] = 'Aliasy e-mailových domén';
 $wb['Relay Recipients'] = 'Relay adresáti';
 $wb['Statistics'] = 'Statistiky';
-$wb['Mailbox quota'] = 'Kvóta e-mailové schránky';
+$wb['Mailbox quota'] = 'Kvóty pro e-mailové schránky';
 ?>
 
diff --git a/interface/web/mail/lib/lang/cz_mail_alias_list.lng b/interface/web/mail/lib/lang/cz_mail_alias_list.lng
index db4fb4f..cb1c039 100644
--- a/interface/web/mail/lib/lang/cz_mail_alias_list.lng
+++ b/interface/web/mail/lib/lang/cz_mail_alias_list.lng
@@ -1,5 +1,5 @@
 <?php
-$wb['list_head_txt'] = 'E-mailový alias';
+$wb['list_head_txt'] = 'E-mailové aliasy';
 $wb['active_txt'] = 'Aktivní';
 $wb['source_txt'] = 'Zdroj';
 $wb['destination_txt'] = 'Cíl';
diff --git a/interface/web/mail/lib/lang/cz_mail_aliasdomain_list.lng b/interface/web/mail/lib/lang/cz_mail_aliasdomain_list.lng
index 155a87a..ec973d1 100644
--- a/interface/web/mail/lib/lang/cz_mail_aliasdomain_list.lng
+++ b/interface/web/mail/lib/lang/cz_mail_aliasdomain_list.lng
@@ -1,5 +1,5 @@
 <?php
-$wb['list_head_txt'] = 'Doménový alias';
+$wb['list_head_txt'] = 'Aliasy e-mailových domén';
 $wb['active_txt'] = 'Aktivní';
 $wb['source_txt'] = 'Zdroj';
 $wb['destination_txt'] = 'Cíl';
diff --git a/interface/web/mail/lib/lang/cz_mail_blacklist_list.lng b/interface/web/mail/lib/lang/cz_mail_blacklist_list.lng
index ba76a7e..612bf28 100644
--- a/interface/web/mail/lib/lang/cz_mail_blacklist_list.lng
+++ b/interface/web/mail/lib/lang/cz_mail_blacklist_list.lng
@@ -1,5 +1,5 @@
 <?php
-$wb['list_head_txt'] = 'E-mail černá listina';
+$wb['list_head_txt'] = 'E-mailová černá listina';
 $wb['active_txt'] = 'Aktivní';
 $wb['server_id_txt'] = 'Server';
 $wb['source_txt'] = 'Adresy na černé listině';
diff --git a/interface/web/mail/lib/lang/cz_mail_domain_admin_list.lng b/interface/web/mail/lib/lang/cz_mail_domain_admin_list.lng
index 8277ec4..26fc430 100644
--- a/interface/web/mail/lib/lang/cz_mail_domain_admin_list.lng
+++ b/interface/web/mail/lib/lang/cz_mail_domain_admin_list.lng
@@ -1,5 +1,5 @@
 <?php
-$wb['list_head_txt'] = 'E-mail doména';
+$wb['list_head_txt'] = 'E-mailové domény';
 $wb['server_id_txt'] = 'Server';
 $wb['domain_txt'] = 'Doména';
 $wb['add_new_record_txt'] = 'Přidat doménu';
diff --git a/interface/web/mail/lib/lang/cz_mail_domain_catchall_list.lng b/interface/web/mail/lib/lang/cz_mail_domain_catchall_list.lng
index 7fd14a7..28b5613 100644
--- a/interface/web/mail/lib/lang/cz_mail_domain_catchall_list.lng
+++ b/interface/web/mail/lib/lang/cz_mail_domain_catchall_list.lng
@@ -1,5 +1,5 @@
 <?php
-$wb['list_head_txt'] = 'E-mailový koš';
+$wb['list_head_txt'] = 'E-mailové koše';
 $wb['active_txt'] = 'Aktivní';
 $wb['source_txt'] = 'Zdroj';
 $wb['destination_txt'] = 'Cílová e-mailová adresa';
diff --git a/interface/web/mail/lib/lang/cz_mail_transport_list.lng b/interface/web/mail/lib/lang/cz_mail_transport_list.lng
index 584e329..3442e88 100644
--- a/interface/web/mail/lib/lang/cz_mail_transport_list.lng
+++ b/interface/web/mail/lib/lang/cz_mail_transport_list.lng
@@ -1,5 +1,5 @@
 <?php
-$wb['list_head_txt'] = 'Pokročilé e-mail směrování';
+$wb['list_head_txt'] = 'Pokročilé e-mailové směrování';
 $wb['active_txt'] = 'Aktivní';
 $wb['server_id_txt'] = 'Server';
 $wb['domain_txt'] = 'Doména';
diff --git a/interface/web/mail/lib/lang/cz_mail_user.lng b/interface/web/mail/lib/lang/cz_mail_user.lng
index af5518d..7552fa4 100644
--- a/interface/web/mail/lib/lang/cz_mail_user.lng
+++ b/interface/web/mail/lib/lang/cz_mail_user.lng
@@ -29,7 +29,7 @@
 $wb['disablepop3_txt'] = 'Zakázat POP3';
 $wb['duplicate_alias_or_forward_txt'] = 'Alias nebo přesměrování s touto adresou již existuje.';
 $wb['quota_error_value'] = 'Chybná hodnota kvóty. Povolené hodnoty jsou: 0 pro neomezeno nebo čísla > 1';
-$wb['move_junk_txt'] = 'Přesunout spamové emaily do adresáře Junk';
+$wb['move_junk_txt'] = 'Přesunout e-maily detekované jako spam do adresáře Junk';
 $wb['name_txt'] = 'Skutečné jméno';
 $wb['name_optional_txt'] = '(volitelné)';
 $wb['autoresponder_active'] = 'Povolit automatický odpovídač';
@@ -53,5 +53,7 @@
 $wb['daily_backup_txt'] = 'Daily';
 $wb['weekly_backup_txt'] = 'Weekly';
 $wb['monthly_backup_txt'] = 'Monthly';
+$wb['email_error_isascii'] = 'Please do not use special unicode characters for your password. This could lead to problems with your mail client.';
+$wb['cc_note_txt'] = '(Při přeposílání na více e-mailových adres, oddělte čárkami.)';
 ?>
 
diff --git a/interface/web/mail/lib/lang/cz_spamfilter_blacklist.lng b/interface/web/mail/lib/lang/cz_spamfilter_blacklist.lng
index 2b92908..a9078b5 100644
--- a/interface/web/mail/lib/lang/cz_spamfilter_blacklist.lng
+++ b/interface/web/mail/lib/lang/cz_spamfilter_blacklist.lng
@@ -6,5 +6,8 @@
 $wb['priority_txt'] = 'Priorita';
 $wb['active_txt'] = 'Aktivní';
 $wb['limit_spamfilter_wblist_txt'] = 'Dosažen maximální počet záznamů pro bílou / černou listinu pro Váš účet.';
+$wb['10 - highest'] = '10 - highest';
+$wb['5 - medium'] = '5 - medium';
+$wb['1 - lowest'] = '1 - lowest';
 ?>
 
diff --git a/interface/web/mail/lib/lang/cz_spamfilter_users.lng b/interface/web/mail/lib/lang/cz_spamfilter_users.lng
index 40c0101..055b29b 100644
--- a/interface/web/mail/lib/lang/cz_spamfilter_users.lng
+++ b/interface/web/mail/lib/lang/cz_spamfilter_users.lng
@@ -7,5 +7,8 @@
 $wb['local_txt'] = 'Lokální';
 $wb['email_error_notempty'] = 'E-mailová adresa nesmí být prázdná.';
 $wb['fullname_error_notempty'] = 'Jméno nesmí být prázdné.';
+$wb['10 - highest'] = '10 - highest';
+$wb['5 - medium'] = '5 - medium';
+$wb['1 - lowest'] = '1 - lowest';
 ?>
 
diff --git a/interface/web/mail/lib/lang/cz_spamfilter_whitelist.lng b/interface/web/mail/lib/lang/cz_spamfilter_whitelist.lng
index 2b92908..a9078b5 100644
--- a/interface/web/mail/lib/lang/cz_spamfilter_whitelist.lng
+++ b/interface/web/mail/lib/lang/cz_spamfilter_whitelist.lng
@@ -6,5 +6,8 @@
 $wb['priority_txt'] = 'Priorita';
 $wb['active_txt'] = 'Aktivní';
 $wb['limit_spamfilter_wblist_txt'] = 'Dosažen maximální počet záznamů pro bílou / černou listinu pro Váš účet.';
+$wb['10 - highest'] = '10 - highest';
+$wb['5 - medium'] = '5 - medium';
+$wb['1 - lowest'] = '1 - lowest';
 ?>
 
diff --git a/interface/web/mail/lib/lang/cz_user_quota_stats_list.lng b/interface/web/mail/lib/lang/cz_user_quota_stats_list.lng
index d53237f..2c99357 100755
--- a/interface/web/mail/lib/lang/cz_user_quota_stats_list.lng
+++ b/interface/web/mail/lib/lang/cz_user_quota_stats_list.lng
@@ -1,5 +1,5 @@
 <?php
-$wb['list_head_txt'] = 'Kvóta e-mailové schránky';
+$wb['list_head_txt'] = 'Kvóty pro e-mailové schránky';
 $wb['quota_txt'] = 'Kvóta';
 $wb['name_txt'] = 'Jméno';
 $wb['email_txt'] = 'E-mailová adresa';
diff --git a/interface/web/mailuser/lib/lang/cz_mail_user_cc.lng b/interface/web/mailuser/lib/lang/cz_mail_user_cc.lng
index ef00aa2..adc49f1 100644
--- a/interface/web/mailuser/lib/lang/cz_mail_user_cc.lng
+++ b/interface/web/mailuser/lib/lang/cz_mail_user_cc.lng
@@ -4,5 +4,7 @@
 $wb['email_txt'] = 'E-mail';
 $wb['cc_error_isemail'] = 'Vyplněná e-mailová adresa neplatná';
 $wb['email_is_cc_error'] = 'Vyplněná e-mailová adresa a poslat kopii na e-mail adresu, nemůžou být stejné.';
+$wb['name_optional_txt'] = '(Volitelné)';
+$wb['cc_note_txt'] = '(Při přeposílání na více e-mailových adres, oddělte čárkami.)';
 ?>
 
diff --git a/interface/web/sites/database_edit.php b/interface/web/sites/database_edit.php
index 1fe0842..58cb0a6 100644
--- a/interface/web/sites/database_edit.php
+++ b/interface/web/sites/database_edit.php
@@ -485,7 +485,7 @@
 
 			//* The Database user shall be owned by the same group then the website
 			$sys_groupid = $app->functions->intval($web['sys_groupid']);
-			$backup_interval = $app->functions->intval($web['backup_interval']);
+			$backup_interval = $app->db->quote($web['backup_interval']);
 			$backup_copies = $app->functions->intval($web['backup_copies']);
 
 			$sql = "UPDATE web_database SET sys_groupid = '$sys_groupid', backup_interval = '$backup_interval', backup_copies = '$backup_copies' WHERE database_id = ".$this->id;
@@ -501,7 +501,7 @@
 
 			//* The Database user shall be owned by the same group then the website
 			$sys_groupid = $app->functions->intval($web['sys_groupid']);
-			$backup_interval = $app->functions->intval($web['backup_interval']);
+			$backup_interval = $app->db->quote($web['backup_interval']);
 			$backup_copies = $app->functions->intval($web['backup_copies']);
 
 			$sql = "UPDATE web_database SET sys_groupid = '$sys_groupid', backup_interval = '$backup_interval', backup_copies = '$backup_copies' WHERE database_id = ".$this->id;
diff --git a/interface/web/sites/lib/lang/cz.lng b/interface/web/sites/lib/lang/cz.lng
index 3a37df3..21112cd 100644
--- a/interface/web/sites/lib/lang/cz.lng
+++ b/interface/web/sites/lib/lang/cz.lng
@@ -1,10 +1,10 @@
 <?php
-$wb['Websites'] = 'Webová stránka';
-$wb['Website'] = 'Webová stránka';
-$wb['Subdomain'] = 'Subdoména pro webovou stránku';
-$wb['Aliasdomain'] = 'Alias doména pro webovou stránku';
+$wb['Websites'] = 'Webové stránky';
+$wb['Website'] = 'Webové stránky';
+$wb['Subdomain'] = 'Subdomény pro webové stránky';
+$wb['Aliasdomain'] = 'Alias domény pro webové stránky';
 $wb['Database'] = 'Databáze';
-$wb['Web Access'] = 'Webový přístup';
+$wb['Web Access'] = 'Webové přístupy';
 $wb['FTP-User'] = 'FTP uživatelé';
 $wb['Webdav-User'] = 'WebDAV uživatelé';
 $wb['Folder'] = 'Chráněné adresáře heslem';
@@ -14,7 +14,7 @@
 $wb['Cron Jobs'] = 'Cron úlohy';
 $wb['Statistics'] = 'Statistiky';
 $wb['Web traffic'] = 'Přenesená data';
-$wb['Website quota (Harddisk)'] = 'Webová kvóta (místo na disku)';
+$wb['Website quota (Harddisk)'] = 'Webové kvóty (místo na disku)';
 $wb['Cron'] = 'Cron';
 $wb['Stats'] = 'Statistiky';
 $wb['Shell'] = 'Shell';
diff --git a/interface/web/sites/lib/lang/cz_cron.lng b/interface/web/sites/lib/lang/cz_cron.lng
index 9e23b5a..9a22948 100644
--- a/interface/web/sites/lib/lang/cz_cron.lng
+++ b/interface/web/sites/lib/lang/cz_cron.lng
@@ -18,5 +18,6 @@
 $wb['run_wday_error_format'] = 'Chybný formát pro dny týdne.';
 $wb['command_error_format'] = 'Chybná formát příkazu. V případě URL je povoleno volání pouze http/https.';
 $wb['unknown_fieldtype_error'] = 'Bylo použito pole neznámého typu.';
+$wb['server_id_error_empty'] = 'ID serveru je prázdné.';
 ?>
 
diff --git a/interface/web/sites/lib/lang/cz_database_admin_list.lng b/interface/web/sites/lib/lang/cz_database_admin_list.lng
index f9aa557..e6c04f3 100644
--- a/interface/web/sites/lib/lang/cz_database_admin_list.lng
+++ b/interface/web/sites/lib/lang/cz_database_admin_list.lng
@@ -7,6 +7,6 @@
 $wb['database_name_txt'] = 'Jméno databáze';
 $wb['add_new_record_txt'] = 'Přidat nové databáze';
 $wb['sys_groupid_txt'] = 'Klient';
-$wb['parent_domain_id_txt'] = 'webová stránka';
+$wb['parent_domain_id_txt'] = 'Webové stránky';
 ?>
 
diff --git a/interface/web/sites/lib/lang/cz_database_list.lng b/interface/web/sites/lib/lang/cz_database_list.lng
index f76bcf0..62bfe77 100644
--- a/interface/web/sites/lib/lang/cz_database_list.lng
+++ b/interface/web/sites/lib/lang/cz_database_list.lng
@@ -6,6 +6,6 @@
 $wb['database_user_txt'] = 'Uživatel databáze';
 $wb['database_name_txt'] = 'Název databáze';
 $wb['add_new_record_txt'] = 'Přidat databázi';
-$wb['parent_domain_id_txt'] = 'Webová stránka';
+$wb['parent_domain_id_txt'] = 'Webové stránky';
 ?>
 
diff --git a/interface/web/sites/lib/lang/cz_database_user_admin_list.lng b/interface/web/sites/lib/lang/cz_database_user_admin_list.lng
index 127be4f..4027225 100644
--- a/interface/web/sites/lib/lang/cz_database_user_admin_list.lng
+++ b/interface/web/sites/lib/lang/cz_database_user_admin_list.lng
@@ -1,5 +1,5 @@
 <?php
-$wb['list_head_txt'] = 'Uživatel databáze';
+$wb['list_head_txt'] = 'Uživatelé databáze';
 $wb['database_user_txt'] = 'Uživatel databáze';
 $wb['add_new_record_txt'] = 'Vytvořit nového uživatele databáze';
 $wb['sys_groupid_txt'] = 'Klient';
diff --git a/interface/web/sites/lib/lang/cz_ftp_user.lng b/interface/web/sites/lib/lang/cz_ftp_user.lng
index 494ecda..619cbad 100644
--- a/interface/web/sites/lib/lang/cz_ftp_user.lng
+++ b/interface/web/sites/lib/lang/cz_ftp_user.lng
@@ -9,7 +9,7 @@
 $wb['ul_bandwidth_txt'] = 'Upload šířka pásma';
 $wb['dl_bandwidth_txt'] = 'Download šířka pásma';
 $wb['server_id_txt'] = 'Server';
-$wb['parent_domain_id_txt'] = 'Webová stránka';
+$wb['parent_domain_id_txt'] = 'Webové stránky';
 $wb['username_txt'] = 'Uživatelské jméno';
 $wb['password_txt'] = 'Heslo';
 $wb['password_strength_txt'] = 'Bezpečnost hesla';
diff --git a/interface/web/sites/lib/lang/cz_ftp_user_list.lng b/interface/web/sites/lib/lang/cz_ftp_user_list.lng
index 965e1c7..b23e8d0 100644
--- a/interface/web/sites/lib/lang/cz_ftp_user_list.lng
+++ b/interface/web/sites/lib/lang/cz_ftp_user_list.lng
@@ -1,8 +1,8 @@
 <?php
-$wb['list_head_txt'] = 'FTP uživatel';
+$wb['list_head_txt'] = 'FTP uživatelé';
 $wb['active_txt'] = 'Aktivní';
 $wb['server_id_txt'] = 'Server';
-$wb['parent_domain_id_txt'] = 'Webová stránka';
+$wb['parent_domain_id_txt'] = 'Webové stránky';
 $wb['username_txt'] = 'Uživatelské jméno';
 $wb['add_new_record_txt'] = 'Přidat FTP uživatele';
 ?>
diff --git a/interface/web/sites/lib/lang/cz_shell_user.lng b/interface/web/sites/lib/lang/cz_shell_user.lng
index 09377da..d7fc009 100644
--- a/interface/web/sites/lib/lang/cz_shell_user.lng
+++ b/interface/web/sites/lib/lang/cz_shell_user.lng
@@ -2,7 +2,7 @@
 $wb['shell_txt'] = 'Shell';
 $wb['dir_txt'] = 'Adresář';
 $wb['server_id_txt'] = 'Server';
-$wb['parent_domain_id_txt'] = 'Webová stránka';
+$wb['parent_domain_id_txt'] = 'Webové stránky';
 $wb['username_txt'] = 'Uživatelské jméno';
 $wb['password_txt'] = 'Heslo';
 $wb['password_strength_txt'] = 'Bezpečnost hesla';
diff --git a/interface/web/sites/lib/lang/cz_shell_user_list.lng b/interface/web/sites/lib/lang/cz_shell_user_list.lng
index cdc729c..5f2b5f5 100644
--- a/interface/web/sites/lib/lang/cz_shell_user_list.lng
+++ b/interface/web/sites/lib/lang/cz_shell_user_list.lng
@@ -1,5 +1,5 @@
 <?php
-$wb['list_head_txt'] = 'Shell uživatel';
+$wb['list_head_txt'] = 'Shell uživatelé';
 $wb['active_txt'] = 'Aktivní';
 $wb['server_id_txt'] = 'Server';
 $wb['parent_domain_id_txt'] = 'Stránka';
diff --git a/interface/web/sites/lib/lang/cz_user_quota_stats_list.lng b/interface/web/sites/lib/lang/cz_user_quota_stats_list.lng
index efb766b..f7c3b1f 100644
--- a/interface/web/sites/lib/lang/cz_user_quota_stats_list.lng
+++ b/interface/web/sites/lib/lang/cz_user_quota_stats_list.lng
@@ -1,5 +1,5 @@
 <?php
-$wb['list_head_txt'] = 'Disková kvóta';
+$wb['list_head_txt'] = 'Webové kvóty (místo na disku)';
 $wb['domain_txt'] = 'Doména / Webová stránka';
 $wb['system_user_txt'] = 'Linuxový uživatel';
 $wb['used_txt'] = 'Využité místo';
diff --git a/interface/web/sites/lib/lang/cz_web_childdomain.lng b/interface/web/sites/lib/lang/cz_web_childdomain.lng
index e91309f..9ba73cc 100644
--- a/interface/web/sites/lib/lang/cz_web_childdomain.lng
+++ b/interface/web/sites/lib/lang/cz_web_childdomain.lng
@@ -1,17 +1,22 @@
 <?php
-$wb['ssl_state_txt'] = 'Stát';
-$wb['ssl_locality_txt'] = 'Lokalita';
-$wb['ssl_organisation_txt'] = 'Organizace';
-$wb['ssl_organisation_unit_txt'] = 'Organizační jednotka';
-$wb['ssl_country_txt'] = 'Země';
-$wb['ssl_request_txt'] = 'SSL požadavek';
-$wb['ssl_cert_txt'] = 'SSL certifikát';
-$wb['ssl_bundle_txt'] = 'SSL bundle';
-$wb['ssl_action_txt'] = 'SSL akce';
+$wb['domain_txt'] = 'Alias domény pro webové stránky';
+$wb['backup_interval_txt'] = 'Interval zálohování';
+$wb['backup_copies_txt'] = 'Počet kopií zálohy';
+$wb['ssl_state_txt'] = 'State';
+$wb['ssl_locality_txt'] = 'Locality';
+$wb['ssl_organisation_txt'] = 'Organisation';
+$wb['ssl_organisation_unit_txt'] = 'Organisation Unit';
+$wb['ssl_country_txt'] = 'Country';
+$wb['ssl_key_txt'] = 'SSL Key';
+$wb['ssl_request_txt'] = 'SSL Request';
+$wb['ssl_cert_txt'] = 'SSL Certificate';
+$wb['ssl_bundle_txt'] = 'SSL Bundle';
+$wb['ssl_action_txt'] = 'SSL Action';
+$wb['ssl_domain_txt'] = 'SSL Domain';
 $wb['server_id_txt'] = 'Server';
-$wb['domain_txt'] = 'Doména';
-$wb['type_txt'] = 'Typ';
-$wb['parent_domain_id_txt'] = 'Rodičovská web stránka';
+$wb['web_folder_error_regex'] = 'Invalid folder entered. Please do not enter a slash.';
+$wb['type_txt'] = 'Type';
+$wb['parent_domain_id_txt'] = 'Rodičovské webové stránky';
 $wb['redirect_type_txt'] = 'Typ přesměrování';
 $wb['redirect_path_txt'] = 'Cesta přesměrování';
 $wb['active_txt'] = 'Aktivní';
@@ -24,6 +29,8 @@
 $wb['traffic_quota_txt'] = 'Přenosová kvóta';
 $wb['cgi_txt'] = 'CGI';
 $wb['ssi_txt'] = 'SSI';
+$wb['errordocs_txt'] = 'Own Error-Documents';
+$wb['subdomain_txt'] = 'Automatická subdoména';
 $wb['ssl_txt'] = 'SSL';
 $wb['suexec_txt'] = 'SuEXEC';
 $wb['php_txt'] = 'PHP';
@@ -77,7 +84,9 @@
 $wb['stats_type_txt'] = 'Webstatistics program';
 $wb['custom_php_ini_txt'] = 'Custom php.ini settings';
 $wb['none_txt'] = 'None';
-$wb['disabled_txt'] = 'Disabled';
+$wb['disabled_txt'] = 'Vypnuto';
+$wb['no_redirect_txt'] = 'No redirect';
+$wb['no_flag_txt'] = 'No flag';
 $wb['save_certificate_txt'] = 'Save certificate';
 $wb['create_certificate_txt'] = 'Create certificate';
 $wb['delete_certificate_txt'] = 'Delete certificate';
@@ -114,6 +123,7 @@
 $wb['available_php_directive_snippets_txt'] = 'Available PHP Directive Snippets:';
 $wb['available_apache_directive_snippets_txt'] = 'Available Apache Directive Snippets:';
 $wb['available_nginx_directive_snippets_txt'] = 'Available nginx Directive Snippets:';
-$wb['Domain'] = 'Aliasdomain';
-
+$wb['proxy_directives_txt'] = 'Proxy Directives';
+$wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:';
+$wb['Domain'] = 'Alias domény pro webové stránky';
 ?>
diff --git a/interface/web/sites/lib/lang/cz_web_childdomain_list.lng b/interface/web/sites/lib/lang/cz_web_childdomain_list.lng
index 323e565..820ed05 100644
--- a/interface/web/sites/lib/lang/cz_web_childdomain_list.lng
+++ b/interface/web/sites/lib/lang/cz_web_childdomain_list.lng
@@ -1,10 +1,10 @@
 <?php
-$wb['list_head_txt'] = 'Subdomény';
+$wb['list_head_txt'] = 'Alias domény pro webové stránky';
 $wb['active_txt'] = 'Aktivní';
 $wb['server_id_txt'] = 'Server';
-$wb['parent_domain_id_txt'] = 'Webová stránka';
-$wb['domain_txt'] = 'Subdoména';
-$wb['add_new_record_txt'] = 'Přidat subdoménu';
+$wb['parent_domain_id_txt'] = 'Webové stránky';
+$wb['domain_txt'] = 'Alias doména';
+$wb['add_new_record_txt'] = 'Přidat alias doménu';
 $wb['domain_error_empty'] = 'Doména je prázdná.';
 $wb['domain_error_unique'] = 'Doména musí být unkátní.';
 $wb['domain_error_regex'] = 'Doménové jméno je chybné.';
diff --git a/interface/web/sites/lib/lang/cz_web_vhost_domain.lng b/interface/web/sites/lib/lang/cz_web_vhost_domain.lng
index bab3b9e..327d8e3 100644
--- a/interface/web/sites/lib/lang/cz_web_vhost_domain.lng
+++ b/interface/web/sites/lib/lang/cz_web_vhost_domain.lng
@@ -125,5 +125,11 @@
 $wb['web_folder_unique_txt'] = 'The web folder is already used, please choose a different one.';
 $wb['host_txt'] = 'Hostname';
 $wb['domain_error_wildcard'] = 'Wildcard subdomains are not allowed.';
-
+$wb['variables_txt'] = 'Proměnné';
+$wb['added_by_txt'] = 'Kdo vytvořil účet';
+$wb['added_date_txt'] = 'Datum vytvoření účtu';
+$wb['backup_excludes_txt'] = 'Excluded Directories';
+$wb['backup_excludes_note_txt'] = '(Separate multiple directories with commas. Example: web/cache/*,web/backup)';
+$wb['backup_excludes_error_regex'] = 'The excluded directories contain invalid characters.';
+$wb['invalid_custom_php_ini_settings_txt'] = 'Invalid php.ini settings';
 ?>
diff --git a/interface/web/sites/lib/lang/cz_webdav_user_list.lng b/interface/web/sites/lib/lang/cz_webdav_user_list.lng
index af8bfea..422ec85 100644
--- a/interface/web/sites/lib/lang/cz_webdav_user_list.lng
+++ b/interface/web/sites/lib/lang/cz_webdav_user_list.lng
@@ -1,5 +1,5 @@
 <?php
-$wb['list_head_txt'] = 'Webdav uživatel';
+$wb['list_head_txt'] = 'Webdav uživatelé';
 $wb['active_txt'] = 'Aktivní';
 $wb['server_id_txt'] = 'Server';
 $wb['parent_domain_id_txt'] = 'Webové stránky';
diff --git a/interface/web/tools/lib/lang/cz_resync.lng b/interface/web/tools/lib/lang/cz_resync.lng
index ff1e3a5..bb4bf86 100644
--- a/interface/web/tools/lib/lang/cz_resync.lng
+++ b/interface/web/tools/lib/lang/cz_resync.lng
@@ -10,5 +10,6 @@
 $wb['resync_dns_txt'] = 'Resynchronizovat DNS záznamy';
 $wb['btn_start_txt'] = 'Zahájit';
 $wb['btn_cancel_txt'] = 'Zrušit';
+$wb['resync_client_txt'] = 'Resync Client records';
 ?>
 
diff --git a/server/conf/nginx_apps.vhost.master b/server/conf/nginx_apps.vhost.master
index 9f8ae88..a8fe664 100644
--- a/server/conf/nginx_apps.vhost.master
+++ b/server/conf/nginx_apps.vhost.master
@@ -97,7 +97,7 @@
                        fastcgi_buffers 256 4k;
                        fastcgi_busy_buffers_size 256k;
                        fastcgi_temp_file_write_size 256k;
-                       fastcgi_read_timeout 240;
+                       fastcgi_read_timeout 1200;
                }
                location ~* ^/phpmyadmin/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ {
                        root /usr/share/;

--
Gitblit v1.9.1