GNU/Linux >> Linux Esercitazione >  >> Cent OS

Come installare l'applicazione newsletter Mailtrain su CentOS 7

Mailtrain è un'applicazione di newsletter self-hosted open source scritta su Node.js. Utilizza una libreria Node.js molto popolare Nodemailer per inviare le e-mail. Offre automazione e analisi eccezionali senza alcun costo. Puoi facilmente creare o importare un elenco e-mail di un milione di indirizzi e-mail utilizzando l'importazione di file CSV. Supporta anche campi e moduli personalizzati. Fornisce l'automazione tramite trigger, che possono inviare messaggi specifici a utenti specifici quando viene attivata l'azione. Puoi utilizzare qualsiasi provider di posta elettronica per inviare la newsletter che supporta il protocollo SMTP insieme al supporto per Amazon SES, ZoneMTA, SendGrid e Mailgun ecc. Fornisce più editor WYSIWYG per creare bellissimi modelli per newsletter.

In questo tutorial, installeremo Mailtrain insieme a tutte le dipendenze richieste su CentOS 7. Imposteremo anche Nginx come proxy inverso per servire l'applicazione sulla porta HTTP standard.

Requisiti

La metabase richiede almeno 1 GB di RAM. Tutte le dipendenze richieste verranno installate durante il tutorial. Avrai bisogno di un'installazione minima di CentOS 7 con accesso root su di esso. Se hai effettuato l'accesso come utente non root, puoi eseguire sudo -i per passare all'utente root.

Aggiorna sistema di base

Prima di installare qualsiasi pacchetto si consiglia di aggiornare i pacchetti e il repository utilizzando il comando seguente.

yum -y update

Installa Node.js

Node.js è richiesto da Mailtrain poiché è costruito utilizzando Nodemailer. Node.js è un runtime JavaScript molto popolare e Nodemailer è un modulo per le applicazioni Node.js per inviare e-mail.

Aggiungi repository Node.js 8.x:

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

Installa Node.js.

yum -y install nodejs

Installa MariaDB

Per archiviare il database Mailtrain dovremo installare MariaDB. MariaDB è un fork di MySQL
Installa il repository MariaDB nel tuo sistema.

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

Aggiungi le seguenti righe al file.

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

Ora installa MariaDB eseguendo.

yum -y install mariadb-server mariadb

Per avviare MariaDB e consentirne l'avvio all'avvio, utilizzare i seguenti comandi.

systemctl start mariadb
systemctl enable mariadb

Ora esegui i seguenti comandi per proteggere l'installazione di MySQL o MariaDB.

mysql_secure_installation

Verrà eseguito un piccolo script che ti chiede di fornire la password di root per MariaDB. Poiché abbiamo appena installato MariaDB, la password di root non è impostata, basta premere invio per procedere ulteriormente. Ti chiederà se desideri impostare una password di root per l'installazione di MariaDB, scegli y e imposta una password complessa per l'installazione. Ti chiederà anche di rimuovere i database di test e gli utenti anonimi. La maggior parte delle domande è autoesplicativa e dovresti rispondere sì o y a tutte le domande.

Mailtrain richiede che gli utenti di due database funzionino, uno per amministrare il database Mailtrain e un altro per generare i rapporti dei lavoratori.

Per creare un database dovremo prima accedere alla riga di comando di MySQL. Esegui il seguente comando per lo stesso.

mysql -u root -p

Questo ti chiederà la password, fornisci la password di root di MySQL che hai impostato in precedenza. Ora esegui la seguente query per creare un nuovo database per la tua installazione di Mailtrain.

CREATE DATABASE mailtrain CHARACTER SET utf8 COLLATE utf8_general_ci;

La query precedente creerà un database chiamato mailtrain. Assicurati di utilizzare il punto e virgola alla fine di ogni query poiché la query termina sempre con un punto e virgola. Una volta creato il database, puoi creare un nuovo utente e concedere tutte le autorizzazioni all'utente per il database. L'uso dell'utente root non è consigliato per i database. Per creare un nuovo utente del database, esegui la seguente query.

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

La query precedente creerà un utente con nome utente mailtrain. Puoi usare qualsiasi nome utente preferito invece di mailtrain. Sostituisci StrongPassword con una password complessa. Ora fornisci i privilegi appropriati all'utente del database sul database che hai creato. Esegui il comando seguente.

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

Ora crea un nuovo utente per Mailtrain RO.

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

Fornire l'accesso in lettura all'utente RO tramite il database Mailtrain.

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

Ora esegui il comando seguente per applicare immediatamente le modifiche ai privilegi del database.

FLUSH PRIVILEGES;

Esci dal prompt di MySQL usando il comando exit.

EXIT;

Installa dipendenze

Mailtrain richiede poche dipendenze in più per funzionare. Installa le dipendenze eseguendo:

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

ImageMagick è uno strumento per elaborare immagini bitmap e Git verrà utilizzato per clonare il repository del progetto dell'applicazione. Redis è un'applicazione cache di sessione molto popolare e Python, bind-utils, gcc-c++ e make verranno utilizzati per compilare i file dell'applicazione.

Avvia Redis e abilita l'avvio automatico:

systemctl start redis
systemctl enable redis

Scarica e installa Mailtrain

Clona i file di installazione di Mailtrain usando Git.

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

Crea un nuovo utente Mailtrain per eseguire il demone Mailtrain. Ciò garantirà che Mailtrain funzioni in un ambiente isolato.

adduser mailtrain -d /opt/mailtrain

Il comando precedente creerà un nuovo utente mailtrain e /opt/mailtrain verrà utilizzato come directory home.

Passa alla directory Mailtrain eseguendo:

cd /opt/mailtrain

Prima di procedere ulteriormente, dovresti generare una stringa casuale che verrà utilizzata per crittografare i dati della sessione. Per generare la stringa casuale, puoi usare l'utilità pwgen.

Esegui yum -y install pwgen per installare l'utilità pwgen. Eseguire pwgen -1 64 per generare una stringa con una lunghezza di 64 caratteri. Vedrai:

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

Crea un nuovo file di configurazione production.toml. La configurazione fornita in questo file sovrascrive il file di configurazione predefinito default.toml. Non dovremmo modificare il file di configurazione predefinito. Crea un nuovo file production.toml per archiviare la configurazione sovrascritta.

nano config/production.toml

Popolare il file con la seguente configurazione.

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 configurazione di cui sopra consente a Mailtrain di essere eseguito come utente mailtrain e all'utente Mailtrain Reports Worker di essere eseguito come utente nessuno. Inoltre, configura il server integrato per ascoltare localhost sulla porta 3000. Imposteremo Nginx come proxy inverso in modo che sia possibile accedere all'interfaccia Web di Mailtrain tramite la porta HTTP standard.

Sostituisci RandomString in secret=con la stringa casuale generata sopra. Imposta il proxy su true poiché eseguiremo il server integrato di Mailtrain dietro il proxy Nginx.

Imposta il nome utente, la password e il nome del database del database che hai creato per memorizzare i dati di Mailtrain.

Inoltre, crea un nuovo file per archiviare la configurazione di produzione per i rapporti di lavoro.

nano workers/reports/config/production.toml

Popolare il file con la seguente configurazione.

[log]
level="error"

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

Ora scarica le dipendenze Node.js richieste e installa il software:

npm install --production

Una volta installata l'applicazione, puoi avviarla immediatamente utilizzando:

NODE_ENV=production npm start

Se il server è in esecuzione, dovresti vedere il seguente output.

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

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

Ma invece di avviare direttamente l'applicazione, utilizzeremo un servizio systemd. Interrompere l'esecuzione premendo ctrl + C.

Fornisci la proprietà dei file all'utente Mailtrain e rimuovi tutte le autorizzazioni su config da altri utenti non root del sistema:

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

Configurazione del servizio Systemd

Crea un nuovo file di servizio Systemd. L'uso di Systemd invece di un comando diretto per eseguire il server garantirà che il server venga avviato automaticamente in caso di errore e riavvio. Semplifica la gestione del servizio.

nano /etc/systemd/system/mailtrain.service

Popolare il file con la seguente configurazione.

