Mise à jour du 18/12/2021.
L'installation de l'application web Roundcube ne peut être faite qu'après que vous disposiez d'un MTA (serveur de messagerie) opérationnel. Notez que si nous utilisons Postfix, Roundcube fonctionnera tout aussi bien avec d'autres types de MTA (sendmail, exim, etc.). Pour fonctionner, l'application a besoin de 3 composants :
Bien entendu, il existe une grande variété d'autres combinaisons mais nous nous limiterons à celle décrite ici. De plus, n'oubliez pas qu'en tant qu'application web PHP, Roundcube fera l'objet d'un grand nombre d'attaques. PHP est actuellement (2021), la plate-forme la plus répandue et logiquement la plus attaquée. Outre les divers mécanismes de protection comme Fail2ban, le fichier /var/lib/roundcube/.htaccess devra être observé et complété avec soin.
Pour installer l'application, il y a 2 méthodes
Le web fourmille d'indications pour l'installation depuis la première méthode. C'est celle que vous devez utiliser si vous souhaitez disposer de la dernière version.
L'inconvénient de l'approche précédente et que vous devrez suivre vous-même l'évolution en versions de l'application afin de réaliser les mises à jour. Nous préférons avoir une approche plus professionnelle. Le gestionnaire de paquets Debian permet de réaliser ces mises à jour automatiquement sur une version dont la stabilité a été sérieusement testée pour cette distribution. Si vous faites attention à ne pas écrire dans des fichiers de configuration écrasés lors de la mise à jour (les commentaires de ces fichiers l'indiquent clairement), la mise à hauteur est alors quasiment automatique.
Avant de procéder à l'installation, vous devez décider si vous laisser l'installateur créer interactivement la base PostgreSQL ou bien la créer vous-même par la suite grâce au script /usr/share/dbconfig-common/data/roundcube/install/pgsql.
Si vous laissez faire l'installateur, le compte Linux postgresne doit pas être verrouillé et le rôle de base de données postgres doit être autorisé à se connecter (droit LOGIN).
Dans tous les cas, vous devez définir le mot de passe en base de données du rôle roundcube et connaître le mot de passe du compte postgres. Sans cela, le création automatique du rôle de base de données roundcubeet la création du schéma roundcube échoueront (en cas d'échec, l'installateur propose de recommencer).
L'installation se limite alors à la frappe de la commande :
apt install roundcube roundcube-pgsql roundcube-plugins roundcube-plugins-extra
Le référencement des composants PHP nécessaires et qui ne seraient pas déjà installés le seront alors d'office. Ici nous avons laisser l'installeur créer le rôle roundcubeet la création du schéma roundcube. Nous ne décrirons donc pas l'exécution du script /usr/share/dbconfig-common/data/roundcube/install/pgsqlqui dans les faits exécute ce travail.
Nous allons agir sur certains fichiers de configuration que nous conseillons de sauvegarder avant de les modifier :
cp /etc/roundcube/config.inc.php /etc/roundcube/config.inc.php.bak cp /etc/apache2/conf-enabled/roundcube.conf /etc/apache2/conf-enabled/roundcube.conf.bak
Nous modifierons également les fichiers Apache /etc/apache2/sites-enabled/000-default.conf et /etc/apache2/sites-enabled/000-default-le-ssl.conf. Ces fichiers devraient déjà avoir été sauvegardé (2ème modification de leur configuration).
Dans le fichier /etc/apache2/sites-enabled/000-default-le-ssl.conf nous modifions le chemin d'accès du site virtuel SSL pour le faire pointer vers l'application web.
# Accès TLS au site mail.piapp.fr
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerName mail.piapp.fr
ServerAdmin admin@piapp.fr
DocumentRoot /var/lib/roundcube
LogLevel info
ErrorLog ${APACHE_LOG_DIR}/error-mail.log
CustomLog ${APACHE_LOG_DIR}/access-mail.log combined
SSLCertificateFile /etc/letsencrypt/live/mail.piapp.fr/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/mail.piapp.fr/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
</VirtualHost>
</IfModule>Dans le fichier /etc/apache2/sites-enabled/000-default.conf nous modifions le chemin d'accès du site virtuel avec transport non chiffréSL pour le faire pointer vers l'application web.
# Site mail.piapp.fr
<VirtualHost *:80>
ServerName mail.piapp.fr
ServerAdmin admin@piapp.fr
DocumentRoot /var/lib/roundcube
LogLevel info
ErrorLog ${APACHE_LOG_DIR}/error-mail.log
CustomLog ${APACHE_LOG_DIR}/access-mail.log combined
Redirect permanent / https://mail.piapp.fr
</VirtualHost>Enfin, pour en finir avec le côté Apache, il faut créer l'alias de chemin qui permet à Apache de se connecter à l'application web. Pour cela ouvrez le fichier /etc/apache2/conf-enabled/roundcube.conf :
[ligne 3] Alias /mail /var/lib/roundcube/public_html
Vous pouvez changer /mail par l'alias de chemin que vous voulez.
Si vous avez utilisé l'installateur pour créer le rôle et le schéma de la base de données, vérifiez ensuite que les paramètres du fichier /etc/roundcube/debian-db.php sont corrects. Notez le mot de passe en clair du rôle roundcube dans ce fichier. Il est donc à protéger de façon à ce que des yeux indiscrets ne prennent la main sur votre base de données. Ceci dit, si PostgreSQL est installé sur le même serveur, il suffit d'interdire l'accès depuis l'extérieur au serveur et le tour est joué.
L'essentiel de la configuration s'opère dans le fichier /etc/roundcube/config.inc.php.
[ligne 36] $config['default_host'] = 'tls://mail.piapp.fr';
[ligne 48] $config['smtp_server'] = 'localhost';
[ligne 51] $config['smtp_port'] = 465;
[ligne 63] $config['support_url'] = 'https://www.piapp.fr/{chemin spécifique au support offert à vos utilisateurs}'
[ligne 66] $config['product_name'] = 'Webmail PiApplications';Notez que les lignes 36 et 51 doivent être cohérentes. A la ligne 36 on impose le mode SUBMISSION (TLS direct sans STARTTLS), à la ligne 51 le N° de port doit correspondre à ce protocole de transport. La mention à la ligne 66 apparaît au bas des champs de saisie des paramètres de connexion.
Relancer le serveur Apache via la commande systemctl restart apache2.
Rédaction par Jean-Marie Piatte (1983-2021)