Je ne reprendrais pas l'intégralité de l'install celle-ci étant détaillée sur howtoforge et sur le wiki de group-office mais je propose une chronologie d'install un peu différente
dans la mesure où j'ai rencontré quelques problèmes en suivant cette doc: en effet les tables mysql nécessaires à postfix n'avaient pas été créées.


Environnement:

La machine qui va héberger group-office est une vmware sur laquelle est installée une debian-lenny toute fraîche (aucun soft sauf ssh).


isp:/# hostname --fqdn
isp.domaine.isp

isp:/# cat /etc/issue.net
Debian GNU/Linux 5.0

isp:/# ip addr ls |grep 192
    inet 192.168.0.65/24 brd 192.168.0.255 scope global eth0

Un dns local gère le domaine fictif domaine.isp et un autre qui sera utilisé pour des tests d'expédition de mail: net.caen

isp:/# dig mx domaine.isp  (extraits)

; <<>> DiG 9.5.1-P1 <<>> mx domaine.isp
;; QUESTION SECTION:
;domaine.isp.            IN    MX

;; ANSWER SECTION:
domaine.isp.        10800    IN    MX    10 mx.domaine.isp.

;; AUTHORITY SECTION:
domaine.isp.        10800    IN    NS    p733.net.caen.
domaine.isp.        10800    IN    NS    ns.net.caen.

;; ADDITIONAL SECTION:
mx.domaine.isp.        10800    IN    A    192.168.0.65
ns.net.caen.        10800    IN    A    192.168.0.23
p733.net.caen.        10800    IN    A    192.168.0.22
....

On commence par installer le nécessaire
isp:/# apt-get install $(cat softgo | tr '\n' ' ')

contenu de softgo

Au final liste des paquets installés  en utilisant le sources.list suivant:

isp:/tmp# cat /etc/apt/sources.list
deb http://192.168.0.42:9999/debian/ lenny main contrib non-free
deb-src http://192.168.0.42:9999/debian/ lenny main contrib non-free
deb http://192.168.0.42:9999/security lenny/updates main
deb http://192.168.0.42:9999/dotdeb lenny all
#deb http://192.168.0.42:9999/backports lenny-backports main
deb http://192.168.0.42:9999/volatile lenny/volatile main contrib non-free


J'arrête tous les services qui viennent d'être installés (postfix, dovecot)
Je vais ensuite préparer l'environnement (utilisateurs, fichiers de conf, répertoires spécifiques) AVANT de lancer l'install de Group-Office.

1) Création d'un répertoire pour les fichiers protégés des utilisateurs

isp:/# mkdir /home/groupoffice
isp:/# chown www-data:www-data /home/groupoffice

2) Création d'un répertoire pour les fichiers partagés

isp:/# mkdir /var/www/local
isp:/ # chown www-data:www-data /var/www/local

3) Création du fichier dans lequel sera écrite la configuration de groupoffice et insertion de la valeur de l'auto-reply (ATTENTION: je travaille avec le domaine nommé : domaine.isp  => à adapter )

isp:/# touch /var/config.php
isp:/ # chown www-data /var/config.php

isp:/# echo "\$config['postfixadmin_autoreply_domain']=\"autoreply.domaine.isp\";"  > /var/config.php

4) Configuration de postfix (là aussi bien penser à adapter)

isp:/etc/postfix# ll
total 120
drwxr-xr-x  3 root root  4096 mai 16 16:42 .
drwxr-xr-x 73 root root  4096 mai 16 16:02 ..
-rw-r--r--  1 root root   373 mai 16 15:33 dynamicmaps.cf
-rw-r--r--  1 root root  2760 mai 16 15:51 main.cf
-rw-r--r--  1 root root  4775 mai 16 15:59 master.cf
-rw-r--r--  1 root root   199 mai 16 15:55 mysql_relay_domains_maps.cf
-rw-r--r--  1 root root   180 mai 16 15:52 mysql_virtual_alias_maps.cf
-rw-r--r--  1 root root   199 mai 16 15:53 mysql_virtual_domains_maps.cf
-rw-r--r--  1 root root   183 mai 16 15:53 mysql_virtual_mailbox_limit_maps.cf
-rw-r--r--  1 root root   185 mai 16 15:54 mysql_virtual_mailbox_maps.cf
-rw-r--r--  1 root root   183 mai 16 15:54 mysql_virtual_transports.cf
-rw-r--r--  1 root root 18231 sep 14  2008 postfix-files
-rwxr-xr-x  1 root root  7421 sep 14  2008 postfix-script
-rwxr-xr-x  1 root root 22774 sep 14  2008 post-install
drwxr-xr-x  2 root root  4096 sep 14  2008 sasl
-rw-r--r--  1 root root    32 mai 16 16:05 transport
-rw-r--r--  1 root root 12288 mai 16 17:02 transport.db

