Comment créer votre propre newsletter avec Listmonk

Comment créer votre propre newsletter avec Listmonk

Listmonk est une solution simple et tout-en-un de newsletters et de listes de diffusion auto-hébergées pour Linux. Contrairement aux programmes de listes de diffusion traditionnels, il excelle en fournissant une plate-forme simple, légère et rapide. Nous vous montrons ici comment installer Listmonk à l’aide de Docker sur Ubuntu et comment commencer à l’utiliser pour envoyer des newsletters.

Avantages de l’utilisation de Listmonk

L’un des principaux arguments de vente de Listmonk est qu’il peut fonctionner avec presque n’importe quel serveur de livraison de courrier externe sur Internet. Cela signifie que vous pouvez envoyer vos newsletters avec un fournisseur de messagerie hébergé tel que Gmail ou votre propre configuration de messagerie auto-hébergée .

Une capture d'écran montrant l'aperçu d'une nouvelle instance Listmonk.

Listmonk offre également la possibilité de créer des modèles de courrier électronique programmables. Cela permet de créer des emails personnalisés qui peuvent s’ajuster en fonction du contexte dans lequel l’utilisateur reçoit le message.

Enfin, Listmonk est livré avec un module d’analyse intuitif qui vous permet de suivre chaque newsletter exécutée dans le programme. Il peut suivre à la fois le nombre de clics obtenus par chaque message ainsi que les vues globales obtenues par une liste de diffusion entière sur une période donnée.

Installation de Listmonk

Obtention de Docker et Docker Compose

Hypothèse : cet article suppose que vous exécutez Listmonk sur un VPS toujours actif. De plus, cela suppose également que vous disposez déjà d’un nom de domaine avec un enregistrement A et PTR pointant vers votre VPS.

Pour commencer, récupérez la clé du référentiel pour les packages Docker et Docker Compose :

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg

Créez le nouveau fichier de référentiel pour vos packages Docker et Docker Compose :

sudo nano /etc/apt/sources.list.d/docker.list

Écrivez la ligne de code suivante dans votre nouveau fichier de référentiel :

deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu jammy stable

Mettez à jour et mettez à niveau l’intégralité de votre système Ubuntu en exécutant la commande suivante :

sudo apt update && sudo apt upgrade

Installez le moteur Docker avec Docker Compose et ses dépendances de composants :

sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin docker-buildx-plugin nginx git curl

Assurez-vous que votre utilisateur actuel dispose des autorisations appropriées pour accéder aux binaires Docker :

sudo usermod -aG docker ramces

Configuration et déploiement de Listmonk

Créez un nouveau dossier pour vos fichiers Docker dans le répertoire personnel de votre utilisateur actuel :

mkdir ~/listmonk && cd ~/listmonk

Créez un nouveau fichier de configuration pour votre instance Listmonk :

nano. /config.toml

Collez le code suivant dans votre nouveau fichier de configuration :

[app]
address = "0.0.0.0:9000"
admin_username = "listmonk"
admin_password = "listmonk"

[db]
host = "listmonk_db"
port = 5432
user = "listmonk"
password = "INSERT_RANDOM_PASSWORD_HERE"

database = "listmonk"

ssl_mode = "disable"
max_open = 25
max_idle = 25
max_lifetime = "300s"

params = ""

Enregistrez votre nouveau fichier de configuration, puis créez le docker-compose.yml de votre instance Listmonk :

nano. /docker-compose.yml

Collez le bloc de code suivant dans votre nouveau. fichier yml. Il s’agit du fichier docker-compose.yml par défaut pour Listmonk que j’ai modifié pour fonctionner avec mon fuseau horaire :

