### 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 installe 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 others web GUI to configurate fastly your servers (http, ftp, etc.) on an unix machine, you will be surprised by the ease and speed of use of DTC. It's main goal was to be the most hergonomic as possible for final user, minimising task number.
The biggest diference between Webmin and DTC for example, is that webmin has a services aproache (one server, one module to configure that server). DTC does the opposite, and centralise all the tasks in one unic interface. For example, when an admin add 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 configurate each daemons, otherwise you wont understand the values used in the control panel. If you don't know what is a MX or what is a Virtual Host directive, you'd better go and read some documentation about bind, apache, or mail servers, and have a try with them manualy 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 is Bind is often considered badly because of security issues in the past, a lot alternative DNS servers are compatible with Bind's zonefile format. Bind is just the standard in most distribution, 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 programms 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 from source available on DTC project page. Debian user should use precompiled i386 binary package that runs on both 3 current Debian flavor (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, 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 use fully DTC, you can install the followings:
- The module mod_log_sql that logs trafic 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 it's 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 avalability of thoses 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 user
- Number of domains and subzone (nearly) unlimited
- Use only one system UID/GID (if you don't coun't does for the deamons)
- No conflict with the same email name for a different domain (for example with postnamster@domaine1.com and postmaster@domaine2.com) butwithout using vpopmgr (standalone qmail package)
- Monitoring of band width usage per services and per users.
- Integrate 2 paiement systep (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 (aspecialy 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 write all hosting informations for it's services in a MySQL database. It then reuse it to generate config files for apache, qmail, and bind. Whenever it was easily possible, some MySQL modules for some daemons where used, but sometimes, it was better not to use them and still use generated configurations 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 it's 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 twiking one email address.