Installation Rainloop · 10 min read · Sep 08, 2025

Comment installer Rainloop Webmail sur Ubuntu 22.04

Rainloop est un client de messagerie open-source basé sur le web, écrit en PHP. Il est rapide, léger et prend en charge les protocoles SMTP et IMAP.

Ce guide vous apprendra à installer le client Rainloop sur un serveur Ubuntu 22.04.

Prérequis

  • Un serveur exécutant Ubuntu 22.04.
  • Un nom de domaine pointant vers le serveur. Pour notre tutoriel, nous utiliserons le domaine rainloop.example.com.
  • Un utilisateur non-root avec des privilèges sudo.
  • Assurez-vous que tout est à jour. $ sudo apt update && sudo apt upgrade
  • Installez les paquets utilitaires de base. Certains d’entre eux peuvent déjà être installés. $ sudo apt install wget curl nano unzip -y

Étape 1 - Configurer le pare-feu

La première étape avant d’installer Rainloop est de configurer le pare-feu. Vérifiez l’état du pare-feu.

$ sudo ufw status

Vous devriez voir quelque chose comme ceci.

Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere
OpenSSH (v6)               ALLOW       Anywhere (v6)

Rainloop a besoin des ports HTTP et HTTPS pour fonctionner.

$ sudo ufw allow http
$ sudo ufw allow https

Ouvrez les ports pour les comptes de messagerie que vous utilisez.

$ sudo ufw allow 587/tcp
$ sudo ufw allow 993/tcp
$ sudo ufw allow 465/tcp

Vérifiez à nouveau l’état pour confirmer.

$ sudo ufw status
Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere
80/tcp                     ALLOW       Anywhere
443                        ALLOW       Anywhere
587/tcp                    ALLOW       Anywhere
993/tcp                    ALLOW       Anywhere
465/tcp                    ALLOW       Anywhere
OpenSSH (v6)               ALLOW       Anywhere (v6)
80/tcp (v6)                ALLOW       Anywhere (v6)
443 (v6)                   ALLOW       Anywhere (v6)
587/tcp (v6)               ALLOW       Anywhere (v6)
993/tcp (v6)               ALLOW       Anywhere (v6)
465/tcp (v6)               ALLOW       Anywhere (v6)

Étape 2 - Installer Nginx

Ubuntu 22.04 est livré avec une version plus ancienne de Nginx. Pour installer la dernière version, vous devez télécharger le dépôt officiel de Nginx.

Importez la clé de signature de Nginx.

$ curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor \
| sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null

Ajoutez le dépôt pour la version stable de Nginx.

$ echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg arch=amd64] \
http://nginx.org/packages/ubuntu `lsb_release -cs` nginx" \
| sudo tee /etc/apt/sources.list.d/nginx.list

Mettez à jour les dépôts du système.

$ sudo apt update

Installez Nginx.

$ sudo apt install nginx

Vérifiez l’installation.

$ nginx -v
nginx version: nginx/1.22.0

Étape 3 - Installer et configurer PHP

Ubuntu 22.04 est livré avec PHP 8.1 par défaut. Mais pour que Rainloop fonctionne, nous devons installer PHP 8.0. La première étape consiste à ajouter le dépôt PHP d’Ondrej.

$ sudo add-apt-repository ppa:ondrej/php

Installez PHP et les extensions requises par Rainloop.

 $ sudo dnf install php8.0-fpm php8.0-curl php8.0-mbstring php8.0-mysql php8.0-xml php8.0-cli

Vérifiez l’installation.

$ php --version
PHP 8.0.20 (cli) (built: Jun 25 2022 08:12:05) ( NTS )
Copyright (c) The PHP Group
Zend Engine v4.0.20, Copyright (c) Zend Technologies
    with Zend OPcache v8.0.20, Copyright (c), by Zend Technologies

Vérifiez l’état du service PHP.