---
version: "3.7"
x-app-defaults:
restart: unless-stopped
image: listmonk/listmonk:latest
ports:
- 9000:9000
networks:
- listmonk
environment:
- TZ=Asia/Manila
x-db-defaults:
image: postgres:13
ports:
- 9432:5432
networks:
- listmonk
environment:
- POSTGRES_PASSWORD=INSERT_RANDOM_PASSWORD_HERE
- POSTGRES_USER=listmonk
- POSTGRES_DB=listmonk
restart: unless-stopped
healthcheck:
test:
- CMD-SHELL
- pg_isready -U listmonk
interval: 10s
timeout: 5s
retries: 6
services:
db:
image: postgres:13
ports:
- 9432:5432
networks:
- listmonk
environment:
- POSTGRES_PASSWORD=INSERT_RANDOM_PASSWORD_HERE
- POSTGRES_USER=listmonk
- POSTGRES_DB=listmonk
restart: unless-stopped
healthcheck:
test:
- CMD-SHELL
- pg_isready -U listmonk
interval: 10s
timeout: 5s
retries: 6
container_name: listmonk_db
volumes:
- type: volume
source: listmonk-data
target: /var/lib/postgresql/data
app:
restart: unless-stopped
image: listmonk/listmonk:latest
ports:
- 9000:9000
networks:
- listmonk
environment:
- TZ=Asia/Manila
container_name: listmonk_app
depends_on:
- db
volumes:
-. /config.toml:/listmonk/config.toml
networks:
listmonk: null
volumes:
listmonk-data: null

Déploiement du conteneur Docker Listmonk

Exécutez la commande Docker suivante pour générer le fichier de base de données de votre instance :

docker compose up db

Ouvrez une nouvelle connexion SSH, puis démarrez le processus de construction de Listmonk en exécutant le binaire « listmonk » dans son conteneur Docker :

docker compose run --rm app. /listmonk --install

Tapez « Y », puis appuyez sur Enterlorsque le script de construction vous demande d’effacer toutes les données existantes sur la base de données en cours d’exécution. Cela garantira que votre conteneur Listmonk est propre au démarrage.

Un terminal affichant l'invite d'effacement de la base de données pour le conteneur Docker Listmonk.

Revenez à la session SSH pour la base de données de votre instance, puis appuyez sur Ctrl+ Cpour terminer la session en douceur.

Un terminal affichant la base de données temporaire se fermant normalement.

Enfin, redémarrez tous les conteneurs Docker pour Listmonk avec ses paramètres appropriés :

docker compose up -d app db

Création d’un proxy inverse Nginx

Même si Listmonk a commencé à s’exécuter sur une instance Docker, il n’est pas accessible au public tant que vous n’avez pas configuré un proxy inverse pour s’y connecter. Suivez les instructions ci-dessous pour configurer un proxy inverse Nginx.

Créez un nouveau fichier de configuration de site pour votre instance Listmonk :

sudo nano /etc/nginx/sites-available/listmonk

Collez le bloc de code suivant dans votre nouveau fichier de configuration de site :

server {

server_name listmonk.myvpsserver.top;


location / {
proxy_pass http://127.0.0.1:9000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
}}

Liez votre nouveau fichier de configuration de /etc/nginx/sites-available à /etc/nginx/sites-enabled :

sudo ln -s /etc/nginx/sites-available/listmonk /etc/nginx/sites-enabled/

Redémarrez votre démon de serveur Nginx en exécutant la commande suivante :

sudo systemctl reload nginx

Installation du certificat SSL

Une fois que vous avez configuré le proxy inverse, votre site sera accessible au public. Cependant, il n’est pas sécurisé car il n’existe pas de certificat SSL. Ainsi, l’étape suivante consiste à installer le certificat SSL.

Assurez-vous que le démon Snap principal est en cours d’exécution sur votre système :

sudo snap install core

Installez le package snap certbot de l’Electronic Frontier Foundation (EFF). Cet utilitaire vous permettra de demander un certificat SSL que votre serveur pourra utiliser pour crypter les connexions entre hôtes.

sudo snap install certbot --classic

Testez si votre package certbot fonctionne correctement en l’enregistrant auprès de l’EFF :

sudo certbot register --agree-tos -m you@your-email.invalid

Obtenez un nouveau certificat SSL pour votre installation Listmonk en exécutant la commande suivante :

sudo certbot --nginx -d listmonk.myvpsserver.top

