Installation Mailtrain · 8 min read · Sep 30, 2025

Comment installer le logiciel de newsletter Mailtrain sur Ubuntu 18.04

Mailtrain est une application de newsletter gratuite, open-source et auto-hébergée construite à partir de Node.js qui prend en charge les bases de données MySQL/MariaDB. Mailtrain vous permet d’ajouter des abonnés manuellement, via l’API, ou d’importer à partir d’un fichier CSV. Mailtrain est livré avec un ensemble riche de fonctionnalités, y compris des éditeurs de modèles, l’automatisation, des champs personnalisés, des campagnes RSS, un éditeur de code HTML et bien plus encore. Si vous avez une longue liste d’abonnés et que vous souhaitez la gérer facilement, alors Mailtrain est le meilleur choix pour vous.

Dans ce tutoriel, nous allons vous montrer comment installer l’application de newsletter Mailtrain avec Docker sur un serveur Ubuntu 18.04.

Exigences

  • Un serveur exécutant Ubuntu 18.04.
  • Un nom de domaine valide pointé avec l’IP de votre serveur.
  • Un mot de passe root configuré sur votre serveur.

Prise en main

Avant de commencer, vous devrez mettre à jour votre système avec la dernière version. Vous pouvez le faire en exécutant la commande suivante :

apt-get update -y  
apt-get upgrade -y

Ensuite, redémarrez votre système pour appliquer les modifications.

Installer Docker et Docker Compose

Par défaut, la dernière version de Docker n’est pas disponible dans le dépôt par défaut d’Ubuntu 18.04. Vous devrez donc ajouter le dépôt Docker à votre système.

Tout d’abord, installez les paquets requis avec la commande suivante :

apt-get install curl git apt-transport-https ca-certificates -y

Ensuite, téléchargez et ajoutez la clé PGP de Docker avec la commande suivante :

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add -

Ensuite, ajoutez le dépôt Docker CE en modifiant le fichier /etc/apt/sources.list :

nano /etc/apt/sources.list

Ajoutez la ligne suivante à la fin du fichier :

deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable

Enregistrez et fermez le fichier lorsque vous avez terminé. Ensuite, mettez à jour le dépôt et installez Docker CE avec les commandes suivantes :

apt-get update -y  
apt-get install docker-ce -y

Une fois l’installation terminée avec succès, vous pouvez vérifier l’état du service Docker avec la commande suivante :

systemctl status docker

Vous devriez voir la sortie suivante :

Docker Application Container Engine
   Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
   Active: active (running) since Thu 2019-10-24 16:15:25 UTC; 21min ago
     Docs: https://docs.docker.com
 Main PID: 1402 (dockerd)
    Tasks: 45
   CGroup: /system.slice/docker.service
           ?? 1402 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
           ??10312 /usr/bin/docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 3000 -container-ip 172.18.0.4 -container-port 3000

Oct 24 16:23:04 ubuntu1804 dockerd[1402]: time="2019-10-24T16:23:04.817021656Z" level=info msg="Layer sha256:b875b006eb8ffb0434ce3a26cb04c9017c
Oct 24 16:24:09 ubuntu1804 dockerd[1402]: time="2019-10-24T16:24:09.879265134Z" level=info msg="ignoring event" module=libcontainerd namespace=
Oct 24 16:24:10 ubuntu1804 dockerd[1402]: time="2019-10-24T16:24:10.065610315Z" level=warning msg="20676b10252b4a484e32a7d7534b3b386cc2a1e5efd1
Oct 24 16:25:52 ubuntu1804 dockerd[1402]: time="2019-10-24T16:25:52.649551513Z" level=info msg="Layer sha256:903ab9000f0a93e49537d5d00c5c8a8cab
Oct 24 16:26:47 ubuntu1804 dockerd[1402]: time="2019-10-24T16:26:47.428865652Z" level=info msg="Layer sha256:903ab9000f0a93e49537d5d00c5c8a8cab
Oct 24 16:27:41 ubuntu1804 dockerd[1402]: time="2019-10-24T16:27:41.603287585Z" level=info msg="Layer sha256:903ab9000f0a93e49537d5d00c5c8a8cab

Ensuite, installez la dernière version de docker compose avec la commande pip comme indiqué ci-dessous :

apt-get install python-pip  
apt-get install docker-compose

Une fois l’installation terminée, vous pouvez passer à l’étape suivante.

Installer Mailtrain avec Docker

Tout d’abord, téléchargez la dernière version de Mailtrain depuis le dépôt Git avec la commande suivante :