$ sudo systemctl status php8.0-fpm
? php8.0-fpm.service - The PHP 8.0 FastCGI Process Manager
     Loaded: loaded (/lib/systemd/system/php8.0-fpm.service; enabled; vendor preset: enabled)
     Active: active (running) since Mon 2022-07-04 01:52:55 UTC; 1min 22s ago
       Docs: man:php-fpm8.0(8)
    Process: 12463 ExecStartPost=/usr/lib/php/php-fpm-socket-helper install /run/php/php-fpm.sock /etc/php/8.0/fpm/pool.d/www.conf 80 (code=exited, status=0/SUCCESS)
   Main PID: 12460 (php-fpm8.0)
     Status: "Processes active: 0, idle: 2, Requests: 0, slow: 0, Traffic: 0req/sec"
      Tasks: 3 (limit: 2241)
     Memory: 8.7M
        CPU: 89ms
     CGroup: /system.slice/php8.0-fpm.service
             ??12460 "php-fpm: master process (/etc/php/8.0/fpm/php-fpm.conf)

Ouvrez le fichier php.ini pour l’éditer.

$ sudo nano /etc/php/8.0/fpm/php.ini

Changez les valeurs des variables suivantes pour définir la taille des pièces jointes à 25 Mo.

upload_max_filesize = 25M
post_max_size = 25M

Enregistrez le fichier en appuyant sur Ctrl + X et en entrant Y lorsque vous y êtes invité.

Ouvrez le fichier /etc/php/8.0/fpm/pool.d/www.conf.

$ sudo nano /etc/php/8.0/fpm/pool.d/www.conf

Trouvez les lignes user=apache et group=apache dans le fichier et changez-les comme suit.

...
; Unix user/group of processes
; Note: The user is mandatory. If the group is not set, the default user's group
;       will be used.
; RPM: apache user chosen to provide access to the same directories as httpd
user = nginx
; RPM: Keep a group allowed to write in log dir.
group = nginx
...

De plus, trouvez les lignes listen.owner = www-data et listen.group = www-data et changez-les comme suit.

...
; Set permissions for unix socket, if one is used. In Linux, read/write
; permissions must be set in order to allow connections from a web server. Many
; BSD-derived systems allow connections regardless of permissions. The owner
; and group can be specified either by name or by their numeric IDs.
; Default Values: user and group are set as the running user
;                 mode is set to 0660
listen.owner = nginx
listen.group = nginx
...

Enregistrez le fichier en appuyant sur Ctrl + X et en entrant Y lorsque vous y êtes invité.

Redémarrez le service PHP-FPM.

$ sudo systemctl restart php8.0-fpm

Étape 4 - Installer MySQL

Ubuntu 22.04 est livré avec la dernière version de MySQL. Vous pouvez l’installer avec une seule commande.

$ sudo apt install mysql-server

Vérifiez la version de MySQL.

$ mysql --version
mysql  Ver 8.0.29-0ubuntu0.22.04.2 for Linux on x86_64 ((Ubuntu))

Cette étape est nécessaire pour les versions de MySQL 8.0.28 et supérieures. Entrez dans le shell MySQL.

$ sudo mysql

Exécutez la commande suivante pour définir le mot de passe de votre utilisateur root. Assurez-vous qu’il contient un mélange de chiffres, de majuscules, de minuscules et de caractères spéciaux.

mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'YourPassword12!';

Quittez le shell.

mysql> exit

Exécutez le script d’installation sécurisée de MySQL.

$ sudo mysql_secure_installation

Tout d’abord, vous serez invité à entrer votre mot de passe root. Entrez-le. Ensuite, vous serez invité à installer le composant de validation des mots de passe. Il vérifie la force des mots de passe utilisés dans MySQL. Appuyez sur Y pour l’installer.

Ensuite, vous serez invité à définir le niveau de la politique de validation des mots de passe. Choisissez 2 car c’est le plus fort.