Accès et configuration de Listmonk

Ouvrez un navigateur Web, puis accédez à l’adresse de votre instance Listmonk. Cela fera apparaître une simple page Web avec un bouton de connexion.

Une capture d'écran montrant l'écran de connexion de Listmonk.

Cliquez sur le bouton « Connexion », puis tapez « listmonk » dans les champs Nom d’utilisateur et Mot de passe.

Une capture d'écran montrant l'invite d'identification.

Cela chargera le tableau de bord principal de votre instance Listmonk. Cliquez sur l’option « Paramètres » dans la barre latérale gauche de la page.

Une capture d'écran mettant en évidence le

Remplacez la valeur de la zone de texte « URL racine » par l’adresse complète de votre instance Listmonk.

Une capture d'écran mettant en évidence le

Cliquez sur « Enregistrer » dans le coin supérieur droit de la page pour enregistrer le nouveau paramètre.

Lier un compte Gmail à Listmonk

Connectez-vous à votre compte Gmail, puis cliquez sur l’icône de votre utilisateur dans le coin supérieur droit de la page.

Une capture d'écran mettant en évidence l'icône de l'utilisateur dans Gmail.

Cliquez sur « Gérer votre compte Google ».

Une capture d'écran mettant en évidence le

Cliquez sur la catégorie « Sécurité » dans la barre latérale gauche de la page. Sélectionnez l’option « Vérification en 2 étapes » dans la sous-page Sécurité.

Une capture d'écran mettant en évidence le

Faites défiler vers le bas de la page, puis cliquez sur le bouton « Mots de passe de l’application ».

Une capture d'écran montrant le

Cela fera apparaître une invite vous demandant le nom de l’application que vous souhaitez lier. Tapez « listmonk », puis cliquez sur « Créer ».

La page affichera alors une petite fenêtre avec 16 caractères aléatoires regroupés par quatre. Copiez-le dans un fichier texte, puis cliquez sur « Terminé ».

Une capture d'écran montrant un exemple de mot de passe d'application.

Revenez à la page de votre tableau de bord Listmonk, puis cliquez sur l’option « Paramètres » dans la barre latérale gauche de la page.

Sélectionnez l’onglet « SMTP » dans la barre supérieure de la page. Cliquez sur le lien « Gmail » sous la liste déroulante « Protocole d’authentification ».

Une capture d'écran mettant en évidence le lien du modèle Gmail.

Tapez l’adresse e-mail complète de votre compte Gmail dans le champ « Nom d’utilisateur ».

Cliquez sur le champ « Mot de passe », puis saisissez la chaîne de 16 lettres que vous avez copiée depuis le site Web Gmail sans espaces.

Une capture d'écran montrant un lien Gmail complet.

Cliquez sur « Enregistrer » pour appliquer vos nouveaux paramètres SMTP.

Une capture d'écran mettant en évidence le

Enfin, allez dans l’onglet Général puis remplacez la valeur de la zone de texte « Adresse ‘de’ par défaut » par l’adresse de votre compte Gmail.

Création d’une nouvelle newsletter Listmonk

Accédez à la page de votre tableau de bord Listmonk, cliquez sur la catégorie « Listes », puis cliquez sur l’option « Toutes les listes ».

Une capture d'écran mettant en évidence le

Sélectionnez le bouton « Nouveau » dans le coin supérieur droit de la page.

Une capture d'écran mettant en évidence le

Remplissez les détails de votre nouvelle liste de diffusion, puis cliquez sur « Enregistrer ».

Une capture d'écran montrant une liste de newsletter publique de base.

C’est ça. Vous avez terminé l’installation de Listmonk.

L’hébergement de votre propre newsletter n’est qu’une partie de la création de votre propre plateforme numérique. Découvrez comment vous pouvez étendre cela en hébergeant un blog sous Linux à l’aide de Ghost et en exécutant votre propre tableau Kanban Web avec Kanboard .

Crédit image : Newsletter – rédigée sur une vieille machine à écrire par 123RF. Toutes les modifications et captures d’écran par Ramces Red.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *