GNU/Linux >> Tutoriales Linux >  >> Cent OS

Cómo instalar la aplicación Mailtrain Newsletter en CentOS 7

Mailtrain es una aplicación de boletín autohospedado de código abierto escrita en Node.js. Utiliza una biblioteca Node.js muy popular, Nodemailer, para enviar los correos electrónicos. Ofrece automatización y análisis sobresalientes sin costo alguno. Puede crear o importar fácilmente una lista de correo electrónico de un millón de direcciones de correo electrónico utilizando la importación de archivos CSV. También admite campos y formularios personalizados. Proporciona automatización a través de activadores, que pueden enviar mensajes específicos a usuarios específicos cuando se activa la acción. Puede usar cualquier proveedor de correo electrónico para enviar el boletín que admita el protocolo SMTP junto con soporte para Amazon SES, ZoneMTA, SendGrid y Mailgun, etc. Proporciona múltiples editores WYSIWYG para crear hermosas plantillas para boletines.

En este tutorial, instalaremos Mailtrain junto con todas las dependencias requeridas en CentOS 7. También configuraremos Nginx como un proxy inverso para servir la aplicación en el puerto HTTP estándar.

Requisitos

Metabase requiere al menos 1 GB de RAM. Todas las dependencias necesarias se instalarán a lo largo del tutorial. Necesitará una instalación mínima de CentOS 7 con acceso de raíz. Si ha iniciado sesión como usuario no raíz, puede ejecutar sudo -i para cambiar a usuario raíz.

Actualizar sistema base

Antes de instalar cualquier paquete, se recomienda que actualice los paquetes y el repositorio con el siguiente comando.

yum -y update

Instalar Node.js

Mailtrain requiere Node.js, ya que está construido con Nodemailer. Node.js es un tiempo de ejecución de JavaScript muy popular y Nodemailer es un módulo para que las aplicaciones de Node.js envíen correos electrónicos.

Agregue el repositorio Node.js 8.x:

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

Instale Node.js.

yum -y install nodejs

Instalar MariaDB

Para almacenar la base de datos de Mailtrain necesitaremos instalar MariaDB. MariaDB es una bifurcación de MySQL
Instale el repositorio de MariaDB en su sistema.

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

Agregue las siguientes líneas al archivo.

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

Ahora instale MariaDB ejecutando.

yum -y install mariadb-server mariadb

Para iniciar MariaDB y permitir que se inicie en el momento del arranque, use los siguientes comandos.

systemctl start mariadb
systemctl enable mariadb

Ahora ejecute los siguientes comandos para asegurar su instalación de MySQL o MariaDB.

mysql_secure_installation

Ejecutará un pequeño script que le pedirá que proporcione la contraseña de root para MariaDB. Como acabamos de instalar MariaDB, la contraseña de root no está configurada, solo presione enter para continuar. Le preguntará si desea establecer una contraseña de root para su instalación de MariaDB, elija y y establezca una contraseña segura para la instalación. También le pedirá que elimine las bases de datos de prueba y los usuarios anónimos. La mayoría de las preguntas se explican por sí mismas y debe responder sí o y a todas las preguntas.

Mailtrain requiere dos usuarios de bases de datos para trabajar, uno para administrar la base de datos de Mailtrain y otro para generar los informes de los trabajadores.

Para crear una base de datos, primero debemos iniciar sesión en la línea de comandos de MySQL. Ejecute el siguiente comando para lo mismo.

mysql -u root -p

Esto le pedirá la contraseña, proporcione la contraseña raíz de MySQL que configuró anteriormente. Ahora ejecute la siguiente consulta para crear una nueva base de datos para su instalación de Mailtrain.

CREATE DATABASE mailtrain CHARACTER SET utf8 COLLATE utf8_general_ci;

La consulta anterior creará una base de datos llamada mailtrain. Asegúrese de utilizar un punto y coma al final de cada consulta, ya que la consulta siempre termina con un punto y coma. Una vez que se crea la base de datos, puede crear un nuevo usuario y otorgar todos los permisos al usuario para la base de datos. No se recomienda el uso de usuario raíz para las bases de datos. Para crear un nuevo usuario de base de datos, ejecute la siguiente consulta.

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

La consulta anterior creará un usuario con el nombre de usuario mailtrain. Puede usar cualquier nombre de usuario preferido en lugar de mailtrain. Reemplace StrongPassword con una contraseña segura. Ahora proporcione los privilegios apropiados al usuario de su base de datos sobre la base de datos que ha creado. Ejecute el siguiente comando.

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

