GNU/Linux >> Tutoriels Linux >  >> Cent OS

Comment installer l'application Mailtrain Newsletter sur CentOS 7

Mailtrain est une application de newsletter open source auto-hébergée écrite sur Node.js. Il utilise une bibliothèque Node.js très populaire Nodemailer pour envoyer les e-mails. Il offre une automatisation et des analyses exceptionnelles sans aucun frais. Vous pouvez facilement créer ou importer une liste de diffusion d'un million d'adresses e-mail à l'aide de l'importation de fichiers CSV. Il prend également en charge les champs et formulaires personnalisés. Il fournit une automatisation via des déclencheurs, qui peuvent envoyer des messages spécifiques à des utilisateurs spécifiques lorsque l'action est déclenchée. Vous pouvez utiliser n'importe quel fournisseur de messagerie pour envoyer la newsletter qui prend en charge le protocole SMTP ainsi que la prise en charge d'Amazon SES, ZoneMTA, SendGrid et Mailgun, etc. Il fournit plusieurs éditeurs WYSIWYG pour créer de beaux modèles de newsletters.

Dans ce didacticiel, nous allons installer Mailtrain avec toutes les dépendances requises sur CentOS 7. Nous allons également configurer Nginx en tant que proxy inverse pour servir l'application sur le port HTTP standard.

Exigences

La métabase nécessite au moins 1 Go de RAM. Toutes les dépendances requises seront installées tout au long du didacticiel. Vous aurez besoin d'une installation minimale de CentOS 7 avec un accès root dessus. Si vous êtes connecté en tant qu'utilisateur non root, vous pouvez exécuter sudo -i pour passer à l'utilisateur root.

Mettre à jour le système de base

Avant d'installer un package, il est recommandé de mettre à jour les packages et le référentiel à l'aide de la commande suivante.

yum -y update

Installer Node.js

Node.js est requis par Mailtrain car il est construit à l'aide de Nodemailer. Node.js est un runtime JavaScript très populaire et Nodemailer est un module permettant aux applications Node.js d'envoyer des e-mails.

Ajoutez le dépôt Node.js 8.x :

curl --silent --location https://rpm.nodesource.com/setup_8.x | sudo bash -

Installez Node.js.

yum -y install nodejs

Installer MariaDB

Pour stocker la base de données Mailtrain, nous devrons installer MariaDB. MariaDB est un fork de MySQL
Installez le référentiel MariaDB dans votre système.

nano /etc/yum.repos.d/mariadb.repo

Ajoutez les lignes suivantes au fichier.

