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.
- 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
- 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
- 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
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 firstname.lastname@example.org and email@example.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
- 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.