Ako nainštalovať aplikáciu Mailtrain Newsletter na CentOS 7


Na tejto stránke

  1. Požiadavky
  2. Aktualizujte základný systém
  3. Nainštalujte Node.js
  4. Nainštalujte MariaDB
  5. Inštalovať závislosti
  6. Stiahnite a nainštalujte Mailtrain
  7. Nastavenie služby Systemd
  8. Nastavte Logrotate
  9. Nastavte Nginx ako reverzný proxy
  10. Nakonfigurujte bránu firewall a SELinux
  11. Prístup k webovému rozhraniu

Mailtrain je open source samohostiteľná aplikácia na zasielanie noviniek napísaná na Node.js. Na odosielanie e-mailov používa veľmi populárnu knižnicu Node.js Nodemailer. Ponúka vynikajúcu automatizáciu a analýzu bez akýchkoľvek nákladov. Pomocou importu súboru CSV môžete jednoducho vytvoriť alebo importovať zoznam e-mailov s miliónmi e-mailových adries. Podporuje tiež vlastné polia a formuláre. Poskytuje automatizáciu prostredníctvom spúšťačov, ktoré môžu pri spustení akcie odosielať špecifické správy konkrétnym používateľom. Na odoslanie bulletinu môžete použiť akéhokoľvek poskytovateľa e-mailu, ktorý podporuje protokol SMTP spolu s podporou pre Amazon SES, ZoneMTA, SendGrid a Mailgun atď. Poskytuje viacero editorov WYSIWYG na vytváranie krásnych šablón pre bulletiny.

V tomto návode nainštalujeme Mailtrain spolu so všetkými požadovanými závislosťami na CentOS 7. Nastavíme tiež Nginx ako reverzný proxy na obsluhu aplikácie na štandardnom HTTP porte.

Požiadavky

Metabáza vyžaduje aspoň 1 GB RAM. Všetky požadované závislosti sa nainštalujú počas celého tutoriálu. Budete potrebovať minimálnu inštaláciu CentOS 7 s prístupom root. Ak ste prihlásení ako iný používateľ ako root, môžete spustiť sudo -i a prepnúť na používateľa root.

Aktualizovať základný systém

Pred inštaláciou akéhokoľvek balíka sa odporúča aktualizovať balíky a úložisko pomocou nasledujúceho príkazu.

yum -y update

Nainštalujte Node.js

Node.js vyžaduje Mailtrain, pretože je vytvorený pomocou Nodemailer. Node.js je veľmi populárny JavaScript runtime a Nodemailer je modul pre aplikácie Node.js na odosielanie e-mailov.

Pridať úložisko Node.js 8.x:

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

Nainštalujte Node.js.

yum -y install nodejs

Nainštalujte MariaDB

Na uloženie databázy Mailtrain budeme musieť nainštalovať MariaDB. MariaDB je fork MySQL
Nainštalujte si úložisko MariaDB do svojho systému.

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

Pridajte do súboru nasledujúce riadky.

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

Teraz nainštalujte MariaDB spustením.

yum -y install mariadb-server mariadb

Ak chcete spustiť MariaDB a povoliť jej spustenie v čase zavádzania, použite nasledujúce príkazy.

systemctl start mariadb
systemctl enable mariadb

Teraz spustite nasledujúce príkazy na zabezpečenie inštalácie MySQL alebo MariaDB.

mysql_secure_installation

Spustí malý skript, ktorý vás požiada o zadanie koreňového hesla pre MariaDB. Keďže sme práve nainštalovali MariaDB, heslo root nie je nastavené, stačí stlačiť enter a pokračovať ďalej. Spýta sa vás, či chcete nastaviť root heslo pre vašu inštaláciu MariaDB, vyberte y a nastavte silné heslo pre inštaláciu. Tiež vás požiada o odstránenie testovacích databáz a anonymných používateľov. Väčšina otázok je samovysvetľujúca a na všetky otázky by ste mali odpovedať áno alebo y.

Mailtrain vyžaduje, aby pracovali dvaja používatelia databáz, jeden na správu databázy Mailtrain a druhý na generovanie správ o pracovníkoch.

Na vytvorenie databázy sa musíme najprv prihlásiť do príkazového riadku MySQL. Pre to isté spustite nasledujúci príkaz.

mysql -u root -p

Toto vás vyzve na zadanie hesla, zadajte root heslo MySQL, ktoré ste nastavili skôr. Teraz spustite nasledujúci dotaz na vytvorenie novej databázy pre vašu inštaláciu Mailtrain.

CREATE DATABASE mailtrain CHARACTER SET utf8 COLLATE utf8_general_ci;

Vyššie uvedený dotaz vytvorí databázu s názvom mailtrain. Uistite sa, že na konci každého dotazu používate bodkočiarku, pretože dotaz vždy končí bodkočiarkou. Po vytvorení databázy môžete vytvoriť nového používateľa a udeliť používateľovi všetky povolenia pre databázu. Pre databázy sa neodporúča používať užívateľa root. Ak chcete vytvoriť nového užívateľa databázy, spustite nasledujúci dotaz.

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