git clone git://github.com/Mailtrain-org/mailtrain.git

Ensuite, changez de répertoire vers mailtrain et renommez le fichier docker-compose par défaut :

cd mailtrain  
mv docker-compose.override.yml.tmpl docker-compose.override.yml

Ensuite, démarrez les conteneurs Docker Mailtrain avec la commande suivante :

docker-compose up -d

Cette commande téléchargera et démarrera les conteneurs mailtrain, mysql et redis comme indiqué ci-dessous :

Creating network "mailtrain_default" with the default driver
Creating volume "mailtrain_mailtrain-node-config" with default driver
Creating volume "mailtrain_mailtrain-node-data" with default driver
Creating volume "mailtrain_mailtrain-redis-data" with default driver
Creating volume "mailtrain_mailtrain-node-reports" with default driver
Creating volume "mailtrain_mailtrain-mysq-data" with default driver
Pulling redis (redis:3.0)...
3.0: Pulling from library/redis
f5cc0ee7a6f6: Pull complete
5fc25ed18e87: Pull complete
e025bc8872f6: Pull complete
77c68b51b836: Pull complete
7c403ece3755: Pull complete
0a653bd338f4: Pull complete
31531fd948c6: Pull complete
Digest: sha256:730b765df9fe96af414da64a2b67f3a5f70b8fd13a31e5096fee4807ed802e20
Status: Downloaded newer image for redis:3.0
Pulling mysql (mysql:5.7)...
5.7: Pulling from library/mysql
80369df48736: Pull complete
e8f52315cb10: Pull complete
cf2189b391fc: Pull complete
cc98f645c682: Pull complete
27a27ac83f74: Pull complete
fa1f04453414: Pull complete
d45bf7d22d33: Pull complete
c7d49ffebc56: Pull complete
511a8052b204: Pull complete
5d5df4c12444: Pull complete
d482603a2922: Pull complete
Digest: sha256:44b33224e3c406bf50b5a2ee4286ed0d7f2c5aec1f7fdb70291f7f7c570284dd
Status: Downloaded newer image for mysql:5.7
Building mailtrain
:
:
Removing intermediate container 20676b10252b
 ---> 0abdb4121f54
Step 6/9 : COPY . /app
 ---> c8af7560e844
Step 7/9 : EXPOSE 3000
 ---> Running in 3ff55179a229
Removing intermediate container 3ff55179a229
 ---> d83b49d4b24b
Step 8/9 : ENTRYPOINT ["bash", "/app/docker-entrypoint.sh"]
 ---> Running in e5baf6a1ea2e
Removing intermediate container e5baf6a1ea2e
 ---> c4f899a0f8f9
Step 9/9 : CMD ["node", "index.js"]
 ---> Running in fe94519d2bd3
Removing intermediate container fe94519d2bd3
 ---> 2808c2972f20
Successfully built 2808c2972f20
Successfully tagged mailtrain:latest
WARNING: Image for service mailtrain was built because it did not already exist. To rebuild this image you must use `docker-compose build` or `docker-compose up --build`.
Creating mailtrain_redis_1 ... done
Creating mailtrain_mysql_1 ... done
Creating mailtrain_mailtrain_1 ... done

Vous pouvez maintenant vérifier tous les conteneurs en cours d’exécution avec la commande suivante :

docker ps

Vous devriez voir la sortie suivante :

CONTAINER ID        IMAGE               COMMAND                  CREATED              STATUS              PORTS                    NAMES
0e837c586c39        mailtrain:latest    "bash /app/docker-en…"   About a minute ago   Up 55 seconds       0.0.0.0:3000->3000/tcp   mailtrain_mailtrain_1
49a4e69a09c6        mysql:5.7           "docker-entrypoint.s…"   About a minute ago   Up About a minute   3306/tcp, 33060/tcp      mailtrain_mysql_1
a1449b64a196        redis:3.0           "docker-entrypoint.s…"   About a minute ago   Up About a minute   6379/tcp                 mailtrain_redis_1

Accéder à l’interface Web de Mailtrain

Le conteneur Mailtrain est maintenant démarré et écoute sur le port 3000. Ensuite, ouvrez votre navigateur Web et tapez l’URL http://your-server-ip:3000. Vous devriez voir le tableau de bord par défaut de Mailtrain sur la page suivante :

Mailtrain

Maintenant, cliquez sur le bouton Se connecter. Vous devriez voir la page suivante :

Se connecter - mailtrain