[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

Avvia Mailtrain e abilitalo per l'avvio automatico all'avvio:

systemctl enable mailtrain
systemctl start mailtrain

Per controllare lo stato del servizio, esegui:

systemctl status mailtrain

Dovresti vedere che il servizio è attivo.

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

Imposta Logrotate

Logrotate è un'utilità molto utile per aggiornare i registri obsoleti. Quando un servizio è in esecuzione continuamente, genera un'enorme quantità di registri. I file che contengono i log consumano molto spazio su disco. Logrotate elimina periodicamente i vecchi registri in modo che le voci di registro possano essere sostituite da nuovi registri.

Crea un nuovo file di configurazione logrotate:

nano /etc/logrotate.d/mailtrain

Popolare il file con la seguente configurazione:

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

Imposta Nginx come proxy inverso

Abbiamo configurato l'interfaccia Web integrata di Mailtrain per ascoltare localhost sulla porta 3000, poiché è importante eseguire un server Web di produzione per servire il sito Web agli utenti. In questo tutorial, utilizzeremo Nginx come proxy inverso in modo che l'applicazione possa accedere tramite la porta HTTP standard. Installa il server web Nginx:

yum -y install nginx

Crea un nuovo host virtuale per il file di blocco del server per Nginx:

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

Completa il file 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;
    }
}

Riavvia il server web Nginx e abilitalo per l'avvio automatico all'avvio:

systemctl restart nginx
systemctl enable nginx

Configura Firewall e SELinux

Se stai eseguendo un firewall sul tuo server, dovrai configurare il firewall per impostare un'eccezione per il servizio HTTP. Consenti al proxy inverso Nginx di connettersi dall'esterno della rete.

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

Se hai SELinux abilitato sul tuo sistema, dovrai aggiungere alcune eccezioni nelle politiche di SELinux.

Per verificare se SELinux è abilitato, esegui:

getenforce

Se hai SELinux abilitato, esegui:

setsebool -P httpd_can_network_connect 1

Accesso all'interfaccia Web

L'installazione Mailtrain è ora terminata. Ora puoi accedere al server Mailtrain su http://news.example.com. Vedrai la seguente interfaccia.

Fare clic sul pulsante di accesso e accedere utilizzando il nome utente admin e il test password.

Sfoglia Account sezione della dashboard e aggiornare indirizzo email e password. È molto importante aggiornare la password il prima possibile.

Inoltre, è importante aggiornare le impostazioni prima di poter utilizzare Mailtrain.

Aggiorna l'URL del sito e l'e-mail dell'amministratore. Puoi anche fornire l'ID di monitoraggio di Google Analytics per tenere traccia degli approfondimenti tramite Google Analytics. Puoi inserire del codice HTML che verrà visualizzato nella home page del tuo server.

Imposta i valori predefiniti della campagna, come il nome Sander, l'indirizzo predefinito, il valore predefinito da nome, e-mail e URL ecc. Durante l'invio delle e-mail, se queste opzioni non sono configurate, verranno utilizzate le impostazioni predefinite.

Infine, la configurazione più importante è fornire le credenziali del server di posta elettronica. Puoi utilizzare qualsiasi server SMTP o Amazon SES (Simple Email Service). Se stai usando SMTP di, fornisci il nome host del server di posta, la porta, il nome utente e la password del tuo server SMTP. Se utilizzi Amazon SES, fornisci la chiave API e altre credenziali.

Puoi anche configurare il tuo server SMTP. segui una di queste guide:

  • Come creare un server di posta completo utilizzando Postal
  • Crea un server di posta completo su CentOS 6 con Postfix, Dovecot, PostgreSQL
  • Configurazione di un server di posta utilizzando Exim4, Clamav, Dovecot, SpamAssassin e molto altro su Debian

Ora hai un server Mailtrain completamente funzionante installato sul tuo server CentOS 7. Crea la tua prima lista e inizia a inviare newsletter agli iscritti. Puoi creare un modello interattivo utilizzando l'editor WYSIWYG e inviare le e-mail utilizzando le campagne. Mailtrain fornisce anche rapporti sulle e-mail inviate e aperte. Puoi utilizzare la scheda Automazione per creare trigger che inviano e-mail quando viene eseguita un'azione specifica. Puoi anche impostare la crittografia GPG. Se un elenco ha un campo personalizzato per una chiave pubblica GPG impostata, gli abbonati possono caricare la propria chiave pubblica GPG per ricevere messaggi crittografati dall'elenco.


Cent OS
  1. Come installare MariaDB su CentOS 7

  2. Come installare MariaDB su CentOS 8

  3. Come installare Bamboo su CentOS 7

  4. Come installare PhpWiki su CentOS 7

  5. Come installare LiteCart su CentOS 7

Come installare PHP-Fusion su CentOS 7

Come installare Tine 2.0 su CentOS 7

Come installare Nextcloud su CentOS 7

Come installare Seafile su CentOS 7

Come installare Concrete5 su CentOS 7

Come installare LibreNMS su CentOS 7