Vyššie uvedený dotaz vytvorí užívateľa s užívateľským menom mailtrain. Namiesto poštového vlaku môžete použiť akékoľvek preferované používateľské meno. Nahraďte StrongPassword silným heslom. Teraz poskytnite používateľovi databázy príslušné privilégiá pre databázu, ktorú ste vytvorili. Spustite nasledujúci príkaz.

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

Teraz vytvorte nového používateľa pre Mailtrain RO.

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

Poskytnite používateľovi RO prístup na čítanie cez databázu Mailtrain.

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

Teraz spustite nasledujúci príkaz, aby ste okamžite použili zmeny privilégií databázy.

FLUSH PRIVILEGES;

Ukončite príkazový riadok MySQL pomocou príkazu exit.

EXIT;

Inštalácia závislostí

Mailtrain vyžaduje na fungovanie niekoľko ďalších závislostí. Nainštalujte závislosti spustením:

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

ImageMagick je nástroj na spracovanie bitmapových obrázkov a Git sa použije na klonovanie úložiska projektu aplikácie. Redis je veľmi populárna aplikácia cache pre relácie a na kompiláciu súborov aplikácií sa použijú Python, bind-utils, gcc-c++ a make.

Spustite Redis a povoľte jej automatické spustenie:

systemctl start redis
systemctl enable redis

Stiahnite si a nainštalujte Mailtrain

Naklonujte inštalačné súbory Mailtrain pomocou Git.

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

Vytvorte nového používateľa Mailtrain na spustenie démona Mailtrain. Tým sa zabezpečí, že Mailtrain beží v izolovanom prostredí.

adduser mailtrain -d /opt/mailtrain

Vyššie uvedený príkaz vytvorí nový užívateľský mailtrain a /opt/mailtrain sa použije ako domovský adresár.

Prepnite sa do adresára Mailtrain spustením:

cd /opt/mailtrain

Pred ďalším pokračovaním by ste mali vygenerovať náhodný reťazec, ktorý sa použije na šifrovanie údajov relácie. Na vygenerovanie náhodného reťazca môžete použiť utilitu pwgen.

Spustite yum -y install pwgen na inštaláciu pomôcky pwgen. Spustite pwgen -1 64 a vygenerujte reťazec s dĺžkou 64 znakov. Uvidíš:

[ mailtrain]# pwgen -1 64
Poy0aeLalie5uew7eenanootehohLudiuleac5aigaekah1amokumeeg5aiG2ied

Vytvorte nový konfiguračný súbor production.toml. Konfigurácia poskytnutá v tomto súbore prepíše predvolený konfiguračný súbor default.toml. Predvolený konfiguračný súbor by sme nemali upravovať. Vytvorte nový súbor production.toml na uloženie prepísanej konfigurácie.

nano config/production.toml

Naplňte súbor nasledujúcou konfiguráciou.

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

Vyššie uvedená konfigurácia umožňuje spustiť Mailtrain ako užívateľský mailtrain a Mailtrain Reports Worker ako užívateľ nikto. Ďalej nakonfiguruje vstavaný server tak, aby počúval localhost na porte 3000. Nginx nastavíme ako reverzný proxy, takže webové rozhranie Mailtrain bude prístupné cez štandardný HTTP port.

Nahraďte RandomString in secret= náhodným reťazcom vygenerovaným vyššie. Nastavte proxy na hodnotu true, pretože za serverom proxy Nginx budeme spúšťať vstavaný server Mailtrain.

Nastavte používateľské meno, heslo a názov databázy databázy, ktorú ste vytvorili na ukladanie údajov Mailtrain.

Vytvorte tiež nový súbor na uloženie produkčnej konfigurácie pre výkazy pracovníkov.

nano workers/reports/config/production.toml

Naplňte súbor nasledujúcou konfiguráciou.

[log]
level="error"

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

Teraz odstráňte požadované závislosti Node.js a nainštalujte softvér:

npm install --production

Po nainštalovaní aplikácie ju môžete okamžite spustiť pomocou:

NODE_ENV=production npm start

Ak je server spustený, mali by ste vidieť nasledujúci výstup.

[ mailtrain]# NODE_ENV=production npm start

>  start /opt/mailtrain
> node index.js
    
info Using local auth

Namiesto priameho spustenia aplikácie však použijeme službu systemd. Zastavte vykonávanie stlačením ctrl+C.

Poskytnite vlastníctvo súborov používateľovi Mailtrain a odstráňte všetky povolenia na konfiguráciu od ostatných používateľov systému bez oprávnenia root:

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

Nastavenie služby Systemd

Vytvorte nový súbor služby Systemd. Použitie Systemd namiesto priameho príkazu na spustenie servera zabezpečí automatické spustenie servera pri zlyhaní a reštarte. Vďaka tomu je správa služby veľmi jednoduchá.

nano /etc/systemd/system/mailtrain.service

Naplňte súbor nasledujúcou konfiguráciou.

