Roundcube est un webmail, une interface web pour consulter le courrier électronique. Le monde de l’Open Source offre une série de solutions dans ce domaine, du webmail simple jusqu’à l’interface intégrée dans un groupware. Roundcube fait partie des webmails simples qui obéissent au fameux principe KISS (Keep It Simple Stupid). Son installation n’est pas trop compliquée, et dans mon expérience, même les utilisateurs frileux face à l’outil informatique ont vite fait de l’apprivoiser au vu de son ergonomie intuitive.
Depuis la version 1.4, Roundcube a intégré le thème responsive elastic
et devient ainsi utilisable sur les smartphones.
- Prérequis
- Configuration de SELinux
- Configuration de l’hôte virtuel
- Configuration de PHP
- Téléchargement
- Installation
- Configuration
- Première connexion
- Mise à jour
Prérequis
- un domaine valide, par exemple
mail.slackbox.fr
- un certificat SSL/TLS pour ce domaine
- un serveur LAMP fonctionnel
- un serveur mail fonctionnel
- SELinux activé en mode strict
Configuration de SELinux
Étant donné que nous installons Roundcube en-dessous de /var/www
, tous les fichiers nouvellement créés seront correctement étiquetés httpd_sys_content_t
. Rien à signaler de ce côté-là.
Roundcube doit pouvoir envoyer des mails via Postfix, ce qu’il faut explicitement autoriser.
$ sudo setsebool -P httpd_can_sendmail on
Apache possède les droits d’écriture sur les répertoires temp/
et logs/
de l’arborescence /var/www/slackbox-mail/html
. Ces droits d’écriture seront définis par le biais des permissions Unix classiques, mais il faut également le spécifier du côté de SELinux.
$ sudo setsebool -P httpd_unified on
Configuration de l’hôte virtuel
La documentation officielle est quelque peu laconique sur ce sujet. Roundcube doit pouvoir gérer sa configuration par une série de fichiers .htaccess
, ce qu’il faudra autoriser en conséquence.
Roundcube utilise les iframes (inline frames) pour l’affichage des messages. Lors de mes premiers tests, j’ai eu quelques blocages mystérieux dus à une configuration trop restrictive de l’en-tête
X-Frame-Options
sur mon serveur.
Voici la configuration que j’utilise sur ma machine de test.
# /etc/httpd/conf.d/10-mail.slackbox.fr-ssl.conf # http://mail.slackbox.fr -> https://mail.slackbox.fr <VirtualHost *:80> ServerName mail.slackbox.fr Redirect / https://mail.slackbox.fr </VirtualHost> # https://mail.slackbox.fr <VirtualHost _default_:443> Header always set X-Frame-Options "SAMEORIGIN" ServerAdmin info@microlinux.fr DocumentRoot "/var/www/slackbox-mail/html" <Directory "/var/www/slackbox-mail/html"> Options +FollowSymlinks AllowOverride All </Directory> ServerName mail.slackbox.fr:443 ServerAlias slackbox.fr SSLEngine on SSLCertificateFile /etc/letsencrypt/live/sd-100246.dedibox.fr/cert.pem SSLCertificateKeyFile /etc/letsencrypt/live/sd-100246.dedibox.fr/privkey.pem SSLCertificateChainFile /etc/letsencrypt/live/sd-100246.dedibox.fr/fullchain.pem BrowserMatch "MSIE [2-5]" \ nokeepalive ssl-unclean-shutdown \ downgrade-1.0 force-response-1.0 ErrorLog logs/mail.slackbox.fr-error_log CustomLog logs/mail.slackbox.fr-access_log common </VirtualHost>
Configuration de PHP
En théorie, Roundcube fonctionne très bien avec la version PHP 5.4 officielle fournie par Red Hat Enterprise Linux et CentOS, supportée jusqu’en juin 2024. En pratique, j’utilise PHP 7.2 en provenance des Red Hat Software Collections sur cette machine.
Voici la liste des paquets requis pour une installation fonctionnelle de Roundcube.
rh-php72
rh-php72-php-fpm
rh-php72-php-mysqlnd
rh-php72-php-mbstring
rh-php72-php-intl
rh-php72-php-gd
sclo-php72-php-pecl-imagick
Rien de particulier à signaler du côté de php.ini
. Veillez juste à renseigner correctement le fuseau horaire du serveur dans la variable date.timezone
, faute de quoi l’assistant d’installation de Roundcube vous affichera un avertissement.
[Date] ; Defines the default timezone used by the date functions ; ; http://php.net/date.timezone date.timezone = Europe/Paris
Téléchargement
Créer un répertoire de téléchargement approprié pour ranger Roundcube.
$ mkdir -p ~/webapps/roundcube
Télécharger Roundcube.
$ cd ~/webapps/roundcube/ $ links https://roundcube.net
Suivre le lien Download > Stable version – 1.4.5 > Complete et télécharger le fichier roundcubemail-1.4.5-complete.tar.gz
.
Installation
Créer la base de données.
$ mysql -u root -p Enter password: ******** Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 5 Server version: 5.5.52-MariaDB MariaDB Server MariaDB [(none)]> create database `slackbox-roundcube`; Query OK, 1 row affected (0.02 sec) MariaDB [(none)]> grant all on `slackbox-roundcube`.* -> to slackboxuser@localhost -> identified by '********'; Query OK, 0 rows affected (0.00 sec) MariaDB [(none)]> flush privileges; Query OK, 0 rows affected (0.00 sec) MariaDB [(none)]> quit; Bye
L’hôte virtuel se situera dans /var/www/slackbox-mail/html
. Créer le répertoire parent, décompresser l’archive téléchargée à l’intérieur de ce répertoire et renommer le répertoire roundcubemail-1.4.5
résultant en html
.
$ cd /var/www/ $ sudo mkdir slackbox-mail $ sudo chown microlinux:microlinux slackbox-mail $ cd slackbox-mail/ $ tar -xzf ~/webapps/roundcube/roundcubemail-1.4.5-complete.tar.gz $ ls roundcubemail-1.4.5 $ mv roundcubemail-1.4.5/ html
Configuration
À présent on peut ouvrir l’assistant d’installation dans un navigateur web. Il est accessible via le sous-répertoire installer/
de Roundcube.
L’assistant d’installation est organisé en trois pages successives.
- Check environment permet de tester les prérequis, notamment PHP.
- Create config permet de créer la configuration à proprement parler.
- Test config permet de tester cette configuration.
Sur la première page, on pourra vérifier la présence des prérequis de PHP dont on a effectivement besoin. Ne vous tracassez donc pas si votre installation pour une TPE locale ne supporte pas les bases Oracle.
Cliquez sur Next une fois que tout semble correct.
La deuxième page de l’assistant de configuration propose une longue liste de paramètres de configuration, avec une série de valeurs par défaut. Je ne vais pas tous les passer en revue, vous avez la documentation officielle pour ça. Je mentionnerai uniquement les valeurs que je modifie par rapport à la configuration proposée par défaut.
product_name
: Slackbox Webmail (le nom de votre webmail)support_url
:https://www.slackbox.fr
(votre site principal)enable_spellcheck
: décochez cette optionidentities_level
: one identity with possibility to edit all params
Renseignez les paramètres de connexion à la base MySQL et passez à la suite.
smtp_port
: 25language
: fr_FR
Cette configuration initiale mérite quelques remarques.
- Indiquez votre propre site pour
support_url
. Les développeurs Roundcube sont excédés par les demandes de support des simples utilisateurs de Roundcube. - Le correcteur d’orthographe configuré par défaut utilise le service correspondant de Google. Autrement dit, le contenu de vos messages est envoyé à Google pour la vérification orthographique. Ce n’est donc pas une mauvaise idée de désactiver cette fonctionnalité hautement intrusive pour la remplacer par le correcteur orthographique intégré à votre navigateur.
- La langue de l’interface est censée être auto-détectée, mais dans la pratique quotidienne il vaut mieux définir explicitement le français, faute de quoi vous vous retrouvez avec des menus de navigation en anglais.
Cliquez sur Create Config tout en bas de la page pour afficher la suite.
Étant donné que mes permissions sont assez restrictives, le serveur n’a pas les droits d’écriture sur l’arborescence de l’installation. Je dois donc copier la configuration générée et la coller vers un fichier config/config.inc.php
.
Une fois que le fichier config.inc.php
est en place, cliquez sur Continue pour passer à la suite.
Roundcube doit pouvoir écrire dans les répertoires temp/
et logs/
de l’installation. On va donc rectifier les permissions en conséquence.
$ sudo chown microlinux:apache temp/ logs/ $ chmod 0770 temp/ logs/ $ ls -ld temp/ logs drwxrwx---. 2 microlinux apache 4096 Dec 6 15:33 logs drwxrwx---. 2 microlinux apache 4096 Dec 6 15:33 temp/
Quant à la base de données, il suffit de cliquer sur Initialize database pour l’initialiser.
Un peu plus bas sur la page, nous avons la possibilité de tester la connexion de Roundcube au serveur mail.
- Renseignez les paramètres de connexion SMTP pour envoyer un mail de test.
- Une fois que c’est bon, procédez de même pour la connexion IMAP.
L’installation arrive à son terme. Il ne nous reste plus qu’à supprimer l’assistant d’installation, dont la présence constitue un risque de sécurité pour notre webmail.
$ rm -rf installer/
Première connexion
Rendez-vous sur la page de connexion de Roundcube et fournissez vos paramètres de connexion.
Dans la configuration par défaut, l’identité des utilisateurs n’est pas renseignée correctement.
Ici, il faut se rendre dans Paramètres > Identité et renseigner correctement l’identité de l’utilisateur.
Roundcube est désormais prêt à l’emploi. Voici à quoi ça ressemble sur mon serveur de production avec ma propre boîte mail.
Mise à jour
La procédure de mise à jour de Roundcube est considérablement simplifiée par un petit script shell installto.sh
que l’on trouve dans le répertoire bin/
de l’installation.
- Télécharger la nouvelle version de Roundcube.
- Décompresser l’archive.
- Lancer le script
bin/installto.sh
en fournissant la cible de l’installation comme argument.
Dans l’exemple suivant, j’effectue une mise à jour de Roundcube 1.4rc1 vers la version 1.4.5.
$ cd webapps/roundcube/ $ tar -xzf roundcubemail-1.4.5-complete.tar.gz $ cd roundcubemail-1.4.5/bin/ $ ./installto.sh /var/www/slackbox-mail/html Upgrading from 1.4-rc1. Do you want to continue? (y/N) y ... Executing database schema update. Updating database schema (2019092900)... [OK] ... This instance of Roundcube is up-to-date. Have fun! All done. $ cd ../.. $ rm -rf roundcubemail-1.4.5
La rédaction de cette documentation demande du temps et des quantités significatives de café espresso. Vous appréciez ce blog ? Offrez un café au rédacteur en cliquant sur la tasse.