Fournissez le nom d’utilisateur et le mot de passe par défaut comme admin/admin et cliquez sur le bouton Se connecter. Vous devriez voir le tableau de bord par défaut de Mailtrain sur la page suivante :

Tableau de bord Mailtrain

Configurer Nginx comme proxy inverse pour Mailtrain

Ensuite, vous devrez créer un Nginx comme proxy inverse pour Mailtrain sur le port 3000. Pour ce faire, installez d’abord le serveur Web Nginx en exécutant la commande suivante :

apt-get install nginx -y

Ensuite, créez un fichier de configuration d’hôte virtuel Nginx avec la commande suivante :

nano /etc/nginx/sites-available/mailtrain.conf

Ajoutez les lignes suivantes :

upstream mailtrain {
  server 127.0.0.1:3000 weight=100 max_fails=5 fail_timeout=5;
}

server {
  listen          80;
  server_name     example.com;

  location / {
        proxy_set_header X-Forwarded-Host $host;
        proxy_set_header X-Forwarded-Server $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://mailtrain/;
  }
}

Enregistrez et fermez le fichier lorsque vous avez terminé. Ensuite, vérifiez Nginx pour toute erreur de syntaxe avec la commande suivante :

ginx -t

Vous devriez voir la sortie suivante :

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Ensuite, activez le fichier d’hôte virtuel Nginx avec la commande suivante :

ln -s /etc/nginx/sites-available/mailtrain.conf /etc/nginx/sites-enabled/

Enfin, redémarrez le serveur Web Nginx pour appliquer la configuration :

systemctl restart nginx

Sécuriser Mailtrain avec Let’s Encrypt

Ensuite, vous devrez installer le client Certbot pour sécuriser Mailtrain avec le SSL gratuit de Let’s Encrypt. Par défaut, la dernière version de Certbot n’est pas disponible dans le dépôt par défaut d’Ubuntu 18.04. Ajoutez donc le dépôt Certbot en exécutant la commande suivante :

add-apt-repository ppa:certbot/certbot

Ensuite, mettez à jour le dépôt et installez Certbot avec la commande suivante :

apt-get update -y  
apt-get install certbot python-certbot-nginx -y

Une fois installé, exécutez la commande suivante pour télécharger le SSL gratuit de Let’s Encrypt pour votre domaine example.com et configurer Nginx pour utiliser ce certificat.

certbot --nginx -d example.com

Fournissez votre adresse e-mail et acceptez les conditions de service. Une fois le certificat installé avec succès, vous devriez voir la sortie suivante :

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Félicitations ! Vous avez activé avec succès https://example.com

Vous devriez tester votre configuration à :
https://www.ssllabs.com/ssltest/analyze.html?d=example.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

NOTES IMPORTANTES :
 - Félicitations ! Votre certificat et votre chaîne ont été enregistrés à :
   /etc/letsencrypt/live/example.com/fullchain.pem
   Votre fichier clé a été enregistré à :
   /etc/letsencrypt/live/example.com/privkey.pem
   Votre certificat expirera le 2020-01-22. Pour obtenir une nouvelle version ou une version modifiée de ce certificat à l'avenir, exécutez simplement certbot à nouveau avec l'option "certonly". Pour renouveler de manière non interactive *tous* vos certificats, exécutez "certbot renew"
 - Vos informations d'identification de compte ont été enregistrées dans votre répertoire de configuration Certbot à /etc/letsencrypt. Vous devriez faire une sauvegarde sécurisée de ce dossier maintenant. Ce répertoire de configuration contiendra également des certificats et des clés privées obtenus par Certbot, donc faire des sauvegardes régulières de ce dossier est idéal.
 - Si vous aimez Certbot, veuillez envisager de soutenir notre travail en :

   Faisant un don à ISRG / Let's Encrypt :   https://letsencrypt.org/donate
   Faisant un don à l'EFF :                    https://eff.org/donate-le

Vous pouvez maintenant accéder à votre application Mailtrain de manière sécurisée en utilisant l’URL https://example.com.

Conclusion

Dans le tutoriel ci-dessus, nous avons appris comment installer Mailtrain avec Docker sur un serveur Ubuntu 18.04. Nous avons également appris comment configurer Nginx comme proxy inverse pour Mailtrain et sécuriser Mailtrain avec le SSL gratuit de Let’s Encrypt. N’hésitez pas à me poser des questions si vous en avez.

Share: X/Twitter LinkedIn

Recevez de nouveaux articles dans votre boîte de réception.

Aucun spam. Désabonnez-vous à tout moment.