[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

Spustite Mailtrain a povoľte jeho automatické spustenie pri štarte:

systemctl enable mailtrain
systemctl start mailtrain

Ak chcete skontrolovať stav služby, spustite:

systemctl status mailtrain

Mali by ste vidieť, že služba aktívne beží.

[ ~]# 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

Nastavte Logrotate

Logrotate je veľmi užitočný nástroj na obnovenie zastaraných protokolov. Keď služba beží nepretržite, generuje obrovské množstvo protokolov. Súbory obsahujúce protokoly zaberajú veľa miesta na disku. Logrotate pravidelne vymazáva staré protokoly, takže položky protokolu môžu byť nahradené novými protokolmi.

Vytvorte nový konfiguračný súbor logrotate:

nano /etc/logrotate.d/mailtrain

Naplňte súbor nasledujúcou konfiguráciou:

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

Nastavte Nginx ako reverzný proxy

Vstavané webové rozhranie Mailtrain sme nakonfigurovali tak, aby počúvalo localhost na porte 3000, pretože je dôležité spustiť produkčný webový server, ktorý bude slúžiť používateľom. V tomto návode použijeme Nginx ako reverzný proxy, aby bolo možné k aplikácii pristupovať cez štandardný HTTP port. Nainštalujte webový server Nginx:

yum -y install nginx

Vytvorte nového virtuálneho hostiteľa pre súbor blokov servera pre Nginx:

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

Vyplňte súbor s:

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

Reštartujte webový server Nginx a povoľte jeho automatické spustenie pri spustení:

systemctl restart nginx
systemctl enable nginx

Nakonfigurujte bránu firewall a SELinux

Ak na svojom serveri používate bránu firewall, budete ju musieť nakonfigurovať tak, aby nastavila výnimku pre službu HTTP. Povoliť reverznému proxy servera Nginx pripojiť sa mimo siete.

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

Ak máte vo svojom systéme povolený SELinux, budete musieť pridať niekoľko výnimiek v politikách SELinux.

Ak chcete skontrolovať, či je povolený SELinux, spustite:

getenforce

Ak máte povolený SELinux, spustite:

setsebool -P httpd_can_network_connect 1

Prístup k webovému rozhraniu

Inštalácia Mailtrain je teraz dokončená. Teraz máte prístup k serveru Mailtrain na http://news.example.com. Uvidíte nasledujúce rozhranie.

Kliknite na tlačidlo prihlásenia a prihláste sa pomocou používateľského mena admin a testu hesla.

Prejdite si sekciu Účet na informačnom paneli a aktualizujte e-mailovú adresu a heslo. Je veľmi dôležité aktualizovať heslo čo najskôr.

Pred použitím Mailtrain je tiež dôležité aktualizovať nastavenia.

Aktualizujte adresu URL lokality a e-mail správcu. Môžete tiež poskytnúť ID sledovania služby Google Analytics na sledovanie štatistík prostredníctvom služby Google Analytics. Môžete vložiť nejaký HTML kód, ktorý sa zobrazí na domovskej stránke vášho servera.

Nastavte predvolené nastavenia kampane, ako je názov vašej Sander, predvolená adresa, predvolené meno, e-mail a adresa URL atď. Ak pri odosielaní e-mailov nie sú tieto možnosti nakonfigurované, použijú sa predvolené hodnoty.

Nakoniec najdôležitejšou konfiguráciou je poskytnutie poverení e-mailového servera. Môžete použiť akýkoľvek server SMTP alebo Amazon SES (Simple Email Service). Ak používate SMTP, zadajte názov hostiteľa poštového servera, port, používateľské meno a heslo vášho servera SMTP. Ak používate Amazon SES, poskytnite kľúč API a ďalšie poverenia.

Môžete si tiež nastaviť svoj vlastný server SMTP. stačí postupovať podľa ktoréhokoľvek z týchto pokynov:

  • Ako vytvoriť plne funkčný poštový server pomocou poštovej služby
  • Vybudujte si plnohodnotný poštový server na CentOS 6 s Postfix, Dovecot, PostgreSQL
  • Nastavenie poštového servera pomocou Exim4, Clamav, Dovecot, SpamAssassin a oveľa viac v Debiane

Teraz máte na svojom serveri CentOS 7 nainštalovaný plne funkčný server Mailtrain. Vytvorte si svoj prvý zoznam a začnite posielať newslettery odberateľom. Môžete vytvoriť interaktívnu šablónu pomocou WYSIWYG editora a odoslať e-maily pomocou kampaní. Mailtrain tiež poskytuje správy o odoslaných a otvorených e-mailoch. Kartu Automatizácia môžete použiť na vytvorenie spúšťačov, ktoré odosielajú e-maily po vykonaní určitej konkrétnej akcie. Môžete tiež nastaviť šifrovanie GPG. Ak má zoznam vlastné pole pre nastavený verejný kľúč GPG, predplatitelia môžu nahrať svoj verejný kľúč GPG, aby mohli prijímať zašifrované správy zo zoznamu.

Súvisiace články: