Installation Prerequisites

You already should have installed and configured Postfix and Dovecot with PostgreSQL support. You also need access to a local or remote PostgreSQL server.

Check for pgsql support in Dovecot and Postfix

To verify that your Dovecot and Postfix installation has support for PostgreSQL use the postconf and dovecot commands as shown below:

root@host:~# postconf -m | grep pgsql
pgsql
root@host:~# postconf -a | grep dovecot
dovecot
root@host:~# dovecot --build-options | grep postgresql
SQL drivers: mysql postgresql sqlite

vmm depends on Python (≥ 2.4.0) and Psycopg (≥ 2.0) or pyPgSQL (≥ 2.5.1) [1]. Psycopg and pyPgSQL are depending on parts of the eGenix.com mx Base Distribution (mxDateTime and mxTools).

If you are using Python ≤ 2.5.0:

  • if you want to store your users’ passwords as PLAIN-MD4 digest in the database, vmm will try to use Crypto.Hash.MD4 from PyCrypto
  • if you are using Dovecot ≥ v1.1.0 and you want to store your users’ passwords as SHA256 or SSHA256 hashes, vmm will try to use Crypto.Hash.SHA256 from PyCrypto. For SHA256/SSHA256 you should have installed PyCrypto, at least in version 2.1.0alpha1.

When the Crypto.Hash module couldn’t be imported, vmm will use dovecotpw/doveadm, if the misc.password_scheme setting in your vmm.cfg is set to PLAIN-MD4, SHA256 or SSHA256.

If your Dovecot and/or Postfix installation shouldn’t support PostgreSQL you could possibly fix this by installing the missing package (see below) or by recompiling the corresponding part.

Package names by OS/Distribution

Debian GNU/Linux (Squeeze/Wheezy)

FreeBSD

Packages or build from ports:
  • dovecot
  • postfix
  • postgresql-client (and postgresql-server, if you do not have a dedicated PostgreSQL server.)
  • python25, py25-mx-base and py25-pyPgSQL optionally py25-pycrypto

Gentoo Linux

Applied use-Flags (/etc/portage/package.use):

mail-mta/postfix dovecot-sasl postgres -pam sasl
net-mail/dovecot postgres -pam pop3d sieve
dev-db/postgresql-server -perl

OpenBSD (5.x)

Packages
  • postfix-2.x.y-pgsql
  • dovecot-2.x.y and dovecot-postgresql-2.x.y
  • postgresql-client
  • python-2.7.x, py-psycopg2 and optionally py-crypto

Or build the above mentioned software from ports.

openSUSE Linux

  • postfix and postfix-postgresql
  • postgresql-server and postgresql
  • dovecot
  • python and pyPgSQL optionally python-crypto

Footnotes

[1]Beginning with version 0.7.0 of vmm support for pyPgSQL will be dropped.