Ensuite, appuyez sur N pour refuser de changer votre mot de passe root. Appuyez également sur Y pour supprimer les utilisateurs anonymes, interdire les connexions root à distance, supprimer la base de données de test et recharger les tables de privilèges.

Étape 5 - Configurer MySQL

Connectez-vous au shell MySQL. Entrez votre mot de passe root lorsque vous y êtes invité.

$ sudo mysql -u root -p

Créez une base de données pour Rainloop.

mysql> CREATE DATABASE rainloop;

Créez un utilisateur SQL pour accéder à la base de données. Remplacez yourpassword par un mot de passe de votre choix.

mysql> CREATE USER 'rainuser'@'localhost' IDENTIFIED BY 'YourPassword23!';

Accordez à rainuser l’accès à la base de données.

mysql> GRANT ALL ON rainloop.* TO 'rainuser'@'localhost';

Rechargez la table des privilèges.

mysql> FLUSH PRIVILEGES;

Quittez le shell.

mysql> exit

Étape 6 - Installer Rainloop

Créez le répertoire public pour Rainloop.

$ sudo mkdir /var/www/html/rainloop -p

Téléchargez la dernière version de Rainloop.

$ wget http://www.rainloop.net/repository/webmail/rainloop-community-latest.zip

Décompressez le fichier téléchargé dans le répertoire public.

$ sudo unzip rainloop-community-latest.zip -d /var/www/html/rainloop

Changez la propriété du répertoire à Nginx.

$ sudo chown -R nginx:nginx /var/www/html/rainloop

Définissez les permissions de lecture et d’écriture requises par Rainloop.

$ sudo find /var/www/html/rainloop -type d -exec chmod 755 {} \;
$ sudo find /var/www/html/rainloop -type f -exec chmod 644 {} \;

Étape 7 - Installer SSL

Nous devons installer Certbot pour générer des certificats SSL gratuits offerts par Let’s Encrypt.

Vous pouvez soit installer Certbot en utilisant le dépôt d’Ubuntu, soit obtenir la dernière version en utilisant l’outil Snapd. Nous allons utiliser la version Snapd.

Ubuntu 22.04 est livré avec Snapd installé par défaut. Exécutez la commande suivante pour vous assurer que votre version de Snapd est à jour.

$ sudo snap install core

Installez Certbot.

$ sudo snap install --classic certbot

Utilisez la commande suivante pour vous assurer que la commande Certbot peut être exécutée en créant un lien symbolique vers le répertoire /usr/bin.

$ sudo ln -s /snap/bin/certbot /usr/bin/certbot

Générez un certificat SSL pour Rainloop.

$ sudo certbot certonly --standalone --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [email protected] -d rainloop.example.com

Générez un certificat de groupe Diffie-Hellman.

$ sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 4096

Ouvrez le fichier /etc/letsencrypt/renewal/rainloop.example.com.conf pour l’éditer.

$ sudo nano /etc/letsencrypt/renewal/rainloop.example.com.conf

Collez le code suivant en bas.

pre_hook = systemctl stop nginx
post_hook = systemctl start nginx

Enregistrez le fichier en appuyant sur Ctrl + X et en entrant Y lorsque vous y êtes invité.

Nous avons généré le certificat SSL en utilisant l’option autonome de Certbot. Cela signifie que Nginx doit être arrêté pendant le renouvellement. Les commandes pre_hook et post_hook s’exécutent avant et après le renouvellement pour arrêter et redémarrer automatiquement le serveur Nginx, nécessitant ainsi aucune intervention manuelle.

Pour vérifier si le renouvellement SSL fonctionne correctement, effectuez un essai du processus.

$ sudo certbot renew --dry-run

Si vous ne voyez aucune erreur, vous êtes prêt. Votre certificat se renouvellera automatiquement.

Étape 8 - Configurer Nginx

Ouvrez le fichier nginx.conf pour l’éditer.

