Introduction
Mailcow :
- Stack complete docker-compose : Postfix, Dovecot, Rspamd, ClamAV, SOGo (webmail + cal/cardDAV), Solr (search), Redis, MariaDB
- UI web pour gerer domaines, boites, alias, ACL
- DKIM auto-genere par domaine
- Anti-spam Rspamd preconfigure
- Quarantine et release des mails douteux
- Whitelist / blacklist par boite
- Backups simples
- DNSBL, SPF, DMARC, ARC, etc.
Si vous voulez heberger votre mail mais sans toucher Postfix/Dovecot a la main, c'est la solution.
Prerequis
- VPS Linux Debian 12 / Ubuntu 24.04
- 4 vCPU, 6 Go RAM minimum (8 Go recommande), 20 Go SSD + espace pour les mails
- IP publique avec rDNS configure
- Domaine
- Acces root
- Ports : 25, 80, 110, 143, 443, 465, 587, 993, 995, 4190 disponibles
Etape 1 : Pre-checks DNS
Configurez d'abord :
mail.verycloud.fr. A VOTRE_IP
autodiscover.verycloud.fr. CNAME mail.verycloud.fr.
autoconfig.verycloud.fr. CNAME mail.verycloud.fr.
verycloud.fr. MX 10 mail.verycloud.fr.
verycloud.fr. TXT "v=spf1 mx -all"
_dmarc.verycloud.fr. TXT "v=DMARC1; p=quarantine; rua=mailto:[email protected]"
DKIM sera ajoute apres installation.
Etape 2 : Installation Docker
sudo apt update
sudo apt install -y curl gnupg lsb-release ca-certificates
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo systemctl enable --now docker
docker --version
docker compose version
Etape 3 : Cloner Mailcow
cd /opt
sudo git clone https://github.com/mailcow/mailcow-dockerized
cd mailcow-dockerized
Etape 4 : Generer la config
sudo ./generate_config.sh
Repondez aux questions :
- Hostname :
mail.verycloud.fr - Timezone :
Europe/Paris - Branch :
master(stable)
Le script genere mailcow.conf. Editez si besoin :
sudo nano mailcow.conf
Variables interessantes :
MAILCOW_HOSTNAME=mail.verycloud.fr
HTTPS_PORT=443
HTTP_PORT=80
MAILCOW_PASS_SCHEME=BLF-CRYPT
# Skip Lets Encrypt si vous gerez vous-meme
SKIP_LETS_ENCRYPT=n
ADDITIONAL_SAN=
# Limites
DEFAULT_DKIM_KEY_LENGTH=2048
Etape 5 : Demarrer la stack
sudo docker compose pull
sudo docker compose up -d
Premier demarrage : 5-10 min. Mailcow tire ~15 images, configure tout.
Verifiez :
sudo docker compose ps
Tous les services doivent etre up.
Etape 6 : Premier acces
Visitez https://mail.verycloud.fr/.
Login defaut : admin / moohoo.
⚠️ Changez immediatement le mot de passe : Settings > Profile.
Etape 7 : Creer un domaine
UI > Mail Setup > Domains > Add domain.
Domain : verycloud.fr
Description : Mon domaine pro
Aliases : 200
Mailboxes : 20
Mailbox quota max : 5120 MB
Cliquez Add domain and restart SOGo.
Etape 8 : Recuperer le DKIM
Apres ajout du domaine, allez dans Configuration > Configuration > ARC/DKIM keys :
Vous voyez votre cle DKIM en format BIND. Copiez le record dkim._domainkey.verycloud.fr et publiez-le dans votre DNS :
dkim._domainkey.verycloud.fr. TXT "v=DKIM1; k=rsa; p=MIIBIjANBgkqhk..."
Verifiez avec :
dig dkim._domainkey.verycloud.fr TXT
Etape 9 : Creer une boite mail
UI > Mail Setup > Mailboxes > Add mailbox.
Username : mathys
Domain : verycloud.fr
Full name : Mathys
Password : XXX
Quota : 2048 MB
L'adresse [email protected] est creee.
Etape 10 : Configurer un client
Configuration auto :
- Apple Mail / iOS : Mailcow expose Apple Mobileconfig via UI > Mailboxes > Profile > QR code
- Outlook / Thunderbird : autodiscover/autoconfig actif
Configuration manuelle :
- IMAP :
mail.verycloud.fr, port 993 SSL/TLS - SMTP :
mail.verycloud.fr, port 587 STARTTLS (ou 465 SSL/TLS) - Auth : login = adresse mail complete
Etape 11 : Webmail SOGo
Inclus dans Mailcow : https://mail.verycloud.fr/SOGo/
Login avec votre adresse mail. SOGo offre :
- Webmail
- Carnet d'adresses (CardDAV)
- Calendrier (CalDAV)
- Mobile sync via EAS (ActiveSync)
Pour les utilisateurs : https://mail.verycloud.fr/ redirige vers SOGo apres login.
Etape 12 : Backups
Mailcow fournit un script :
cd /opt/mailcow-dockerized
sudo ./helper-scripts/backup_and_restore.sh backup all
Cela sauvegarde :
- Bases de donnees (MariaDB, Redis)
- Volumes Maildir (vmail)
- Volumes Rspamd, Solr
- Config DKIM
Stockage : choisissez le path lors de l'execution.
Pour automatiser :
sudo crontab -e
0 3 * * * cd /opt/mailcow-dockerized && MAILCOW_BACKUP_LOCATION=/mnt/backups ./helper-scripts/backup_and_restore.sh backup all-attr --delete-days 30
⚠️ Pensez a un offsite (rsync, rclone vers S3).
Restore :
sudo ./helper-scripts/backup_and_restore.sh restore
Depannage
"Cannot start container" au premier launch
Souvent un port 25/80/443 deja pris :
sudo ss -tunlp | grep -E ':25 |:80 |:443 |:587 '
Stoppez le service conflictuel (par exemple un Nginx local).
Mails sortants rejetes
Verifiez avec https://www.mail-tester.com :
- SPF, DKIM, DMARC OK ?
- rDNS configure ?
- IP pas blacklistee ?
sudo docker exec -it mailcowdockerized-postfix-mailcow-1 postqueue -p
Webmail SOGo timeout
sudo docker logs mailcowdockerized-sogo-mailcow-1 -f
Souvent un cache Redis corrompu. Restart :
sudo docker compose restart sogo-mailcow redis-mailcow
Disque qui se remplit
sudo du -sh /var/lib/docker/volumes/mailcowdockerized_vmail-vol-1/
Verifiez les quotas par boite. Mailcow log les overload dans UI > Logs.
Update Mailcow
cd /opt/mailcow-dockerized
sudo ./update.sh
Le script update les images, fait les migrations DB. Faites un backup avant.
Commandes utiles
# Stack
cd /opt/mailcow-dockerized
sudo docker compose ps
sudo docker compose logs -f postfix-mailcow
sudo docker compose restart
sudo docker compose pull && sudo docker compose up -d
# Update Mailcow
sudo ./update.sh -c
# Backup / restore
sudo ./helper-scripts/backup_and_restore.sh backup all
sudo ./helper-scripts/backup_and_restore.sh restore
# Reset mot de passe admin
sudo ./helper-scripts/mailcow-reset-admin.sh
# Voir les queues Postfix
sudo docker exec -it mailcowdockerized-postfix-mailcow-1 postqueue -p
sudo docker exec -it mailcowdockerized-postfix-mailcow-1 postsuper -d ALL
# Voir Rspamd stats
curl http://localhost:11334/stat | jq
# Logs combines
sudo docker compose logs -f --tail=100
Conclusion
Mailcow vous donne :
- Serveur mail complet en 30 min
- UI web pour gerer tout
- DKIM, SPF, DMARC, anti-spam preconfigures
- Webmail + cal/cardDAV inclus
- Backups simples
Limites :
- Necessite Docker
- Ressources : 6+ Go RAM mini
- Moins flexible que Postfix nu (mais c'est le but)
Pour aller plus loin :
- Combinez avec un reverse proxy externe (Caddy / Nginx) si besoin
- Migrez vos comptes existants avec imapsync
- Pour de la HA, regardez la doc Mailcow multi-instance
Ressources
- Documentation officielle : https://mailcow.github.io/mailcow-dockerized-docs/
- Github : https://github.com/mailcow/mailcow-dockerized
- Community forum : https://community.mailcow.email
- imapsync : https://imapsync.lamiral.info


















