Mailcow-dockerized est une solution de messagerie complète pour Linux fonctionnant dans des containers.
Dans un précédent billet, j'évoquais l'installation de Modoboa, une alternative à Mailcow, mais après plusieurs tests, j'ai préféré cette dernière solution. Son interface permet d'administrer de votre serveur de messagerie ainsi l'administration des domaines et des utilisateurs incluant :
- le support de DKIM et ARC
- La gestion de black et whitelists par domaine et par utilisateur
- Gestion des Spam par utilisateur (reject spam, mark spam, greylist)
- Possibilité de créer des mails temporaires anti spam
- Tagger les sujets des mails ou déplacer les mails dans des répertoires
- Webmail
- Authentification à deux facteurs : Yubikey OTP, U2F USB ou TOTP
- Ajouter des domaines, des alias, des boites aux lettres, ...
- Intégration d'un Fail2ban-like
- Un système de quarantaine
- Scanne Antivirus incluant les macros des documents office
- Et bien plus encore ...
Mail-Dockerized est gratuit, mais une petite contribution serait appréciée :)
La solution utilise plusieurs containers liés par un "bridge" réseau. Chaque container contient une seule application :
- Dovecot
- ClamAV (optionnel)
- Solr (optionnel)
- Oletools via Olefy
- Memcached
- Redis
- MariaDB
- Unbound
- PHP
- Postfix
- Let's Encrypt
- Nginx
- Rspamd
- SOGo
- Netfilter (un clone de Fail2ban intégré par @mkuron)
L'un des atouts de MailCow c'est l'intégration de Rspamd et de ses tableaux de bord

Installation
Pour cette installation j'ai utilisé un VPS SSD 2 chez OVHCloud car 4Go de mémoire sont nécessaires si vous souhaitez utiliser l'antivirus et le moteur de recherche Solr pour les mails.

Les pré requis
sudo apt update
sudo apt upgrade
sudo apt install apt-transport-https ca-certificates curl software-properties-common
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable"
sudo apt update
sudo apt-cache policy docker-ce
sudo apt install docker-ce
sudo curl -L https://github.com/docker/compose/releases/download/1.25.0/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
L'installation de mailcow
cd /opt
sudo git clone https://github.com/mailcow/mailcow-dockerized
cd mailcow-dockerized
./generate_config.sh
docker-compose pull
docker-compose up -d
Attendez quelques minutes et vous pouvez vous connecter à l'adresse : https://<votre serveur>
Login: admin / Mot de passe : moohoo

Ne pas oublier vos enregistrements DNS, ci-dessous un exemple chez Gandi

Si l'interface de mailcow ne fonctionne pas, vérifiez l'état de containers :
docker-compose ps
