Ako nainštalovať aplikáciu Mailtrain Newsletter na CentOS 7
Na tejto stránke
- Požiadavky
- Aktualizujte základný systém
- Nainštalujte Node.js
- Nainštalujte MariaDB
- Inštalovať závislosti
- Stiahnite a nainštalujte Mailtrain
- Nastavenie služby Systemd
- Nastavte Logrotate
- Nastavte Nginx ako reverzný proxy
- Nakonfigurujte bránu firewall a SELinux
- 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 updateNainš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 nodejsNainš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.repoPridajte 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 mariadbAk chcete spustiť MariaDB a povoliť jej spustenie v čase zavádzania, použite nasledujúce príkazy.
systemctl start mariadb
systemctl enable mariadbTeraz spustite nasledujúce príkazy na zabezpečenie inštalácie MySQL alebo MariaDB.
mysql_secure_installationSpustí 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 -pToto 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++ makeImageMagick 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 redisStiahnite si a nainštalujte Mailtrain
Naklonujte inštalačné súbory Mailtrain pomocou Git.
git clone git://github.com/Mailtrain-org/mailtrain.git /opt/mailtrainVytvorte 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/mailtrainVyšš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/mailtrainPred ď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.tomlNaplň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.tomlNaplň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 --productionPo nainštalovaní aplikácie ju môžete okamžite spustiť pomocou:
NODE_ENV=production npm startAk 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/configNastavenie 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.serviceNaplň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 mailtrainAk chcete skontrolovať stav služby, spustite:
systemctl status mailtrainMali 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/mailtrainNaplň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 nginxVytvorte nového virtuálneho hostiteľa pre súbor blokov servera pre Nginx:
nano /etc/nginx/conf.d/mailtrain.confVyplň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 nginxNakonfigurujte 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 --reloadAk 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:
getenforceAk máte povolený SELinux, spustite:
setsebool -P httpd_can_network_connect 1Prí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.