[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.2/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1

Installez maintenant MariaDB en exécutant.

yum -y install mariadb-server mariadb

Pour démarrer MariaDB et lui permettre de démarrer au démarrage à l'aide des commandes suivantes.

systemctl start mariadb
systemctl enable mariadb

Exécutez maintenant les commandes suivantes pour sécuriser votre installation MySQL ou MariaDB.

mysql_secure_installation

Il exécutera un petit script qui vous demandera de fournir le mot de passe root pour MariaDB. Comme nous venons d'installer MariaDB, le mot de passe root n'est pas défini, appuyez simplement sur Entrée pour continuer. Il vous demandera si vous souhaitez définir un mot de passe root pour votre installation MariaDB, choisissez y et définissez un mot de passe fort pour l'installation. Il vous demandera également de supprimer les bases de données de test et les utilisateurs anonymes. La plupart des questions sont explicites et vous devez répondre oui ou y à toutes les questions.

Mailtrain nécessite deux utilisateurs de bases de données pour fonctionner, un pour administrer la base de données Mailtrain et un autre pour générer les rapports des travailleurs.

Pour créer une base de données, nous devrons d'abord nous connecter à la ligne de commande MySQL. Exécutez la commande suivante pour le même.

mysql -u root -p

Cela vous demandera le mot de passe, fournissez le mot de passe root de MySQL que vous avez défini précédemment. Exécutez maintenant la requête suivante pour créer une nouvelle base de données pour votre installation Mailtrain.

CREATE DATABASE mailtrain CHARACTER SET utf8 COLLATE utf8_general_ci;

La requête ci-dessus créera une base de données nommée mailtrain. Assurez-vous d'utiliser un point-virgule à la fin de chaque requête car la requête se termine toujours par un point-virgule. Une fois la base de données créée, vous pouvez créer un nouvel utilisateur et accorder toutes les autorisations à l'utilisateur pour la base de données. L'utilisation de l'utilisateur root n'est pas recommandée pour les bases de données. Pour créer un nouvel utilisateur de base de données, exécutez la requête suivante.

CREATE USER 'mailtrain'@'localhost' IDENTIFIED BY 'StrongPassword';

La requête ci-dessus créera un utilisateur avec le nom d'utilisateur mailtrain. Vous pouvez utiliser n'importe quel nom d'utilisateur préféré au lieu de mailtrain. Remplacez StrongPassword par un mot de passe fort. Fournissez maintenant les privilèges appropriés à votre utilisateur de base de données sur la base de données que vous avez créée. Exécutez la commande suivante.

GRANT ALL PRIVILEGES ON mailtrain.* TO 'mailtrain'@'localhost';

Créez maintenant un nouvel utilisateur pour Mailtrain RO.

CREATE USER 'mailtrain_ro'@'localhost' IDENTIFIED BY 'StrongROPassword';

Fournissez un accès en lecture à l'utilisateur RO sur la base de données Mailtrain.

GRANT SELECT ON mailtrain.* TO 'mailtrain_ro'@'localhost';

Exécutez maintenant la commande suivante pour appliquer immédiatement les modifications sur les privilèges de la base de données.

FLUSH PRIVILEGES;

Quittez l'invite MySQL à l'aide de la commande exit.

EXIT;

Installer les dépendances

Mailtrain nécessite quelques dépendances supplémentaires pour fonctionner. Installez les dépendances en exécutant :

yum -y install ImageMagick git python redis bind-utils gcc-c++ make

ImageMagick est un outil pour traiter les images Bitmap et Git sera utilisé pour cloner le référentiel du projet d'application. Redis est une application de cache de session très populaire et Python, bind-utils, gcc-c++ et make seront utilisés pour compiler les fichiers d'application.

Démarrez Redis et activez-le pour qu'il démarre automatiquement :

systemctl start redis
systemctl enable redis

Télécharger et installer Mailtrain

Clonez les fichiers d'installation de Mailtrain à l'aide de Git.

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

Créez un nouvel utilisateur Mailtrain pour exécuter le démon Mailtrain. Cela garantira que le Mailtrain fonctionne dans un environnement isolé.

adduser mailtrain -d /opt/mailtrain

La commande ci-dessus créera un nouvel utilisateur mailtrain et /opt/mailtrain sera utilisé comme répertoire personnel.

Basculez vers le répertoire Mailtrain en exécutant :

cd /opt/mailtrain

Avant de continuer, vous devez générer une chaîne aléatoire qui sera utilisée pour chiffrer les données de session. Pour générer la chaîne aléatoire, vous pouvez utiliser l'utilitaire pwgen.

Exécutez yum -y install pwgen pour installer l'utilitaire pwgen. Exécutez pwgen -1 64 pour générer une chaîne d'une longueur de 64 caractères. Vous verrez :

[[email protected] mailtrain]# pwgen -1 64
Poy0aeLalie5uew7eenanootehohLudiuleac5aigaekah1amokumeeg5aiG2ied

Créez un nouveau fichier de configuration production.toml. La configuration fournie dans ce fichier remplace le fichier de configuration par défaut default.toml. Nous ne devons pas modifier le fichier de configuration par défaut. Créez un nouveau fichier production.toml pour stocker la configuration prioritaire.

nano config/production.toml

Remplissez le fichier avec la configuration suivante.

language="en"

user="mailtrain"
group="mailtrain"
rouser="nobody"
rogroup="nobody"

[log]
level="error"

[www]
host="localhost"
port="3000"
secret="RandomString"
remember=604800
proxy=true
tmpdir="/tmp"

[mysql]
user="mailtrain"
password="StrongPassword"
database="mailtrain"
port=3306
charset="utf8"


[redis]
enabled=true

[queue]
processes=5

[reports]
enabled=true

La configuration ci-dessus permet à Mailtrain de s'exécuter en tant qu'utilisateur mailtrain et à l'utilisateur Mailtrain Reports Worker de s'exécuter en tant qu'utilisateur nobody. De plus, il configure le serveur intégré pour écouter localhost sur le port 3000. Nous allons configurer Nginx en tant que proxy inverse afin que l'interface Web de Mailtrain soit accessible via le port HTTP standard.

Remplacez RandomString dans secret=par la chaîne aléatoire générée ci-dessus. Définissez le proxy sur true car nous exécuterons le serveur intégré Mailtrain derrière le proxy Nginx.

Définissez le nom d'utilisateur, le mot de passe et le nom de la base de données que vous avez créée pour stocker les données Mailtrain.

Créez également un nouveau fichier pour stocker la configuration de production des rapports de travail.

nano workers/reports/config/production.toml

Remplissez le fichier avec la configuration suivante.

[log]
level="error"

[mysql]
host="localhost"
user="mailtrain_ro"
password="StrongROPassword"
database="mailtrain"
port=3306
charset="utf8"
timezone="local"

Maintenant, descendez les dépendances Node.js requises et installez le logiciel :

npm install --production

Une fois l'application installée, vous pouvez la démarrer immédiatement en utilisant :

NODE_ENV=production npm start

Si le serveur est en cours d'exécution, vous devriez voir la sortie suivante.

[[email protected] mailtrain]# NODE_ENV=production npm start

> [email protected] start /opt/mailtrain
> node index.js
    
info Using local auth

Mais au lieu de démarrer l'application directement, nous utiliserons un service systemd. Arrêtez l'exécution en appuyant sur ctrl + C.

Fournissez la propriété des fichiers à l'utilisateur Mailtrain et supprimez toutes les autorisations sur la configuration des autres utilisateurs non root du système :

chown -R mailtrain:mailtrain /opt/mailtrain
chmod o-rwx /opt/mailtrain/config

Configuration du service Systemd

Créez un nouveau fichier de service Systemd. L'utilisation de Systemd au lieu d'une commande directe pour exécuter le serveur garantira que le serveur est démarré automatiquement en cas d'échec et de redémarrage. Cela rend la gestion du service très simple.

nano /etc/systemd/system/mailtrain.service

Remplissez le fichier avec la configuration suivante.

[Unit]
Description=Mailtrain Server
Requires=mariadb.service
After=syslog.target network.target

[Service]
user=mailtrain
group=mailtrain
Environment="NODE_ENV=production"
WorkingDirectory=/opt/mailtrain
ExecStart=/usr/bin/node index.js
Type=simple
Restart=always
RestartSec=10
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=mailtrain

[Install]
WantedBy=multi-user.target

Démarrez Mailtrain et activez-le pour qu'il démarre automatiquement au démarrage :

systemctl enable mailtrain
systemctl start mailtrain

Pour vérifier l'état du service, exécutez :

systemctl status mailtrain

Vous devriez voir que le service fonctionne activement.

[[email protected] ~]# systemctl status mailtrain
? mailtrain.service - Mailtrain Server
   Loaded: loaded (/etc/systemd/system/mailtrain.service; enabled; vendor preset: disabled)
   Active: active (running) since Mon 2017-10-09 11:15:40 UTC; 9s ago
 Main PID: 18092 (mailtrain)
   CGroup: /system.slice/mailtrain.service
           ??18092 mailtrain
           ??18105 /usr/bin/node /opt/mailtrain/services/executor.js
           ??18112 /usr/bin/node /opt/mailtrain/services/sender.js
           ??18117 /usr/bin/node /opt/mailtrain/services/sender.js
           ??18125 /usr/bin/node /opt/mailtrain/services/sender.js
           ??18131 /usr/bin/node /opt/mailtrain/services/sender.js
           ??18136 /usr/bin/node /opt/mailtrain/services/sender.js

Oct 09 11:15:40 liptan-pc systemd[1]: Started Mailtrain Server.
Oct 09 11:15:40 liptan-pc systemd[1]: Starting Mailtrain Server...
Oct 09 11:15:44 liptan-pc mailtrain[18092]: info Using local auth

Configurer Logrotate

Logrotate est un utilitaire très utile pour actualiser les journaux obsolètes. Lorsqu'un service s'exécute en continu, il génère une énorme quantité de journaux. Les fichiers contenant les journaux consomment beaucoup d'espace disque. Logrotate supprime périodiquement les anciens journaux afin que les entrées du journal puissent être remplacées par de nouveaux journaux.

Créez un nouveau fichier de configuration logrotate :

nano /etc/logrotate.d/mailtrain

Remplissez le fichier avec la configuration suivante :

/var/log/mailtrain.log {
daily
rotate 12
compress
delaycompress
missingok
notifempty
copytruncate
nomail
}

Configurer Nginx en tant que proxy inverse

Nous avons configuré l'interface Web intégrée de Mailtrain pour écouter localhost sur le port 3000, car il est important d'exécuter un serveur Web de production pour servir le site Web aux utilisateurs. Dans ce didacticiel, nous utiliserons Nginx comme proxy inverse afin que l'application puisse être accessible via le port HTTP standard. Installez le serveur Web Nginx :

yum -y install nginx

Créez un nouvel hôte virtuel pour le fichier de bloc de serveur pour Nginx :

nano /etc/nginx/conf.d/mailtrain.conf

Remplir le fichier avec :

server {
    listen 80;
    listen [::]:80;

    server_name news.example.com www.news.example.com ;
    access_log /var/log/nginx/mailtrain.log;

    location / {
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header HOST $http_host;
        proxy_set_header X-NginX-Proxy true;

        proxy_pass http://127.0.0.1:3000;
        proxy_redirect off;
    }
}

Redémarrez le serveur Web Nginx et activez-le pour qu'il démarre automatiquement au démarrage :

systemctl restart nginx
systemctl enable nginx

Configurer le pare-feu et SELinux

Si vous exécutez un pare-feu sur votre serveur, vous devrez configurer le pare-feu pour définir une exception pour le service HTTP. Autoriser le proxy inverse Nginx à se connecter depuis l'extérieur du réseau.

firewall-cmd --zone=public --permanent --add-service=http
firewall-cmd --reload

Si SELinux est activé sur votre système, vous devrez ajouter quelques exceptions dans les politiques SELinux.

Pour vérifier si SELinux est activé, exécutez :

getenforce

Si vous avez activé SELinux, exécutez :

setsebool -P httpd_can_network_connect 1

Accéder à l'interface Web

L'installation de Mailtrain est maintenant terminée. Vous pouvez maintenant accéder au serveur Mailtrain sur http://news.example.com. Vous verrez l'interface suivante.

Cliquez sur le bouton de connexion et connectez-vous en utilisant le nom d'utilisateur admin et le test de mot de passe.

Parcourir compte section du tableau de bord et mettre à jour l'adresse e-mail et le mot de passe. Il est très important de mettre à jour le mot de passe dès que possible.

De plus, il est important de mettre à jour les paramètres avant de pouvoir utiliser Mailtrain.

Mettez à jour l'URL du site et l'adresse e-mail de l'administrateur. Vous pouvez également fournir l'ID de suivi Google Analytics pour suivre les informations via Google Analytics. Vous pouvez mettre du code HTML qui sera affiché sur la page d'accueil de votre serveur.

Définissez les valeurs par défaut de la campagne, telles que votre nom Sander, l'adresse par défaut, le nom par défaut, l'e-mail et l'URL, etc. Lors de l'envoi des e-mails, si ces options ne sont pas configurées, les valeurs par défaut seront utilisées.

Enfin, la configuration la plus importante consiste à fournir les informations d'identification du serveur de messagerie. Vous pouvez utiliser n'importe quel serveur SMTP ou Amazon SES (Simple Email Service). Si vous utilisez SMTP, fournissez le nom d'hôte du serveur de messagerie, le port, le nom d'utilisateur et le mot de passe de votre serveur SMTP. Si vous utilisez Amazon SES, fournissez la clé API et d'autres informations d'identification.

Vous pouvez également configurer votre propre serveur SMTP. suivez simplement l'un de ces guides :

  • Comment créer un serveur de messagerie complet à l'aide de Postal
  • Construire un serveur de messagerie complet sur CentOS 6 avec Postfix, Dovecot, PostgreSQL
  • Configuration d'un serveur de messagerie avec Exim4, Clamav, Dovecot, SpamAssassin et bien plus encore sur Debian

Vous avez maintenant un serveur Mailtrain entièrement fonctionnel installé sur votre serveur CentOS 7. Créez votre première liste et commencez à envoyer des newsletters aux abonnés. Vous pouvez créer un modèle interactif à l'aide de l'éditeur WYSIWYG et envoyer les e-mails à l'aide des campagnes. Mailtrain fournit également des rapports sur les e-mails envoyés et ouverts. Vous pouvez utiliser l'onglet Automatisation pour créer des déclencheurs qui envoient un e-mail lorsqu'une action spécifique est effectuée. Vous pouvez également configurer le cryptage GPG. Si une liste comporte un champ personnalisé pour un ensemble de clés publiques GPG, les abonnés peuvent télécharger leur clé publique GPG pour recevoir des messages chiffrés à partir de la liste.


Cent OS
  1. Comment installer MariaDB sur CentOS 7

  2. Comment installer MariaDB sur CentOS 8

  3. Comment installer Bamboo sur CentOS 7

  4. Comment installer PhpWiki sur CentOS 7

  5. Comment installer LiteCart sur CentOS 7

Comment installer PHP-Fusion sur CentOS 7

Comment installer Tine 2.0 sur CentOS 7

Comment installer Nextcloud sur CentOS 7

Comment installer Seafile sur CentOS 7

Comment installer Concrete5 sur CentOS 7

Comment installer LibreNMS sur CentOS 7