Créer le fichier transport.db par:

isp:/etc/postfix# postmap transport

5) Déclaration d'un utilisateur vmail_user qui aura des droits sur la base groupoffice:

isp:/# mysql -p
mysql> grant all on groupoffice.* to 'vmail_user'@'localhost' identified by 'password';
mysql> flush privileges;
mysql> quit

6) Création de l'utilisateur vmail:

isp:/# useradd -r -u 150 -g mail -d /var/vmail -s /usr/sbin/nologin -c "Virtual Mailbox" vmail
isp:/# mkdir /vmail
isp:/# chmod 770 /vmail/
isp:/# chown vmail:mail /vmail/

7) Configuration spamassassin

isp:/# groupadd -g 5001 spamd
isp:/# useradd -u 5001 -g spamd -s /sbin/nologin -d /var/lib/spamassassin spamd
isp:/# mkdir /var/lib/spamassassin
isp:/# chown spamd:spamd /var/lib/spamassassin

isp:/etc/default# grep ENABLED spamassassin
ENABLED=1

8) Paramètrage de vacation

le script vacation.pl sera disponible après install de groupoffice, ce qui donne dans mon cas:
isp:/var/www/go/modules/postfixadmin/scripts# ll
total 24
drwxr-xr-x 2 pme pme  4096 avr 28 12:14 .
drwxr-xr-x 7 pme pme  4096 avr 28 12:14 ..
-rw-r--r-- 1 pme pme 12650 fév 16 11:22 vacation.pl

L'appli n'étant pas encore installée, on se contente de préparer le terrain et on recopiera le script en fin d'install là où il faut:


isp:/# mkdir /var/spool/vacation
isp:/# touch /var/spool/vacation/vacation.pl
isp:/# useradd -r -d /var/spool/vmail -s /usr/sbin/nologin -c "Virtual vacation" vacation
isp:/# chown -R vacation:vacation /var/spool/vacation/
isp:/# chmod 700 /var/spool/vacation/
isp:/# chmod 750 /var/spool/vacation/vacation.pl
isp:/# touch /var/log/vacation.log /var/log/vacation-debug.log
isp:/# chown vacation:vacation /var/log/vacation*

9) Paramètrage de dovecot et de sieve

isp:/etc/dovecot# ll
total 172
drwxr-xr-x  2 root root  4096 mai 16 16:39 .
drwxr-xr-x 73 root root  4096 mai 16 16:02 ..
-rw-r--r--  1 root root 45786 mai 16 16:24 dovecot.conf
-rw-------  1 root root   538 mai 16 16:39 dovecot-sql.conf

isp:/# mkdir /var/vmail/
isp:/# cat /var/vmail/globalsieverc

require "fileinto";
if exists "X-Spam-Flag" {
  fileinto "Spam";
}

10) Paramètrage du serverclient:

Contenu du fichier : /var/config.php

Voilà c'est prêt: il ne reste plus qu'à installer le paquet cadeau:

isp:/# cd /var/www
isp:/# wget http://freefr.dl.sourceforge.net/sourceforge/group-office/groupoffice-com-3.01-stable-34.tar.gz
isp:/# tar zxf groupoffice-com-3.01-stable-34.tar.gz
isp:/# mv groupoffice-3.01-stable-34 go

Avant de lancer http://server/go/install  configurer le php.ini avec ces valeurs.

