--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/INSTALL Sun Jan 06 18:22:10 2008 +0000
@@ -0,0 +1,154 @@
+Installation Prerequisites
+You should already have installed and configured Postfix, Dovecot and
+PostgreSQL.
+You have to install Python and pyPgSQL to use the Virtual Mail Manager.
+
+
+Configuring PostgreSQL
+
+* /etc/postgresql/8.2/main/pg_hba.conf
+ # IPv4 local connections:
+ host mailsys +mailsys 127.0.0.1/32 md5
+
+ # reload configuration
+ /etc/init.d/postgresql-8.2 force-reload
+
+* Create a DB user if necessary:
+ DB Superuser:
+ createuser -s -d -r -E -e -P $USERNAME
+ DB User:
+ createuser -d -E -e -P $USERNAME
+
+* Create Database and db users for Postfix and Dovecot
+ connecting to PostgreSQL:
+ psql template1
+
+ # create database
+ CREATE DATABASE mailsys ENCODING 'UTF8';
+ # connect to the new database
+ \c mailsys
+ # import db structure
+ \i /path/to/create_tables.pgsql
+
+ # create users and group
+ CREATE USER postfix ENCRYPTED password 'DB PASSWORD for Postfix';
+ CREATE USER dovecot ENCRYPTED password 'DB PASSWORD for Dovecot';
+ CREATE ROLE mailsys WITH USER postfix, dovecot;
+
+ # set permissions
+ GRANT SELECT ON dovecot_password, dovecot_user TO dovecot;
+ GRANT SELECT ON postfix_alias, postfix_maildir, postfix_relocated,
+ postfix_uid, postfix_gid, postfix_transport TO postfix;
+
+ # leave psql
+ \q
+
+Create directory for your mails
+ mkdir /srv/mail
+ cd /srv/mail/
+ mkdir 0 1 2 3 4 5 6 7 8 9 a b c d e f g h i j k l m n o p q r s t u v w x y z
+ chmod 771 /srv/mail
+ chgrp -R mail /srv/mail
+ chmod 751 /srv/mail/*
+
+Configuring Dovecot
+
+* /etc/dovecot/dovecot.conf
+ # all your other settings
+ mail_location = maildir:~/Maildir
+ mail_extra_groups = mail
+ first_valid_uid = 70000
+ first_valid_gid = 70000
+ protocol lda {
+ postmaster_address = postmaster@domain.tld
+ }
+ auth default {
+ mechanisms = cram-md5
+ passdb sql {
+ args = /etc/dovecot/dovecot-sql.conf
+ }
+ userdb sql {
+ args = /etc/dovecot/dovecot-sql.conf
+ }
+ user = nobody
+ socket listen {
+ master {
+ path = /var/run/dovecot/auth-master
+ mode = 0600
+ }
+ client {
+ path = /var/spool/postfix/private/auth
+ mode = 0660
+ user = postfix
+ group = postfix
+ }
+ }
+ }
+
+* /etc/dovecot/dovecot-sql.conf
+ driver = pgsql
+ connect = host=localhost dbname=mailsys user=dovecot password=$Dovecot_PASS
+ default_pass_scheme = HMAC-MD5
+ password_query = SELECT "user", password FROM dovecot_password WHERE "user"= '%u'
+ user_query = SELECT home, uid, gid FROM dovecot_user WHERE userid = '%u'
+
+Provide a root SETUID copy of Dovecot's deliver agent for Postfix
+
+ mkdir -p /usr/local/lib/dovecot
+ chmod 700 /usr/local/lib/dovecot
+ chown nobody /usr/local/lib/dovecot
+ cp /usr/lib/dovecot/deliver /usr/local/lib/dovecot/
+ chmod u+s /usr/local/lib/dovecot/deliver
+
+
+Start or restart Dovecot
+
+
+Configuring Postfix's master.cf
+
+ # Add Dovecot's deliver agent
+ dovecot unix - n n - - pipe
+ flags=DRhu user=nobody:mail argv=/usr/local/lib/dovecot/deliver -f ${sender} -d ${user}@${nexthop} -n -m ${extension}
+
+
+
+Configuring Postfix's main.cf
+
+ # virtual domains
+ virtual_mailbox_domains = pgsql:/etc/postfix/pgsql-transport.cf
+ virtual_alias_maps = pgsql:/etc/postfix/pgsql-virtual_alias_maps.cf
+ transport_maps = pgsql:/etc/postfix/pgsql-transport.cf
+ virtual_minimum_uid = 70000
+ virtual_uid_maps = pgsql:/etc/postfix/pgsql-virtual_uid_maps.cf
+ virtual_gid_maps = pgsql:/etc/postfix/pgsql-virtual_gid_maps.cf
+ virtual_mailbox_base = /
+ virtual_mailbox_maps = pgsql:/etc/postfix/pgsql-virtual_mailbox_maps.cf
+
+ # dovecot LDA
+ dovecot_destination_recipient_limit = 1
+ virtual_transport = dovecot:
+
+ # dovecot SASL
+ smtpd_sasl_type = dovecot
+ smtpd_sasl_path = private/auth
+ smtpd_sasl_auth_enable = yes
+ smtpd_sasl_local_domain = $myhostname
+ smtpd_sasl_security_options = noplaintext, noanonymous
+
+
+
+Installing the Virtual Mail Manager and configure the rest
+
+ Installing from SVN
+ after checking out type
+ ./install
+ edit all the pgsql-*.cf files in /etc/postfix
+
+ reload postfix
+
+ # configure the Virtual Mail Manager
+ vmm configure
+
+ # for help type
+ vmm help
+