$ sudo nano /etc/nginx/nginx.conf

Trouvez la ligne include /etc/nginx/conf.d/*.conf; et collez le code suivant en dessous.

server_names_hash_bucket_size  64;

Enregistrez le fichier en appuyant sur Ctrl + X et en entrant Y lorsque vous y êtes invité.

Créez le fichier de configuration Rainloop pour Nginx et ouvrez-le pour l’éditer.

$ sudo nano /etc/nginx/conf.d/rainloop.conf

Collez le code suivant dedans.

server {

    listen 443 ssl http2;
    listen [::]:443 ssl http2;

    server_name rainloop.example.com;
    root /var/www/html/rainloop;

    index index.php;
    client_max_body_size 25M;

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

    ssl_certificate      /etc/letsencrypt/live/rainloop.example.com/fullchain.pem;
    ssl_certificate_key  /etc/letsencrypt/live/rainloop.example.com/privkey.pem;
    ssl_trusted_certificate /etc/letsencrypt/live/rainloop.example.com/chain.pem;
    
    ssl_session_timeout  5m;
    ssl_session_cache shared:MozSSL:10m;
    ssl_session_tickets off;
    
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_prefer_server_ciphers on;
    ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
    ssl_ecdh_curve X25519:prime256v1:secp384r1:secp521r1;
    ssl_stapling on;
    ssl_stapling_verify on;
    ssl_dhparam /etc/ssl/certs/dhparam.pem;

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

    location ~ \.php$ {
        fastcgi_index index.php;
        fastcgi_split_path_info ^(.+\.php)(.*)$;
        fastcgi_keep_conn on;
        include fastcgi_params;
        fastcgi_pass unix:/run/php/php8.0-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }

    location ~ \.ht {
        deny all;
    }

    location ^~ /data {
        deny all;
    }
}
# enforce HTTPS
server {
    listen 80;
    listen [::]:80;
    server_name  rainloop.example.com;
    return 301   https://$host$request_uri;
}

Enregistrez le fichier en appuyant sur Ctrl + X et en entrant Y lorsque vous y êtes invité.

Vérifiez la syntaxe de la configuration Nginx.

$ sudo nginx -t

Redémarrez le service Nginx.

$ sudo systemctl restart nginx

Étape 9 - Configurer et accéder à Rainloop

Ouvrez la page d’administration de Rainloop via l’URL https://rainloop.example.com/?admin et vous obtiendrez l’écran de connexion suivant.

Connexion Administrateur Rainloop

Entrez les identifiants suivants et appuyez sur entrer pour vous connecter.

Nom d'utilisateur: admin
Mot de passe: 12345

Le tableau de bord administrateur de Rainloop s’ouvrira avec un avertissement pour changer votre mot de passe par défaut.

Avertissement de Mot de Passe Administrateur Rainloop

Changez le mot de passe par défaut en utilisant le lien dans le tableau de bord.

Écran de Changement de Mot de Passe Rainloop

Entrez votre nouveau mot de passe et cliquez sur le bouton Mettre à jour le mot de passe pour continuer.

Rainloop utilise MySQL pour stocker les informations de contact. Ouvrez la page Contacts et sélectionnez MySQL dans le menu déroulant.

Page Contacts Rainloop

Entrez les identifiants de la base de données créés précédemment.

Détails MySQL Rainloop

Appuyez sur le bouton Tester pour vérifier la connexion et installer les tables. Si le bouton devient vert, cela signifie que la connexion est réussie.

Vous pouvez commencer à utiliser Rainloop en ajoutant vos comptes de messagerie.

Conclusion

Vous avez installé Rainloop avec succès sur un serveur Ubuntu 22.04. Si vous avez des questions, postez-les dans les commentaires ci-dessous.

Share: X/Twitter LinkedIn

Recevez de nouveaux articles dans votre boîte de réception.

Aucun spam. Désabonnez-vous à tout moment.