Ahora cree un nuevo usuario para Mailtrain RO.

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

Proporcione acceso de lectura al usuario de RO a través de la base de datos de Mailtrain.

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

Ahora ejecute el siguiente comando para aplicar inmediatamente los cambios en los privilegios de la base de datos.

FLUSH PRIVILEGES;

Salga del indicador de MySQL usando el comando de salida.

EXIT;

Instalar dependencias

Mailtrain requiere algunas dependencias más para funcionar. Instale las dependencias ejecutando:

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

ImageMagick es una herramienta para procesar imágenes de mapa de bits y se usará Git para clonar el repositorio del proyecto de la aplicación. Redis es una aplicación de caché de sesión muy popular y Python, bind-utils, gcc-c++ y make se utilizarán para compilar los archivos de las aplicaciones.

Inicie Redis y habilítelo para que se inicie automáticamente:

systemctl start redis
systemctl enable redis

Descargar e Instalar Mailtrain

Clona los archivos de instalación de Mailtrain usando Git.

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

Cree un nuevo usuario de Mailtrain para ejecutar el demonio de Mailtrain. Esto garantizará que Mailtrain se ejecute en un entorno aislado.

adduser mailtrain -d /opt/mailtrain

El comando anterior creará un nuevo usuario mailtrain y /opt/mailtrain se utilizará como directorio de inicio.

Cambie al directorio de Mailtrain ejecutando:

cd /opt/mailtrain

Antes de continuar, debe generar una cadena aleatoria que se utilizará para cifrar los datos de la sesión. Para generar la cadena aleatoria, puede usar la utilidad pwgen.

Ejecute yum -y install pwgen para instalar la utilidad pwgen. Ejecute pwgen -1 64 para generar una cadena con una longitud de 64 caracteres. Verás:

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

Cree un nuevo archivo de configuración production.toml. La configuración proporcionada en este archivo anula el archivo de configuración predeterminado default.toml. No debemos modificar el archivo de configuración predeterminado. Cree un nuevo archivo production.toml para almacenar la configuración de reemplazo.

nano config/production.toml

Rellene el archivo con la siguiente configuración.

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 configuración anterior permite que Mailtrain se ejecute como el usuario mailtrain y que el usuario Mailtrain Reports Worker se ejecute como el usuario none. Además, configura el servidor integrado para escuchar localhost en el puerto 3000. Configuraremos Nginx como un proxy inverso para que se pueda acceder a la interfaz web de Mailtrain a través del puerto HTTP estándar.

Reemplace RandomString en secret=con la cadena aleatoria generada arriba. Establezca el proxy en verdadero, ya que ejecutaremos el servidor integrado de Mailtrain detrás del proxy Nginx.

Configure el nombre de usuario, la contraseña y el nombre de la base de datos que ha creado para almacenar los datos de Mailtrain.

Además, cree un nuevo archivo para almacenar la configuración de producción para los informes de los trabajadores.

nano workers/reports/config/production.toml

Rellene el archivo con la siguiente configuración.

[log]
level="error"

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

Ahora baje las dependencias requeridas de Node.js e instale el software:

npm install --production

Una vez que la aplicación está instalada, puede iniciarla inmediatamente usando:

NODE_ENV=production npm start

Si el servidor se está ejecutando, debería ver el siguiente resultado.

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

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

Pero en lugar de iniciar la aplicación directamente, usaremos un servicio systemd. Detenga la ejecución presionando ctrl + C.

Proporcione la propiedad de los archivos al usuario de Mailtrain y elimine todos los permisos sobre la configuración de otros usuarios del sistema que no sean root:

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

Configuración del servicio Systemd

Cree un nuevo archivo de servicio de Systemd. El uso de Systemd en lugar de un comando directo para ejecutar el servidor garantizará que el servidor se inicie automáticamente en caso de falla y reinicio. Hace que administrar el servicio sea muy fácil.

nano /etc/systemd/system/mailtrain.service

Complete el archivo con la siguiente configuración.

