Gérer son serveur de mail avec Mailu - Partie 2

mailu 08/09/2019

Pour faire suite à mon précédent article sur le sujet de Mailu (ici), j'aborde maintenant la seconde partie sur l'installation et la configuration (rapide) de Mailu avec Docker, donc plus d'excuses pour ne pas avoir son propre serveur !

Je pars du principe que vous avez déjà un serveur sous Linux avec une base de Debian/Ubuntu. Si ce n'est pas le cas je vous recommande les instances Cloud d'Hetzner. Il vous faudra également la couche Docker (doc d'install ici) et le docker-compose (doc d'install ici). Vous trouverez suffisament de tuto/guide d'installation sur Docker sur le net, ce n'est pas très complexe à mettre en oeuvre. Dans cet article j'ai utilisé Ubuntu 18.04 LTS.

screenshot_-2019-09-06-at-10.47.36

Préparation

Avant de se lancer dans l'installation de Mailu vous devez supprimer tout ce qui est exim4 s'il est présent (et installez wget si c'est pas déjà fait) :

apt-get autoremove --purge -y exim4 exim4-base
apt-get install -y wget

Le dossier qui va contenir Mailu sera /home/docker/mailu :

mkdir -p /home/docker/mailu

Libre à vous de choisir l'emplacement de votre dossier, d'autres solutions s'offrent à vous comme par exemple avoir ce dossier via :

  • Une partition sur un volume séparé
  • En montage d'une réplication GlusterFS

Ensuite il faudra configurer votre DNS, c'est à dire associer le sous domaine pour vos mails (où j'ai utilisé ici mail.xorhak.fr) avec l'IPv4/IPv6 de votre serveur (donc type A).

Pré-configuration

Cette étape est très simple et rapide puisque Mailu a développé une interface de configuration disponible à cette adresse : setup.mailu.io

Etape 1 (pick a flavor)

Vous avez 2 choix qui s'offre à vous :

  • Via un docker simple : compose (via docker-compose)
  • Via un docker swarm : stack (via docker stack)

C'est la méthode compose qui sera sélectionnée ici (en standalone).

Etape 2 (initial configuration)

J'ai sélectionné la configuration suivante pour mon cas (à adapter selon vos besoins) :

  • Mailu storage path : /home/docker/mailu (dossier des données)
  • Main mail domain and server display name : xorhak.fr (domaine principale)
  • Postmaster local part : admin (compte postmaster)
  • TLS certificates : letsencrypt (gestion des certificats)
  • Authentication rate limit : 10/minutes; 1000/hour (limitations d'authentification)
  • Website name : XorHak MailServer (titre du serveur)
  • Linked website url : https://mail.xorhak.fr (url du serveur)
  • Enable the admin UI : yes (activation de l'interface d'admin, sinon c'est en cli)
    • Path : /admin (chemin d'accès)

Etape 3 (pick some features)

Pour les options (pareil à adapter selon vos besoins) :

  • Enable webmail client : none
  • Enable antivirus service : no (qui peut consommer un peu de ressource)
  • Enable webdav service : yes
  • Enable fetchmail : no

Etape 4 (expose mailu to the world)

  • IPv4 listen address : 0.0.0.0
  • Subnet of the docker network : 192.168.203.0/24 (par défaut)
  • Enable IPv6 : yes
    • IPv6 listen : ::1
    • Subnet of the docker network : fd9a:12a1:6f0b:beef::/64 (par défaut)
  • Enable unbound resolver : no
  • Public hostnames : mail.xorhak.fr (assurez-vous d'avoir ce sous-domaine qui pointe vers l'IP de votre serveur)

Etape 5 (database preferences)

Vous avez le choix entre 3 bases de données, SQLite, MySQL ou PostgreSQL. J'ai préférer prendre ici un MySQL pour une bonne souplesse d'utilisation.

La configuration se fait en seulement quelques minutes (10-15 minutes) et vous aurez à la fin toutes les commandes nécessaires pour lancer le serveur Mailu. Franchement rien de plus simple.

Configuration

Etape 1 (download your configuration files)

Vous aurez directement les commandes à taper, pour mon cas :

cd /home/docker/mailu
wget https://setup.mailu.io/1.7/file/{id}/docker-compose.yml
wget https://setup.mailu.io/1.7/file/{id}/mailu.env

Etape 2 (review the configuration)

Même si normalement vous n'avez plus rien à toucher dans ces fichiers je vous recommande quand même d'y faire une revue histoire de comprendre un peu comment l'organisation est faite. D'un point de vue technique vous n'aurez pas besoin de modifier le fichier docker-compose.yml puisque toutes les variables sont dans le fichier mailu.env

Lancement

Cette étape consiste à lancer le service Mailu via docker-compose, pour ça rien de plus simple :

cd /home/docker/mailu
docker-compose -p mailu up -d

Les différentes images seront alors téléchargées pour la première fois ce qui peu prendre quelques minutes, pareil pour le lancement du service, une opération classique. Vous avez le temps de prendre un p'tit café !

Pour cette dernière étape, il restera simplement à créer le compte administrateur, celui qui va gérer toutes les adresses emails du serveur :

cd /home/docker/mailu
docker-compose -p mailu exec admin flask mailu admin admin xorhak.fr PASSWORD

Bien évidemment n'oubliez pas de remplacer les 2 derniers champs :

  • le xorhak.fr par votre propre domaine
  • le PASSWORD par le mot de passe choisi

L'accès à l'administration se fera alors sur votre domain mail (ici mail.xorhak.fr) et /admin. Le compte administrateur sera ici admin@xorhak.fr.

screenshot_-2019-09-06-at-10.46.08

Conclusion

Voilà c'est terminé ! C'est pas plus compliqué, vous n'avez donc plus d'excuses pour ne pas héberger vos mails. Le dernier article (partie 3) abordera la configuration des domaines et des comptes dans l'interface (DKIM, DMARC, ...), pas de date de sortie prévue encore. Abonnez-vous au flux RSS 😇

Tags

🌱 DJΞRFY 🚀

👨🏻‍💻 Tech Lead SRE. Like #Linux, #Apple, #Kubernetes, #Docker, #Unraid, #Traefik, #Hacking, #Chia. Member of @OpenChia Team 🌱 ¯\_(ツ)_/¯