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.