如何在Ubuntu 18.04 LTS上安装MailTrain时事通讯应用程序
在本教程中,将介绍如何在Ubuntu 18.04 LTS上安装MailTrain时事通讯应用程序。
MailTrain是一个开源,从Node.js构建的开源,自托管的新闻通讯应用程序。
MailTrain是基于Nodemailer的顶部,它支持MySQL/MariaDB数据库后端。
MailTrain是商业电子邮件营销服务的替代品,如MailChimp,Sendgrid 等
MailTrain时事通讯应用程序的功能
以下是MailTrain时事通讯应用程序的最佳功能。
易于订阅者列表管理 - 我们可以管理订阅者列表,删除用户,手动添加用户或者通过API.Custom字段添加用户 - MailTrain支持自定义字段,如"数字","下拉","文本字段"复选框,"标记合并"和"自定义"表单.EMAIL模板 - MailTrain提供了许多模板,我们可以用于向订阅者发送电子邮件.Large邮件列表管理 - 我们可以管理多个AS> 100万用户。
我们可以使用CSV文件导入的大用户列表。
对于RSSAD系列:我们可以自动生成RSS Feed的时事通讯,并用于向订阅者发送电子邮件.List分段:仅发送消息以列出匹配预定义分段规则的订阅者。
无需创建具有小差异的单独列表.gpg加密:订阅者可以从列表中返回其GPG公钥以接收加密消息.Automation:我们可以在用户激活触发时发送自动化触发器以发送特定消息。
MailTrain以下硬件要求1 VCPU1024 MB RAM
我们有两个在Ubuntu 18.04上运行MailTrain的选项。
我们可以选择在Docker容器上运行MailTrain或者在Ubuntu 18.04实例上手动安装MailTrain。
我们将考虑后一种方法。
按照以下步骤在Ubuntu 18.04 LTS上安装MailTrain时事通讯应用程序。
第1步:更新系统和安装依赖项
首先,将系统包更新到最新版本。
sudo apt update sudo apt -y install software-properties-common pwgen git dnsutils imagemagick build-essential python
第2步:在Ubuntu 18.04上安装Node.js
node.js是mailTrain的基本要求。
通过运行安装它:
curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash sudo apt -y install nodejs sudo apt -y install gcc g++ make
第2步:在Ubuntu 18.04上安装Redis
使用MailTrain,我们可以使用Redis会话缓存。
Redis用于会话存储和多个进程之间的缓存状态。
如果在Ubuntu 18.04上安装了Redis,请在下面遵循我们的教程,安装它。
如何在Ubuntu 18.04/Debian 9上安装Redis
第4步:安装MariaDB/MySQL数据库服务器
MySQL/MariaDB用于存储MailTrain数据。
使用下面的文章之一安装MariaDB/MySQL数据库服务器:
在Ubuntu 18.04和Centos 7上安装MariaDB 10.x
如何在Ubuntu 18.04/16.04上安装MySQL 8.0
安装MariaDB/MySQL数据库服务器后,为MailTrain创建用户和数据库。
首先登录MySQL Shell作为root用户:
$mysql -u root -p Enter password: Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 48 Server version: 10.3.11-MariaDB-1:10.3.11+maria~bionic-log mariadb.org binary distribution Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MariaDB [(none)]>
我们将为每个服务器组件创建一个数据库。
CREATE DATABASE mailtrain;
创建数据库用户并授予创建的数据库的权限。
CREATE USER 'mailtrain'@'localhost' IDENTIFIED BY 'StrongPassword'; GRANT ALL PRIVILEGES ON mailtrain.* TO 'mailtrain'@'localhost';
还授予监控用户 SELECT
权限。
CREATE USER 'mailtrain_monitoring'@'localhost' IDENTIFIED BY 'StrongPassword'; GRANT SELECT ON mailtrain.* TO 'mailtrain_monitoring'@'localhost'; FLUSH PRIVILEGES;
通过登录数据库确认访问 postal
用户:
$mysql -u mailtrain -p Enter password: Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 49 Server version: 10.3.11-MariaDB-1:10.3.11+maria~bionic-log mariadb.org binary distribution Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MariaDB [(none)]> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | mailtrain | +--------------------+ 4 rows in set (0.001 sec) MariaDB [(none)]> QUIT Bye
第4步:安装和配置Ubuntu 18.04上的MailTrain
确保安装了Git。
sudo apt -y install git
从github克隆邮箱 /srv/mailtrain
sudo git clone https://github.com/Mailtrain-org/mailtrain.git /srv/mailtrain
将MailTrain SQL Schema导入数据库。
mysql -u mailtrain -p mailtrain < /srv/mailtrain/setup/sql/mailtrain.sql
上面的导入将创建许多表。
$mysql -u mailtrain -p Enter password: Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 53 Server version: 10.3.11-MariaDB-1:10.3.11+maria~bionic-log mariadb.org binary distribution Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MariaDB [(none)]> USE mailtrain; Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed MariaDB [mailtrain]> SHOW tables; +---------------------+ | Tables_in_mailtrain | +---------------------+ | attachments | | campaign | | campaign_tracker | | campaigns | | confirmations | | custom_fields | | custom_forms | | custom_forms_data | | import_failed | | importer | | links | | lists | | queued | | rss | | segment_rules | | segments | | settings | | subscription | | templates | | trigger | | triggers | | tzoffset | | users | +---------------------+ 23 rows in set (0.001 sec) MariaDB [mailtrain]> QUIT Bye
安装所需节点依赖项
# cd /srv/mailtrain # npm install --production # npm audit fix
创建生产MailTrain配置文件
sudo cp /srv/mailtrain/config/default.toml /srv/mailtrain/config/production.toml sudo vim /srv/mailtrain/config/production.toml
配置HTTP端口以侦听,协议和侦听地址:
[www] # HTTP port to listen on port=3000 # HTTP interface to listen on host="0.0.0.0" # Enable HTTPS https=false
我们可以将端口3000更改为其他自定义端口,然后选择启用或者禁用HTTPS。
如果我们选择启用HTTPS,请确保为证书私钥和证书文件提供路径。
为签署会话ID cookie生成随机秘密。
sudo apt -y install pwgen pwgen 32
在文件上设置生成的秘密。
secret="du6yahghohnu2lu8nee4ahmaithooWa2"
还提供数据库连接详细信息。
[mysql] host="localhost" user="mailtrain" password="StrongPasword" database="mailtrain"
如果已安装和配置Redis,请提供连接详细信息。
[redis] # enable to use Redis session cache or disable if Redis is not installed enabled=true host="localhost" port=6379 db=5 # Uncomment if your Redis installation requires a password #password=""
更改其他设置,如我们所见适合并保存文件。
完成后,为报告工作者创建一个配置文件。
sudo cp /srv/mailtrain/workers/reports/config/default.toml /srv/mailtrain/workers/reports/config/production.toml sudo vim /srv/mailtrain/workers/reports/config/production.toml
提供先前创建的报告/监视数据库用户。
[mysql] host="localhost" user="mailtrain_monitoring" password="StrongPassword" database="mailtrain" port=3306 charset="utf8mb4" timezone="local"
Cate下面的系统服务单元文件 /etc/systemd/system/
目录。
sudo vim /etc/systemd/system/mailtrain.service
将以下内容粘贴到文件中:
[Unit] Description=Mailtrain server Requires=mysql.service After=syslog.target network.target [Service] Environment="NODE_ENV=production" WorkingDirectory=/srv/mailtrain ExecStart=/usr/bin/node index.js Type=simple Restart=always RestartSec=10 [Install] WantedBy=multi-user.target
重新加载系统并启动服务。
systemctl daemon-reload sudo systemctl enable --now mailtrain
检查服务状态,它应该返回运行状态。
$systemctl status mailtrain.service * mailtrain.service - Mailtrain server Loaded: loaded (/etc/systemd/system/mailtrain.service; enabled; vendor preset: enabled) Active: active (running) since Sun 2016-12-23 05:15:35 PST; 19s ago Main PID: 22340 (mailtrain) Tasks: 20 (limit: 2319) CGroup: /system.slice/mailtrain.service |-22340 mailtrain `-22370 /usr/bin/node /srv/mailtrain/services/sender.js Dec 23 05:15:37 ubuntu-01 node[22340]: info sql Update 28 applied Dec 23 05:15:37 ubuntu-01 node[22340]: info sql Update 29 applied Dec 23 05:15:38 ubuntu-01 node[22340]: info sql Update 30 applied Dec 23 05:15:38 ubuntu-01 node[22340]: info sql Update 31 applied Dec 23 05:15:38 ubuntu-01 node[22340]: info sql Update 32 applied Dec 23 05:15:38 ubuntu-01 node[22340]: info sql Update 33 applied Dec 23 05:15:38 ubuntu-01 node[22340]: info sql Database check completed Dec 23 05:15:38 ubuntu-01 node[22340]: info Express WWW server listening on port 3000 Dec 23 05:15:38 ubuntu-01 node[22340]: verb UTC Updating timezone offsets Dec 23 05:15:38 ubuntu-01 node[22340]: info Service All services started
一旦发言机运行。
除非我们在配置文件中更改它,否则它应该绑定到端口3000。
# ss -tunelp | grep 3000 tcp LISTEN 0 128 0.0.0.0:3000 0.0.0.0:* users:(("mailtrain",pid=22340,fd=14)) ino:77855 sk:48 <->
配置nginx反向代理
我们可以将nginx使用nginx来提交给MailTrain服务的请求。
sudo apt -y install nginx sudo cp /srv/mailtrain/setup/mailtrain-nginx.conf /etc/nginx/conf.d/
编辑文件以设置域名。
server_name example.com www.example.com;
验证nginx配置。
$sudo nginx -t nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
启动并启用Nginx服务
sudo systemctl restart nginx sudo systemctl enable nginx
访问MailTrain URL http://example.com
默认登录是:
Username: admin Password: test
登录admin>帐户后更改密码
提供旧密码和新密码,然后单击"更新"按钮。