Mailhog est un outil indispensable pour intercepter les e-mails envoyés par une application en développement. Mais je n’ai pas envie de gérer manuellement son démarrage ou son arrêt, il faut qu’il soit toujours disponible au démarrage du système, surtout sur mon environnement de dev. Voici comment faire de MailHog un vrai service sous Debian 12.
📦 1. Prérequis
Vérifiez si vous disposez déjà de Mailhog sur votre Debian hors Docker (qui peut être une solution aussi) :
which mailhog |
Si ce n’est pas le cas, je vous renvoie vers mon article :
PHP / DEV WEB – Envoyer des mails sans SMTP
🎯 2. Objectif
Lancer MailHog automatiquement à chaque démarrage du système, sans intervention manuelle, comme un bon service Debian classique.
👤 3. Étape 1 : Créer un utilisateur dédié
On évite de faire tourner MailHog sous root. Créons un utilisateur système sans shell ni home :
sudo useradd --system --no-create-home --shell /usr/sbin/nologin mailhog |
⚙️ 4. Étape 2 : Créer le fichier de service systemd
Créons un fichier mailhog.service dans le dossier dédié aux services :
sudo nano /etc/systemd/system/mailhog.service |
On y colle le contenu suivant pour notre service :
[Unit] |
Description=MailHog service |
After=network.target |
|
[Service] |
|
# ou votre chemin, peut être celui via procurer par la commande go : ~/go/bin/mailhog |
ExecStart=/usr/local/bin/mailhog |
Restart=always |
User=mailhog |
Group=mailhog |
Environment="MH_API_BIND_ADDR=0.0.0.0:8025" "MH_UI_BIND_ADDR=0.0.0.0:8025" "MH_SMTP_BIND_ADDR=0.0.0.0:1025" |
|
[Install] |
WantedBy=multi-user.target |
💡 Ici, on expose :
l’interface web/API de MailHog sur :8025 |
le serveur SMTP sur :1025 |
🔁 5. Étape 3 : Activer et démarrer le service
On recharge systemd et on active le service pour qu’il se lance au boot :
sudo systemctl daemon-reexec |
sudo systemctl daemon-reload |
sudo systemctl enable mailhog |
sudo systemctl start mailhog |
✅ Étape 4 : Vérifier que ça fonctionne
Un petit check rapide pour vérifier si notre service tourne :
systemctl status mailhog |
On doit voir un statut actif.
Si besoin, voir les logs en temps réel :
|
journalctl -u mailhog -f |
🚀 Résultat
À chaque redémarrage, MailHog se lance automatiquement. On peut accéder à l’interface web sur :
Il ne reste plus qu’à configurer votre application pour envoyer les e-mails via localhost:1025. 🛡️ Bonus sécurité
En cas de besoin, vous pouvez restreindre l’accès à l’interface web si votre serveur est exposé. MailHog n’a pas de système d’authentification intégré, donc un petit ufw, un proxy NGINX avec mot de passe ou un pare-feu reste conseillé.
Commentaires
Aucun commentaire approuvé pour le moment.
Connectez-vous avec un compte commentateur pour publier un commentaire. Se connecter.