Si vous êtes utilisateur d’un NAS Synology, et si héberger votre propre serveur de mail vous est familier, vous avez certainement un usage régulier du client mail par défaut de Synology, qui n’est autre qu’un Roundcube (on laissera de côté MailPlus, la nouvelle solution payante du constructeur).
Ce dernier est disponible via un paquet fourni par défaut, mais sa lenteur et la lourdeur de l’interface qui n’est toujours pas responsive rendent son utilisation particulièrement fastidieuse.
A force de recherche, je me suis décidé à tester RainLoop, l’un des rares clients open-source (un choix récent d’ailleurs) et moderne, qui possède au moins cette caractéristique d’avoir une version mobile ,à défaut d’une version vraiment responsive, une interface claire et personnalisable, l’administration de plusieurs types de comptes, et surtout, une installation rapide !
[rl_gallery id= »1439″]
PREREQUIS
- Un serveur Synology
- Le paquet Mail Server installé et configuré
- SSH activé
- Le paquet WebStation installé et le site web personnel activé
PHP 7.0 installé
INSTALLATION
Pour commencer, connectons-nous en SSH à votre serveur
[snippet slug=rainloop-sudo lang=bash]
Créons un dossier dans /web, puis récupérons l’ensemble de Rainloop depuis le serveur
[snippet slug=get-rainloop lang=bash]
On accorde les droits d’accès en écriture / lecture demandés par RainLoop (Attention, sur Synology, le user www-data est en fait http)
[snippet slug=ecriture-lecture lang=bash]
Puis on définit le propriétaire récursivement :
[snippet slug=rainloop-proprietaire lang=bash]
CONFIGURATION DU SERVEUR WEB
Afin de charger l’ensemble des extensions nécessaires au bon fonctionnement de Rainloop, rendez-vous dans Web Station, puis dans l’onglet « Paramètres PHP ».
Vous pouvez soit créer une configuration spécifique pour Rainlop, soit faire vos modifications dans le profil PHP 7 déjà existant.
Dans la partie Extensions, veillez à ce que les extensions cURL, iconv, imap, openssl et ssh2 soient bien cochées. Si vous souhaitez utiliser CARDDAV (pour synchroniser votre carnet d’adresse), cochez également les extensions pdo_mysql et/ou pdo_pgsql et/ou pdo_sqlite. (Merci MichelhH pour l’apport concernant les extensions !)
REDIRECTION VIA VIRTUAL HOST
En bonus, on peut facilement créer un Virtual Host afin d’accéder au webmail par l’URL de son choix. Dans un premier temps, vous devez déclarer ce sous-domaine dans la zone DNS de votre fournisseur de nom de domaine (ou registrar) et effectuer une redirection CNAME vers le domaine pointant sur votre NAS Synology
Dans Web Station, onglet Virtual Host, cliquer sur Créer puis entrer le nom de domaine souhaité dans le champ « Nom d’hôte ».
Les ports par défaut (80/443) devraient convenir (sauf en cas de configuration particulière).
Dans le champ « Racine du document », cliquer sur « Parcourir », puis sélectionner le dossier de RainLoop dans le dossier web.
Activez le HSTS et le HTTP/2, et sélectionnez Nginx en serveur web, ainsi que le profil PHP, soit 5.6 soit 7.0, selon votre configuration. A noter que RainLoop supporte depuis un moment PHP 7.0, et que vous pouvez également choisir de partir sur Apache pour le serveur Web sans souci.
On redémarre WebStation
[snippet slug=restart-webstation lang=bash]
Terminer la commande par Contrôle C (ou Cmd C), un bug empêchant SSH de vous redonner la main…
Sécuriser votre installation
Commençons par créer un certificat SSL, le plus simple étant un certificat Let’s Encrypt via la procédure automatique proposée par Synology (Panneau de configuration / Sécurité / Certificat).
Une fois le certificat créé, configurez-le sur votre sous-domaine (je cherche encore une solution pour la redirection forcée en connexion SSL, si jamais quelqu’un a une idée…).
Il va maintenant falloir protéger le dossier /data, mais Synology ne faisant pas les choses simplement, il va falloir contourner la mise à zéro du fichier de config de nginx à chaque démarrage.
Pour cela, rendez-vous dans le fichier /etc/nginx/app.d/server.webstation-vhost.conf (en utilisant nano si installé, ou vi). Vous devriez trouver une ligne concernant votre virtual host, se présentant comme ceci :
[snippet slug=rainloop-nginxvhost lang=bash]
La partie qui nous intéresse est l’include, nous indiquant où se trouve le fichier que nous allons pouvoir modifier pour personnaliser notre instance de nginx.
Rendons-nous dans ce dossier, puis créons le fichier user.conf dans lequel nous ajouterons de quoi protéger nos dossiers (en n’oubliant pas de personnaliser le nom du dossier en fonction de ce que vous obtenez dans votre fichier de configuration plus haut) :
[snippet slug=rainloop-nginx-protect-data lang=bash]
Puis on redémarre nginx
[snippet slug=restart-nginx lang=bash]
Voici RainLoop déployé, il s’agit maintenant de le configurer !
On se rend sur l’URL d’administration en passant par https://mon-domaine.tld/?admin
Les identifiants par défaut sont admin / 12345. Vous êtes invités dès la première connexion à les changer tous les deux 😉
Pour la configuration du serveur mail, référez-vous à la configuration de votre serveur mail (un petit coup de pouce ?)
IMAP
- localhost
- Port 143
- Sécurité : aucun
SMTP
- localhost
- 25
- Sécurité : aucun
Le panneau de configuration est très complet, et propose une multitude d’options (double authentification, connexion aux réseaux sociaux…) et installation d’extensions. A vous de le personnaliser comme bon vous semble !
Retrouvez la documentation officielle de RainLoop : https://www.rainloop.net/docs/
2 Réponses à Installer et configurer RainLoop sur Synology
Bonjour,
Avant tout, merci pour ton travail !
Néanmoins je souhaiterais apporter quelques constatations :
– d’avoir lancé la commande de redémarrage du syno [synoservicecfg –restart pkgctl-WebStation] a cassé DSM. Pas trop grave en ce qui me concerne puisque je teste le machin que je viens de m’offrir. J’ai réinstallé le système et recommencé l’installation de RainLoop sauf que j’ai préféré redémarrer le nas en passant par son interface. là, plus de problème.
– pour que le test IMAP et SMTP soit positif, il a fallu aussi que je coche les extensions : iconv, ssh2, imap et openssh (j’ai créé une config PHP7 propre à RainLoop)
– j’ai pu trouver que si l’on souhaite CARDDAV, il fallait aussi les extensions pdo_mysql et/ou pdo_pgsql et/ou pdo_sqlite. J’ai lancé le test sur sqlite, c’est OK pour moi.
Par contre, je n’arrive toujours pas à me logger sur RainLoop en utilisant id et mdp qui sont les mêmes que ceux qui me permettent de me connecter au syno : aurais-tu une piste ?
Encore merci et au passage, beau petit blog, propre, clair et moderne !
M
PS : je suis un gros noob !
Hello Michel,
Merci pour ton retour !
– Pour ce qui est du redémarrage du WebStation, effectivement j’ai parfois une absence de réaction avec la commande synoservice –restart pkgctl-WebStation en SSH, mais en tuant la tâche (Crtl+C) je reviens à un comportement normal (Et Webstation redémarre normalement), c’est la commande . Tu es en quelle version de DSM ?
– Noté pour les extensions : n’ayant pas fait une config spécifique à Rainloop, je les avais activées notamment pour Nextcloud, je rajoute ça dans le tuto, merci !!
– Pour ce qui est du log à Rainloop, est-ce que tu as bien accordé les droits au serveur de messagerie au user ?
Si tu testes en faisant une config localhost, tu as toujours le même problème ? (Avec les ports 143 et 25)
Bon courage, tiens-nous au courant 🙂
Installer Nextcloud sur son NAS Synology en une poignée de minutes ! (Sur DSM 6)
Résoudre l’erreur PHP 7 depuis la console sur Synology pour pouvoir mettre à jour Nextcloud
Déployer Xpenology sur Proxmox (et ajouter les disques en passthrough)
Installer Vaultwarden sur Synology (DSM7) via Docker
Déployer Xpenology sur Proxmox (et ajouter les disques en passthrough)
Activer le copier / coller sur la console d’une machine virtuelle VMware ESXI
Installer Vaultwarden sur Synology (DSM7) via Docker
WordPress : attribuer les bonnes permissions aux dossiers et aux fichiers