L'installer vous proposera de créer une base de données groupoffice (vous devrez fournir le login/pass du root mysql). Comme on le voit dans le fichier /var/config.php, pour la demo j'ai fait simple: login: go, mot de passe: password.

Il est recommandé de limiter l'accès au répertoire install après l'install justement :)

De plus (cf début de l'article) les tables nécessaires à postfix/mysql n'étaient pas installées. Il faut donc vérifier leur présence (soit en se connectant sur mysql soit en jetant un oeil dans /var/lib/mysql/groupoffice): ces tables sont les suivantes :

isp:/var/lib/mysql/groupoffice# ll pa_*.MYD
-rw-rw---- 1 mysql mysql   112 mai 17 11:46 pa_aliases.MYD
-rw-rw---- 1 mysql mysql    64 mai 17 11:44 pa_domains.MYD
-rw-rw---- 1 mysql mysql     0 mai 17 11:43 pa_fetchmail.MYD
-rw-rw---- 1 mysql mysql   336 mai 17 12:04 pa_mailboxes.MYD
-rw-rw---- 1 mysql mysql     0 mai 17 11:43 pa_vacation_notification.MYD

Si elles sont absentes, utiliser le script sql que l'on trouve dans:

/var/www/go/modules/postfixadmin/install/install.sql

exemple:
isp:/# mysql -p groupoffice < /var/www/go/modules/postfixadmin/install/install.sql

Dernière chose:

isp:/var/www/go/modules/postfixadmin/scripts# cp vacation.pl /var/spool/vacation
isp:/var/spool/vacation# ll
total 24
drwx------ 2 vacation vacation  4096 mai 17 16:48 .
drwxr-xr-x 6 root     root      4096 mai 16 16:02 ..
-rwxr-x--- 1 vacation vacation 12652 mai 17 16:48 vacation.pl


Modification du script vacation.pl avec les bons paramètres:

............
# connection details
my $db_username = 'vmail_user';
my $db_password = 'password';
my $db_name     = 'groupoffice';
............




Je me suis ensuite connecté en admin/admin puis ai activé les modules serverclient, postfixadmin et ai créé un utilisateur pme@domaine.isp.

Tests:
Envoi d'un mail depuis une autre machine:

srvweb:/# echo "$(date)" | mail -s "$(date)" pme@domaine.isp && tail -f /var/log/mail.log

May 17 11:28:40 srvweb qmail: 1242552520.445312 new msg 915883
May 17 11:28:40 srvweb qmail: 1242552520.445591 info msg 915883: bytes 886 from <root@pmenier.dynalias.net> qp 22418 uid 0
May 17 11:28:40 srvweb qmail: 1242552520.450755 starting delivery 182: msg 915883 to remote pme@domaine.isp
May 17 11:28:40 srvweb qmail: 1242552520.450919 status: local 0/10 remote 1/20
May 17 11:29:00 srvweb qmail: 1242552540.109165 delivery 182: success: 192.168.0.65_accepted_message./Remote_host_said:_250_2.0.0_Ok:_queued_as_ADE3830443/
May 17 11:29:00 srvweb qmail: 1242552540.109418 status: local 0/10 remote 0/20
May 17 11:29:00 srvweb qmail: 1242552540.109500 end msg 915883


Sur le serveur groupoffice
isp:/var/log# tail -f mail.log

May 17 11:47:08 isp postfix/smtpd[13656]: connect from srvweb.net.caen[192.168.0.23]
May 17 11:47:28 isp postfix/smtpd[13656]: warning: 23.0.168.192.list.dsbl.org: RBL lookup error: Host or domain name not found. Name service error for name=23.0.168.192.list.dsbl.org type=A: Host not found, try again
May 17 11:47:28 isp postfix/smtpd[13656]: ADE3830443: client=srvweb.net.caen[192.168.0.23]
May 17 11:47:28 isp postfix/cleanup[13661]: ADE3830443: message-id=<20090517092840.22417.qmail@pmenier.dynalias.net>
May 17 11:47:28 isp postfix/qmgr[13483]: ADE3830443: from=<root@pmenier.dynalias.net>, size=1107, nrcpt=1 (queue active)
May 17 11:47:28 isp postfix/smtpd[13656]: disconnect from srvweb.net.caen[192.168.0.23]
May 17 11:47:28 isp spamd[13515]: spamd: connection from localhost [127.0.0.1] at port 41976
May 17 11:47:28 isp spamd[13515]: spamd: setuid to spamd succeeded
May 17 11:47:28 isp spamd[13515]: spamd: processing message <20090517092840.22417.qmail@pmenier.dynalias.net> for spamd:5001
May 17 11:47:34 isp spamd[13515]: spamd: clean message (-1.4/5.0) for spamd:5001 in 5.9 seconds, 1073 bytes.
May 17 11:47:34 isp spamd[13515]: spamd: result: . -1 - ALL_TRUSTED scantime=5.9,size=1073,user=spamd,uid=5001,required_score=5.0,rhost=localhost,raddr=127.0.0.1,rport=41976,mid=<20090517092840.22417.qmail@pmenier.dynalias.net>,autolearn=ham
May 17 11:47:34 isp spamd[13511]: prefork: child states: II
May 17 11:47:34 isp postfix/pipe[13662]: ADE3830443: to=<pme@domaine.isp>, relay=spamassassin, delay=26, delays=20/0.01/0/5.9, dsn=2.0.0, status=sent (delivered via spamassassin service)
May 17 11:47:34 isp postfix/qmgr[13483]: ADE3830443: removed
May 17 11:47:34 isp postfix/pickup[13482]: A956C3044B: uid=5001 from=<root@pmenier.dynalias.net>
May 17 11:47:34 isp postfix/cleanup[13661]: A956C3044B: message-id=<20090517092840.22417.qmail@pmenier.dynalias.net>
May 17 11:47:34 isp postfix/qmgr[13483]: A956C3044B: from=<root@pmenier.dynalias.net>, size=1404, nrcpt=1 (queue active)
May 17 11:47:34 isp deliver(pme@domaine.isp): msgid=<20090517092840.22417.qmail@pmenier.dynalias.net>: saved mail to INBOX
May 17 11:47:34 isp postfix/pipe[13668]: A956C3044B: to=<pme@domaine.isp>, relay=dovecot, delay=0.08, delays=0.04/0.01/0/0.03, dsn=2.0.0, status=sent (delivered via dovecot service)
May 17 11:47:34 isp postfix/qmgr[13483]: A956C3044B: removed


Détails du répertoire mail de pme

isp:/vmail/domaine.isp/pme# ll
total 72
drwx------ 9 vmail mail  4096 mai 17 11:47 .
drwx------ 5 vmail mail  4096 mai 17 11:26 ..
drwx------ 5 vmail mail  4096 mai 17 10:33 .Brouillons
drwx------ 5 vmail mail  4096 mai 17 10:33 .Corbeille
drwx------ 2 vmail mail  4096 mai 17 11:28 cur
-rw------- 1 vmail mail   168 mai 17 11:47 dovecot.index
-rw------- 1 vmail mail 16384 mai 17 11:47 dovecot.index.cache
-rw------- 1 vmail mail   384 mai 17 11:47 dovecot.index.log
-rw------- 1 vmail mail    95 mai 17 11:47 dovecot-uidlist
drwx------ 5 vmail mail  4096 mai 17 10:33 .El&AOk-ments envoy&AOk-s
-rw------- 1 vmail mail    25 mai 17 11:47 maildirsize
drwx------ 2 vmail mail  4096 mai 17 11:47 new
drwx------ 5 vmail mail  4096 mai 17 10:33 .Spam
-rw------- 1 vmail mail    51 mai 17 10:33 subscriptions
drwx------ 2 vmail mail  4096 mai 17 11:47 tmp

isp:/vmail/domaine.isp/pme# ll new
total 12
drwx------ 2 vmail mail 4096 mai 17 11:47 .
drwx------ 9 vmail mail 4096 mai 17 11:47 ..
-rw------- 1 vmail mail 1435 mai 17 11:47 1242552634.P13669Q0M727660.isp,S=1435

isp:/vmail/domaine.isp/pme# cat new/1242552634.P13669Q0M727660.isp\,S\=1435
Return-Path: <root@pmenier.dynalias.net>
Delivered-To: pme@domaine.isp
Received: by mx.domaine.isp (Postfix, from userid 5001)
    id A956C3044B; Sun, 17 May 2009 11:47:34 +0200 (CEST)
X-Spam-Checker-Version: SpamAssassin 3.2.5 (2008-06-10) on isp.domaine.isp
X-Spam-Level:
X-Spam-Status: No, score=-1.4 required=5.0 tests=ALL_TRUSTED autolearn=ham
    version=3.2.5
Received: from pmenier.dynalias.net (srvweb.net.caen [192.168.0.23])
    by mx.domaine.isp (Postfix) with ESMTPS id ADE3830443
    for <pme@domaine.isp>; Sun, 17 May 2009 11:47:08 +0200 (CEST)
Received: (qmail 22418 invoked by uid 0); 17 May 2009 09:28:40 -0000
Date: 17 May 2009 09:28:40 -0000
Message-ID: <20090517092840.22417.qmail@pmenier.dynalias.net>
From: root@pmenier.dynalias.net
To: pme@domaine.isp
Subject: dimanche 17 mai 2009, 11:47:39 (UTC+0200)

dimanche 17 mai 2009, 11:47:39 (UTC+0200)


Maintenant j'envoie un mail depuis mon interface groupoffice vers un utiilisateur @client1.caen:

isp:/var/log# tail -f mail.log

May 17 11:51:55 isp postfix/smtpd[13689]: connect from localhost[127.0.0.1]
May 17 11:51:55 isp postfix/smtpd[13689]: BEA9B3044A: client=localhost[127.0.0.1]
May 17 11:51:55 isp postfix/cleanup[13693]: BEA9B3044A: message-id=<1242552955.4a0fda7ba9881@192.168.0.65>
May 17 11:51:55 isp postfix/qmgr[13483]: BEA9B3044A: from=<pme@domaine.isp>, size=1011, nrcpt=1 (queue active)
May 17 11:51:55 isp dovecot: imap-login: Login: user=<pme@domaine.isp>, method=PLAIN, rip=127.0.0.1, lip=127.0.0.1, secured
May 17 11:51:55 isp spamd[13515]: spamd: connection from localhost [127.0.0.1] at port 47546
May 17 11:51:55 isp spamd[13515]: spamd: setuid to spamd succeeded
May 17 11:51:55 isp spamd[13515]: spamd: processing message <1242552955.4a0fda7ba9881@192.168.0.65> for spamd:5001
May 17 11:51:55 isp postfix/smtpd[13689]: disconnect from localhost[127.0.0.1]
May 17 11:51:55 isp dovecot: IMAP(pme@domaine.isp): Disconnected: Logged out
May 17 11:51:58 isp spamd[13515]: spamd: clean message (3.5/5.0) for spamd:5001 in 2.2 seconds, 979 bytes.
May 17 11:51:58 isp spamd[13515]: spamd: result: . 3 - ALL_TRUSTED,HTML_MESSAGE,TVD_RCVD_IP,TVD_RCVD_IP4 scantime=2.2,size=979,user=spamd,uid=5001,required_score=5.0,rhost=localhost,raddr=127.0.0.1,rport=47546,mid=<1242552955.4a0fda7ba9881@192.168.0.65>,autolearn=no
May 17 11:51:58 isp spamd[13511]: prefork: child states: II
May 17 11:51:58 isp postfix/pipe[13694]: BEA9B3044A: to=<postmaster@client1.caen>, relay=spamassassin, delay=2.3, delays=0.07/0.01/0/2.2, dsn=2.0.0, status=sent (delivered via spamassassin service)
May 17 11:51:58 isp postfix/qmgr[13483]: BEA9B3044A: removed
May 17 11:51:58 isp postfix/pickup[13482]: 0EE003044A: uid=5001 from=<pme@domaine.isp>
May 17 11:51:58 isp postfix/cleanup[13693]: 0EE003044A: message-id=<1242552955.4a0fda7ba9881@192.168.0.65>
May 17 11:51:58 isp postfix/qmgr[13483]: 0EE003044A: from=<pme@domaine.isp>, size=1348, nrcpt=1 (queue active)
May 17 11:51:58 isp postfix/smtp[13701]: 0EE003044A: to=<postmaster@client1.caen>, relay=mx.net.caen[192.168.0.23]:25, delay=0.15, delays=0.04/0.01/0.1/0.01, dsn=2.0.0, status=sent (250 ok 1242552861 qp 22807)
May 17 11:51:58 isp postfix/qmgr[13483]: 0EE003044A: removed

Sur le serveur qui réceptionne:
srvweb:/var/log# tail -f mail.log

May 17 11:34:21 srvweb qmail: 1242552861.628431 CHKUSER accepted sender: from <pme@domaine.isp::> remote <mx.domaine.isp:unknown:192.168.0.65> rcpt <> : accepted any sender always
May 17 11:34:21 srvweb qmail: 1242552861.628509 CHKUSER accepted any rcpt: from <pme@domaine.isp::> remote <mx.domaine.isp:unknown:192.168.0.65> rcpt <postmaster@client1.caen> : accepted any recipient for any rcpt domain
May 17 11:34:21 srvweb qmail: 1242552861.637424 new msg 915883
May 17 11:34:21 srvweb qmail: 1242552861.637603 info msg 915883: bytes 1488 from <pme@domaine.isp> qp 22808 uid 64011
May 17 11:34:21 srvweb qmail: 1242552861.643530 starting delivery 183: msg 915883 to local client1.caen-postmaster@client1.caen
May 17 11:34:21 srvweb qmail: 1242552861.643648 status: local 1/10 remote 0/20
May 17 11:34:21 srvweb spamd[1482]: spamd: connection from localhost.localdomain [127.0.0.1] at port 56596
May 17 11:34:21 srvweb spamd[1482]: spamd: handle_user unable to find user: 'postmaster@client1.caen'
May 17 11:34:21 srvweb spamd[1482]: spamd: processing message <1242552955.4a0fda7ba9881@192.168.0.65> for postmaster@client1.caen:1004
May 17 11:34:23 srvweb spamd[1482]: spamd: clean message (-2.9/2.5) for postmaster@client1.caen:1004 in 2.0 seconds, 1488 bytes.
May 17 11:34:23 srvweb spamd[1482]: spamd: result: . -2 - ALL_TRUSTED,BAYES_05,HTML_MESSAGE scantime=2.0,size=1488,user=postmaster@client1.caen,uid=1004,required_score=2.5,rhost=localhost.localdomain,raddr=127.0.0.1,rport=56596,mid=<1242552955.4a0fda7ba9881@192.168.0.65>,bayes=0.024171,autolearn=ham
May 17 11:34:23 srvweb qmail: 1242552863.765111 delivery 183: success: did_0+0+1/
May 17 11:34:23 srvweb qmail: 1242552863.765346 status: local 0/10 remote 0/20
May 17 11:34:23 srvweb qmail: 1242552863.765429 end msg 915883


C'est bon.
Mise à jour le 200509: après avoir vainement tenté de jouer avec la synchro, je me suis aperçu que les fichiers nécessaires à celle-ci n'était pas dans l'archive downloadée depuis le site de group-office. Je leur ai donc écrit et voici la réponse:
Dear Patrick,

You can only sync with the pro version.

Best regards,

Merijn Schering


Voilà, je crois que c'est clair :)


Pour l'intégration d'un forum phpBB3 dans l'interface il suffit simplement d'activer le module puis de déclarer dans le fichier /var/config.php une ligne comme suit:

isp:/var# grep phpBB config.php
$config['phpbb3_url']="http://192.168.0.65/phpBB3/";


Copies d'écrans

Liens

http://www.group-office.com/
http://www.group-office.com/wiki/Main_Page
http://www.howtoforge.com/groupware-server-with-group-office-postfix-dovecot-spamassassin-on-debian-lenny