Virtual Users With Postfix, Dovecot, MySQL, RoundCube, iRedAdmin On Debian 6.0 (Squeeze)

This document describes how to install a Postfix and Dovecot mail server that is based on virtual users and domains, i.e. users and domains that are in a MySQL database. If you prefer to install such a mail server step by step, you can refer to the ISPmail tutorials at Also the Big Picture would help you to easily understand the mail server structure. I believe you at least need one day to have a working mail server that way. If you use the iRedMail script, you only need one minute to get the mail server up and running, and you will have more features (compared to the ISPmail tutorials).

What is iRedMail?

  • iRedMail is a shell script.
  • It lets you quickly deploy a full-featured mail solution in less than 2 minutes.
  • iRedMail supports both OpenLDAP and MySQL as backends for storing virtual domains and users.
  • iRedMail officially provides the iRedAdmin web panel for managing mail servers.
  • Most components used in iRedMail are provided by Linux distributions officially. It means that iRedMail users can get software update support for as long as the the distribution is supported.
  • It supports RedHat, CentOS, Debian, Ubuntu, OpenSuSE, FreeBSD on both i386 and x86_64 architectures.
  • It provides RoundCube 0.5.1 as a webmail program.

Useful links:


1 Requirements

It is strongly recommended to use the Debian NetInstall version to install a minimal Debian system, and then deploy the mail service via the iRedMail solution. e.g.:

To install such a system you will need the following:


2 Preliminary Note

In this tutorial we use:
  • Hostname:
  • IP address:
  • The first virtual domain:
  • iRedMail installs all packages from official apt repositories on Debian 6. On Debian 5, it installs from official apt repositories and the backports repository.


3 Setting The Hostname

In Debian, the hostname is set in these two files:

  • /etc/hosts: hostname <=> IP address mapping
  • /etc/hostname: hostname setting

Map this hostname to '' (warning: list the FQDN hostname as the first item!).

Edit /etc/hosts:       localhost        mail

Edit /etc/hostname:


Let the hostname modification take effect at once:

 # /etc/init.d/ 

Verify the FQDN hostname:

# hostname
 #hostname -f


4 Install Necessary Packages

We need to have bzip2 installed for extracting iRedMail.

 # apt-get install bzip2 


5 Start iRedMail Installation

Switch to the root user, we must execute further commands as the root user without sudo.

 $ sudo su - 
Download the new version of iredmail and start the installation:

# wget
# tar jxvf iRedMail-0.7.0.tar.bz2
# cd iRedMail-0.7.0
# bash


  • It will download 3 source tarballs of iRedAdmin, RoundCube and iRedAPD.
  • It will install the package "dialog" first.

Welcome page:

Choose the directory that will be used to store users' mailboxes.

iRedMail supports both OpenLDAP and MySQL as backends to store virtual domains and users. We choose MySQL.

Set the MySQL root password:

Add your first virtual domain, e.g.:

Set a password for the virtual domain admin: [email protected], you can log into iRedadmin and Awstats with this account.

Set a password for the first normal user [email protected] for the first virtual domain:

Select optional components:

Select the default language for your webmail application:

The configuration is now finished, we can now start the installation:

Configuration completed.
***************************** WARNING ***********************************
*                                                                       *
* Please do remember to *MOVE* configuration file after installation    *
* completed successfully.                                               *
*                                                                       *
*   * /root/iRedMail-0.7.0-beta2/config
*                                                                       *
< INFO > Continue? [Y|n]

Finish the installation:

* iRedMail-0.7.0-beta3 installation and configuration complete.
< Question > Would you like to use firewall rules shipped within iRedMail now?
< Question > File: /etc/default/iptables, with SSHD port: 22. [Y|n]
< INFO > Copy firewall sample rules: /etc/default/iptables.
insserv: warning: script 'K01iredapd' missing LSB tags and overrides
insserv: warning: script 'iredapd' missing LSB tags and overrides
< Question > Restart firewall now (with SSHD port 22)? [y|N]
< Question > Would you like to start postfix now? [y|N]
*   # for i in rsyslog  apache2 postfix mysql postfix-policyd dovecot amavis clamav-daemon clamav-freshclam cron iptables; do /etc/init.d/${i} restart; done

Restart all the related services manually without reboot:

# for i in rsyslog apache2 postfix mysql postfix-policyd dovecot amavis clamav-daemon clamav-freshclam cron iptables; do /etc/init.d/${i} restart; done

Share this page:

Suggested articles

1 Comment(s)

Add comment


By: swmcdonnell

The script is very poorly done and tested. Don't use it with anything but a completely fresh installation of Debian. It doesn't work if MySQL or many of the other components are already installed (although it appears to be developed to account for this). Leaves you with a mishmash of old and new configurations that are difficult to decipher. Script failed all over the place and said it completed successfully, which it didn't. Not recommended.