[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

Inicie Mailtrain y habilítelo para que se inicie automáticamente en el momento del arranque:

systemctl enable mailtrain
systemctl start mailtrain

Para comprobar el estado del servicio, ejecute:

systemctl status mailtrain

Debería ver que el servicio se está ejecutando activamente.

[[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

Configurar Logrotate

Logrotate es una utilidad muy útil para actualizar registros obsoletos. Cuando un servicio se ejecuta continuamente, genera una gran cantidad de registros. Los archivos que contienen los registros consumen mucho espacio en disco. Logrotate elimina periódicamente los registros antiguos para que las entradas del registro puedan ser reemplazadas por registros nuevos.

Cree un nuevo archivo de configuración logrotate:

nano /etc/logrotate.d/mailtrain

Complete el archivo con la siguiente configuración:

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

Configurar Nginx como proxy inverso

Hemos configurado la interfaz web integrada de Mailtrain para escuchar localhost en el puerto 3000, ya que es importante ejecutar un servidor web de producción para servir el sitio web a los usuarios. En este tutorial, usaremos Nginx como proxy inverso para que se pueda acceder a la aplicación a través del puerto HTTP estándar. Instale el servidor web Nginx:

yum -y install nginx

Cree un nuevo host virtual para el archivo de bloque del servidor para Nginx:

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

Complete el archivo con:

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;
    }
}

Reinicie el servidor web Nginx y permita que se inicie automáticamente en el momento del arranque:

systemctl restart nginx
systemctl enable nginx

Configurar Firewall y SELinux

Si está ejecutando un firewall en su servidor, deberá configurar el firewall para establecer una excepción para el servicio HTTP. Permita que el proxy inverso de Nginx se conecte desde fuera de la red.

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

Si tiene habilitado SELinux en su sistema, deberá agregar algunas excepciones en las políticas de SELinux.

Para verificar si SELinux está habilitado, ejecute:

getenforce

Si tiene habilitado SELinux, ejecute:

setsebool -P httpd_can_network_connect 1

Accediendo a la interfaz web

La instalación de Mailtrain ya ha finalizado. Ahora puede acceder al servidor de Mailtrain en http://news.example.com. Verá la siguiente interfaz.

Haga clic en el botón de inicio de sesión e inicie sesión con el nombre de usuario admin y la prueba de contraseña.

Explorar Cuenta del panel de control y actualice la dirección de correo electrónico y la contraseña. Es muy importante actualizar la contraseña lo antes posible.

Además, es importante actualizar la configuración antes de poder usar Mailtrain.

Actualice la URL del sitio y el correo electrónico del administrador. También puede proporcionar el ID de seguimiento de Google Analytics para realizar un seguimiento de los conocimientos a través de Google Analytics. Puede poner algún código HTML que se mostrará en la página de inicio de su servidor.

Establezca los valores predeterminados de la campaña, como su nombre de Sander, la dirección predeterminada, el nombre predeterminado, el correo electrónico y la URL, etc. Al enviar los correos electrónicos, si estas opciones no están configuradas, se utilizarán los valores predeterminados.

Finalmente, la configuración más importante es proporcionar las credenciales del servidor de correo electrónico. Puede utilizar cualquier servidor SMTP o Amazon SES (Simple Email Service). Si está utilizando SMTP, proporcione el nombre de host del servidor de correo, el puerto, el nombre de usuario y la contraseña de su servidor SMTP. Si utiliza Amazon SES, proporcione la clave API y otras credenciales.

También puede configurar su propio servidor SMTP. solo sigue cualquiera de estas guías:

  • Cómo crear un servidor de correo con todas las funciones usando Postal
  • Cree un servidor de correo con todas las funciones en CentOS 6 con Postfix, Dovecot, PostgreSQL
  • Configuración de un servidor de correo usando Exim4, Clamav, Dovecot, SpamAssassin y mucho más en Debian

Ahora tiene un servidor Mailtrain completamente funcional instalado en su servidor CentOS 7. Crea tu primera lista y comienza a enviar boletines a los suscriptores. Puede crear una plantilla interactiva usando el editor WYSIWYG y enviar los correos electrónicos usando las campañas. Mailtrain también proporciona informes de los correos electrónicos enviados y abiertos. Puede usar la pestaña Automatización para crear disparadores que envíen un correo electrónico cuando se realice alguna acción específica. También puede configurar el cifrado GPG. Si una lista tiene un campo personalizado para un conjunto de claves públicas GPG, los suscriptores pueden cargar su clave pública GPG para recibir mensajes cifrados de la lista.


Cent OS
  1. Cómo instalar MariaDB en CentOS 7

  2. Cómo instalar MariaDB en CentOS 8

  3. Cómo instalar Bamboo en CentOS 7

  4. Cómo instalar PhpWiki en CentOS 7

  5. Cómo instalar LiteCart en CentOS 7

Cómo instalar PHP-Fusion en CentOS 7

Cómo instalar Tine 2.0 en CentOS 7

Cómo instalar Nextcloud en CentOS 7

Cómo instalar Seafile en CentOS 7

Cómo instalar Concrete5 en CentOS 7

Cómo instalar LibreNMS en CentOS 7