### 1 What is DTC?

#### 1.1 What does DTC do?

Domain Technologie Control (DTC) is a complete webhosting package delivering web GUI for admin of bind, apache, qmail... DTC is a set of PHP scripts and a web interface that manage a MySQL database that handles all the host information. It generates backup scripts, statistic calculation scripts, and config files for bind, Apache, qmail, and proftpd, using a single system UID/GID. With DTC, you can delegate the task of creating subdomains, email, and FTP accounts to users for the domain names they own.

#### 1.2 Who should read this doccument?

This doc is for unix server administrators that have root acccess to a server that have a minimum knowledge of internet services, and that wish to install or use DTC. If you are a simple user of DTC (you have one or more domain name hosted), please read the integrated help.

#### 1.3 Good points of DTC

If you are used to another web GUI to configure your servers (http, ftp, etc.) on an unix machine, you will be surprised by the ease and speed of use of DTC. Its main goal was to be the most ergonomic as possible for final users, minimising task number.
The biggest difference between Webmin and DTC for example, is that webmin has a services approach (one server, one module to configure that server). DTC does the opposite, and centralises all the tasks in one unique interface. For example, when an admin adds a domain to DTC, the configuration is updated for both apache, bind and qmail.
Be aware that it's not because it seems easy that you can skip the reading on how to configure each daemon, otherwise you will not understand the values used in the control panel. If you don't know what a MX or Virtual Host directive are, you'd better go and read some documentation about bind, apache, or mail servers, and have a try with them manually first.

#### 1.4 Technologies used by DTC

DTC is based on PHP scripts and on a MySQL database allowing configuration of your domains. For the moment, the following servers are supported:
- The name server bind and all RFC compatible name servers (http://www.isc.org) Note that even if Bind is often considered badly because of security issues in the past, a lot of alternative DNS servers are compatible with Bind's zonefile format. Bind is just the standard in most distributions, but for sure some other would work.
- The webserver apache (http://www.apache.org)
- The ftp server proftpd (http://www.proftpd.org)
- The module mod_sql for proftpd
- The SBOX CGI script wrapper for cgi chrooting and limitations
If one of those programs are not available for your Unix distribution, you will have to compile it. Under most Unix, only SBOX is not available, but it's very easy to compile it from source which is available on the DTC project page. Debian users should use precompiled i386 binary package that runs on all 3 current Debian flavors (Woody, Sarge and Sid).
The Mail Transport Agent (MTA, or SMTPd) is your choice between:
- qmail (http://www.qmail.org)
- Postfix (http://www.postfix.org) with or without tls patch + SASL to enable SMTP with auth. If you need it, a logger is available for postfix to log SMTP traffic in MySQL.
It is then possible to bind the following daemons directly connected to the MySQL database. You will select them depending:
- MySQMail A slightly modified version of the qmail-pop3d and checkpassword that enable pop3 traffic accounting and auth directly in MySQL, plus a logger that writes all SMTP exchanges in MySQL.
(http://www.gplhost.com/?rub=software&sousrub=dtc)
- Standard Qmail + checklocalpwd You can use the standard qmail from source or from Debian's source packages using jedi's alternative checklocalpwd program, if you don't want MySQL connection and don't care about traffic logging.
- Dovecot POP3 and iMAP daemons those are fast and secure daemons directly plugged to MySQL. We don't have support for accounting yet with it, feel free to write to us if you wrote one.
- Courier POP3 and iMAP daemons Those daemons have internal support for MySQL, but are known to be slow.
To be able to fully use DTC, you can install the following:
- The module mod_log_sql that logs traffic HTTP in MySQL database (http://www.grubbybaby.com/mod_log_sql/)
- The statistic generator tool Webalizer that parses CommonLog access.log standard file to produce its stats (http://www.mrunix.net/webalizer/)
DTC can also be used to work as a backup solution, compressing all domain files in a tar file.
Choices on thoses programs has been motivated by the availability of those programs under lot's of Unix systems. Please note that it would be easy to add compatibility to other servers (I'm thiking namely about exim, or pureftpd), and that all contributions are welcomes to extend the compatibility list.

#### 1.5 DTC's possibilities

- Nearly unlimited number of users
- Number of domains and subzone (nearly) unlimited
- Use only one system UID/GID (if you don't users for the deamons)
- No conflict with the same email name for a different domain (for example with postmaster@domaine1.com and postmaster@domaine2.com) but without using vpopmgr (standalone qmail package)
- Monitoring of band width usage per services and per users.
- Integration of 2 payment systems (for the moment paypal and worldpay)
- Working with the help of openSRS-PHP lib to register domain name to Tucows (you need to have a Tucows account).
- Working with a skin system that allow changing of the interface visuals.
- NAT support (realy conveinient if you have a web server running in a natted LAN network).
- SSL support
- Modular programming allowing easy changes (especially for conf file generation).
- Compatible with almost all browsers: Internet Explorer, Mozilla, lynx/links, .. (no frames, and javascript confirmations can be disabled).
- SASL (smtp with auth) relaying when using Postfix
- Dynamic-ip updatable through simple web query (dyndns.org like feature)

#### 1.6 How does it works

DTC writes all hosting information for its services in a MySQL database. It then reuses it to generate config files for apache, qmail, and bind. Whenever it was easily possible, some MySQL modules for some daemons were used, but sometimes, it was better not to use them and still use generated configuration files. Sometimes, there was no other options.
Once installed, DTC grant access to 3 types of interface. One for the root administrator (we will call it root-admin), and one for final customer (the client interface, or virtual admin). The root-admin will add domain names to its clients, and grant access to them. The client will be allowed to add or change mail, ftp, zones, mx, and the data of his domains.
Another panel is for configuring email addresses.