Roundcube

Updated 12 Mai 2021

Roundcube

Introduction

Roundcube est un client de messagerie électronique de type Web écrit en PHP et utilisant JavaScript, CSS, HTML et AJAX. Il peut être installé sur quasiment n'importe quel serveur équipé de la version 5.4.0 ou supérieure de PHP, et exploiter des bases de données MySQL, PostgreSQL, SQLite, MSSQL ou Oracle. Il prend en charge les fonctionnalités de messagerie IMAP et SMTP.

Préparer un conteneur LXC

Nous conseillons d'installer Roundcube dans un conteneur dédié, le configurant comme décrit dans le manuel.

Installer et configurer Nginx

Installez et configurez un serveur web Nginx, puis configurez PHP-FPM comme expliqué dans le manuel.

Configurez Nginx pour Roundcube. Indiquez roundcube.example.org comme adresse :

/etc/nginx/sites-enabled/roundcube.example.org.conf
upstream php-handler {
    server unix:/run/php-fpm.socket;
}

server {
    listen 80;
    server_name roundcube.example.org;
    root /var/calculate/www/roundcube/roundcubemail-latest;
    index index.php index.html index.htm;

    error_log /var/log/nginx/roundcube.error;
    access_log /var/log/nginx/roundcube.access;

    location / {
        try_files $uri $uri/ /index.php;
    }

    location ~ ^/(README|INSTALL|LICENSE|CHANGELOG|UPGRADING)$ {
        deny all;
    }
    location ~ ^/(bin|SQL)/ {
        deny all;
    }

    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_pass php-handler;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include /etc/nginx/fastcgi.conf;
    }
}

Installation et configuration de PostgreSQL

Installez et configurez PostgreSQL comme indiqué dans le manuel, y compris l'authentification par mot de passe. Pour ce faire, vous devez créer l'utilisateur roundcube et la base de données roundcubemail.

Installation et configuration

Configurez l'utilisateur roundcube créé pour PostgreSQL :

mkdir /var/calculate/www

useradd -m -s /sbin/nologin -d /var/calculate/www/roundcube roundcube

Installer Roundcube

Installez Roundcube sur votre serveur web :

su - -s /bin/bash roundcube

mkdir versions

VERSION=$(curl -s https://api.github.com/repos/roundcube/roundcubemail/releases/latest | grep tag_name | cut -d '"' -f 4) && echo "Latest RoundCube version is $VERSION"

wget "https://github.com/roundcube/roundcubemail/releases/download/${VERSION}/roundcubemail-${VERSION}-complete.tar.gz" -P versions

tar xf versions/roundcubemail-${VERSION}-complete.tar.gz -C versions

rm versions/roundcubemail-${VERSION}-complete.tar.gz

ln -s versions/roundcubemail-${VERSION} ./roundcubemail-latest

exit

chown -R nginx. /var/calculate/www/roundcube/roundcubemail-latest/{temp,logs}

Configurer via l'interface Web

Pour configurer via l'interface Web, ouvrez http://roundcube.org/installer~~ dans votre navigateur Web et finalisez la configuration de Roundcube :

Mise en place de Roundcube

Saisissez les paramètres de connexion pour le serveur de messagerie et la base de données :

Configurer le serveur de messagerie Roundcube et la connexion à la base de données

Sauvegardez le fichier de configuration résultant en cliquant sur Save in /tmp :

Configuration de Roundcube

Copiez les réglages dans /var/calculate/www/example.org/roundcube/config:

cp /tmp/config.inc.php /var/calculate/www/roundcube/roundcubemail-latest/config/config.inc.php

chown roundcube. /var/calculate/www/roundcube/roundcubemail-latest/config/config.inc.php

Une fois l'installation de Roundcube terminée, dont l'initialisation de la base de données, supprimez le dossier /var/calculate/www/roundcube/roundcubemail-latest/installer/, qui contient des paramètres de serveur confidentiels :

rm -rf /var/calculate/www/roundcube/roundcubemail-latest/installer

Ouvrez http://example.org/roundcube/ dans votre navigateur Web. Pour vous authentifier sur Roundcube, utilisez l'identifiant et le mot de passe de votre serveur de messagerie :

Authentification Roundcube

Configuration HTTPS

Getting Let's Encrypt certificate](lets_encrypt#poluchenie_sertifikata_dlia_ngnix)

Procurez-vous le certificat de domaine utilisable par Nginx pour roundcube.example.org, en suivant les instructions du manuel.

Activer la prise en charge de HTTPS sous Nginx

Configurez Nginx pour assurer la prise en charge de HTTPS, comme expliqué dans le manuel.

Configuration HTTPS pour Roundcube

Configurez le service Nginx pour le nom de domaine roundcube.example.org :

/etc/nginx/sites-enabled/roundcube.example.org.conf
upstream php-handler {
    server unix:/run/php-fpm.socket;
}

server {
    listen 80;
    server_name roundcube.example.org;
    rewrite ^ https://$server_name$request_uri? permanent;
}

server {
    listen 443 ssl http2;
    ssl_certificate /etc/letsencrypt/live/roundcube.example.org/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/roundcube.example.org/privkey.pem;
    include ssl.conf;

    server_name roundcube.example.org;
    root /var/calculate/www/roundcube/roundcubemail-latest;
    index index.php index.html index.htm;

    error_log /var/log/nginx/roundcube.error;
    access_log /var/log/nginx/roundcube.access;

    location / {
        try_files $uri $uri/ /index.php;
    }

    location ~ ^/(README|INSTALL|LICENSE|CHANGELOG|UPGRADING)$ {
        deny all;
    }
    location ~ ^/(bin|SQL)/ {
        deny all;
    }

    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_pass php-handler;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include /etc/nginx/fastcgi.conf;
    }
}

Conclusion

Félicitations, votre Roundcube est opérationnel ! Pour installer et configurer les plug-ins, reportez-vous à la rubrique Travailler avec Roundcube.