GNU/Linux >> Linux の 問題 >  >> Cent OS

CentOS7にMailtrainニュースレターアプリケーションをインストールする方法

Mailtrainは、Node.jsで作成されたオープンソースのセルフホストニュースレターアプリケーションです。非常に人気のあるNode.jsライブラリNodemailerを使用してメールを送信します。卓越した自動化と分析を無料で提供します。 CSVファイルのインポートを使用して、100万の電子メールアドレスの電子メールリストを簡単に作成またはインポートできます。また、カスタムフィールドとフォームもサポートしています。アクションがトリガーされたときに特定のユーザーに特定のメッセージを送信できるトリガーによる自動化を提供します。任意のメールプロバイダーを使用して、Amazon SES、ZoneMTA、SendGrid、MailgunなどのサポートとともにSMTPプロトコルをサポートするニュースレターを送信できます。ニュースレターの美しいテンプレートを作成するための複数のWYSIWYGエディターを提供します。

このチュートリアルでは、CentOS 7に必要なすべての依存関係とともにMailtrainをインストールします。また、標準のHTTPポートでアプリケーションを提供するためのリバースプロキシとしてNginxをセットアップします。

要件

Metabaseには少なくとも1GBのRAMが必要です。必要なすべての依存関係は、チュートリアル全体でインストールされます。ルートアクセス権を持つCentOS7の最小限のインストールが必要になります。 root以外のユーザーとしてログインしている場合は、sudo-iを実行してrootユーザーに切り替えることができます。

ベースシステムの更新

パッケージをインストールする前に、次のコマンドを使用してパッケージとリポジトリを更新することをお勧めします。

yum -y update

Node.jsをインストール

Node.jsは、Nodemailerを使用して構築されているため、Mailtrainに必要です。 Node.jsは非常に人気のあるJavaScriptランタイムであり、NodemailerはNode.jsアプリケーションがメールを送信するためのモジュールです。

Node.js 8.xリポジトリを追加します:

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

Node.jsをインストールします。

yum -y install nodejs

MariaDBをインストール

Mailtrainデータベースを保存するには、MariaDBをインストールする必要があります。 MariaDBはMySQLのフォークです
MariaDBリポジトリをシステムにインストールします。

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

次の行をファイルに追加します。

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

次に、を実行してMariaDBをインストールします。

yum -y install mariadb-server mariadb

次のコマンドを使用して、MariaDBを起動し、起動時に起動できるようにします。

systemctl start mariadb
systemctl enable mariadb

次に、次のコマンドを実行して、MySQLまたはMariaDBのインストールを保護します。

mysql_secure_installation

MariaDBのルートパスワードを入力するように求める小さなスクリプトを実行します。 MariaDBをインストールしたばかりなので、rootパスワードが設定されていません。Enterキーを押すだけで、先に進むことができます。 MariaDBインストールのルートパスワードを設定するかどうかを尋ねられます。yを選択して、インストールに強力なパスワードを設定します。また、テストデータベースと匿名ユーザーを削除するように求められます。ほとんどの質問は自明であり、すべての質問に「はい」または「はい」と答える必要があります。

Mailtrainでは、2人のデータベースユーザーが作業する必要があります。1人はMailtrainデータベースを管理するためのもので、もう1人はワーカーレポートを生成するためのものです。

データベースを作成するには、最初にMySQLコマンドラインにログインする必要があります。同じように次のコマンドを実行します。

mysql -u root -p

これにより、パスワードの入力を求められます。以前に設定したMySQLのルートパスワードを入力してください。次に、次のクエリを実行して、Mailtrainインストール用の新しいデータベースを作成します。

CREATE DATABASE mailtrain CHARACTER SET utf8 COLLATE utf8_general_ci;

上記のクエリは、mailtrainという名前のデータベースを作成します。クエリは常にセミコロンで終わるため、各クエリの最後には必ずセミコロンを使用してください。データベースが作成されたら、新しいユーザーを作成して、データベースのすべての権限をユーザーに付与できます。データベースにrootユーザーを使用することはお勧めしません。新しいデータベースユーザーを作成するには、次のクエリを実行します。

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

上記のクエリは、ユーザー名mailtrainのユーザーを作成します。 mailtrainの代わりに任意の優先ユーザー名を使用できます。 StrongPasswordを強力なパスワードに置き換えます。次に、作成したデータベースに対する適切な権限をデータベースユーザーに提供します。次のコマンドを実行します。

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

次に、MailtrainROの新しいユーザーを作成します。

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

Mailtrainデータベースを介してROユーザーに読み取りアクセスを提供します。

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

次に、次のコマンドを実行して、データベース権限に変更をすぐに適用します。

FLUSH PRIVILEGES;

exitコマンドを使用してMySQLプロンプトを終了します。

EXIT;
依存関係のインストール

Mailtrainが機能するには、さらにいくつかの依存関係が必要です。次を実行して依存関係をインストールします:

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

ImageMagickはビットマップ画像を処理するためのツールであり、Gitはアプリケーションプロジェクトリポジトリのクローンを作成するために使用されます。 Redisは非常に人気のあるセッションキャッシュアプ​​リケーションであり、Python、bind-utils、gcc-c ++、makeを使用してアプリケーションファイルをコンパイルします。

Redisを起動し、自動的に起動できるようにします:

systemctl start redis
systemctl enable redis
メールトレインのダウンロードとインストール

Gitを使用してMailtrainインストールファイルのクローンを作成します。

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

Mailtrainデーモンを実行するための新しいMailtrainユーザーを作成します。これにより、Mailtrainが分離された環境で実行されていることが保証されます。

adduser mailtrain -d /opt/mailtrain

上記のコマンドは、新しいユーザーmailtrainを作成し、/ opt/mailtrainがホームディレクトリとして使用されます。

次のコマンドを実行して、Mailtrainディレクトリに切り替えます。

cd /opt/mailtrain

先に進む前に、セッションデータの暗号化に使用されるランダムな文字列を生成する必要があります。ランダムな文字列を生成するには、pwgenユーティリティを使用できます。

yum -y install pwgenを実行して、pwgenユーティリティをインストールします。 pwgen -1 64を実行して、長さが64文字の文字列を生成します。表示されます:

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

新しい構成ファイルproduction.tomlを作成します。このファイルで提供される構成は、デフォルトの構成ファイルdefault.tomlをオーバーライドします。デフォルトの構成ファイルを変更しないでください。新しいファイルproduction.tomlを作成して、オーバーライドする構成を保存します。

nano config/production.toml

次の構成でファイルにデータを入力します。

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

上記の構成により、Mailtrainをユーザーmailtrainとして実行し、MailtrainReportsWorkerユーザーをユーザーnobodyとして実行できます。さらに、ポート3000でローカルホストをリッスンするように組み込みサーバーを構成します。標準のHTTPポートを介してMailtrain Webインターフェイスにアクセスできるように、Nginxをリバースプロキシとして設定します。

secret=のRandomStringを上記で生成されたランダム文字列に置き換えます。 Nginxプロキシの背後でMailtrain組み込みサーバーを実行するため、プロキシをtrueに設定します。

Mailtrainデータを保存するために作成したデータベースのユーザー名、パスワード、データベース名を設定します。

また、ワーカーレポートの本番構成を保存するための新しいファイルを作成します。

nano workers/reports/config/production.toml

次の構成でファイルにデータを入力します。

[log]
level="error"

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

次に、必要なNode.jsの依存関係を確認し、ソフトウェアをインストールします。

npm install --production

アプリケーションがインストールされると、次のコマンドを使用してすぐに起動できます。

NODE_ENV=production npm start

サーバーが実行されている場合は、次の出力が表示されます。

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

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

ただし、アプリケーションを直接起動する代わりに、systemdサービスを使用します。 Ctrl+Cを押して実行を停止します。

Mailtrainユーザーにファイルの所有権を提供し、システムの他の非rootユーザーからconfigに対するすべての権限を削除します。

chown -R mailtrain:mailtrain /opt/mailtrain
chmod o-rwx /opt/mailtrain/config
Systemdサービスの設定

新しいSystemdサービスファイルを作成します。直接コマンドの代わりにSystemdを使用してサーバーを実行すると、サーバーが障害時に自動的に起動して再起動するようになります。サービスの管理が非常に簡単になります。

nano /etc/systemd/system/mailtrain.service

次の構成でファイルにデータを入力します。

[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

Mailtrainを起動し、起動時に自動的に起動できるようにします:

systemctl enable mailtrain
systemctl start mailtrain

サービスのステータスを確認するには、次を実行します。

systemctl status mailtrain

サービスがアクティブに実行されていることを確認する必要があります。

[[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
ログローテーションの設定

Logrotateは、古いログを更新するための非常に便利なユーティリティです。サービスが継続的に実行されている場合、大量のログが生成されます。ログを含むファイルは、多くのディスク領域を消費します。 Logrotateは定期的に古いログを削除して、ログエントリを新しいログに置き換えることができるようにします。

新しいlogrotate構成ファイルを作成します:

nano /etc/logrotate.d/mailtrain

次の構成でファイルにデータを入力します。

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

Nginxをリバースプロキシとして設定

ユーザーにWebサイトを提供するには、運用Webサーバーを実行することが重要であるため、ポート3000でローカルホストをリッスンするようにMailtrain組み込みWebインターフェイスを構成しました。このチュートリアルでは、アプリケーションが標準のHTTPポートを介してアクセスできるように、リバースプロキシとしてNginxを使用します。 Nginx Webサーバーをインストールします:

yum -y install nginx

Nginxのサーバーブロックファイル用の新しい仮想ホストを作成します:

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

ファイルに次のデータを入力します:

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

Nginx Webサーバーを再起動し、起動時に自動的に起動できるようにします:

systemctl restart nginx
systemctl enable nginx
ファイアウォールとSELinuxを構成する

サーバーでファイアウォールを実行している場合は、HTTPサービスの例外を設定するようにファイアウォールを構成する必要があります。 Nginxリバースプロキシがネットワークの外部から接続できるようにします。

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

システムでSELinuxを有効にしている場合は、SELinuxポリシーにいくつかの例外を追加する必要があります。

SELinuxが有効になっているかどうかを確認するには、以下を実行します:

getenforce

SELinuxを有効にしている場合は、以下を実行します:

setsebool -P httpd_can_network_connect 1
Webインターフェイスへのアクセス

これで、Mailtrainのインストールが完了しました。これで、http://news.example.comでMailtrainサーバーにアクセスできます。次のインターフェースが表示されます。

ログインボタンをクリックし、ユーザー名adminとパスワードテストを使用してログインします。

アカウントを閲覧する ダッシュボードのセクションを開き、メールアドレスとパスワードを更新します。できるだけ早くパスワードを更新することが非常に重要です。

また、Mailtrainを使用する前に設定を更新することが重要です。

サイトのURLと管理者の電子メールを更新します。また、Google Analyticsを介して洞察を追跡するために、GoogleAnalytics追跡IDを提供することもできます。サーバーのホームページに表示されるHTMLコードを配置できます。

サンダー名、デフォルトアドレス、デフォルトの名前、電子メール、URLなどのキャンペーンのデフォルトを設定します。電子メールの送信中に、これらのオプションが構成されていない場合は、デフォルトが使用されます。

最後に、最も重要な構成は、電子メールサーバーの資格情報を提供することです。任意のSMTPサーバーまたはAmazonSES(Simple Email Service)を使用できます。 SMTPサーバーを使用している場合は、SMTPサーバーのメールサーバーのホスト名、ポート、ユーザー名、およびパスワードを入力します。 Amazon SESを使用している場合は、APIキーとその他のクレデンシャルを提供してください。

独自のSMTPサーバーを設定することもできます。次のガイドのいずれかに従ってください:

  • Postalを使用してフル機能のメールサーバーを作成する方法
  • Postfix、Dovecot、PostgreSQLを使用してCentOS6でフル機能のメールサーバーを構築する
  • DebianでExim4、Clamav、Dovecot、SpamAssassinなどを使用してメールサーバーをセットアップする

これで、CentOS7サーバーに完全に機能するMailtrainサーバーがインストールされました。最初のリストを作成し、購読者へのニュースレターの送信を開始します。 WYSIWYGエディターを使用してインタラクティブなテンプレートを作成し、キャンペーンを使用してメールを送信できます。 Mailtrainは、送信および開封された電子メールのレポートも提供します。 [自動化]タブを使用して、特定のアクションが実行されたときに電子メールを送信するトリガーを作成できます。 GPG暗号化を設定することもできます。リストにGPG公開鍵セットのカスタムフィールドがある場合、サブスクライバーはGPG公開鍵をアップロードして、リストから暗号化されたメッセージを受信できます。


Cent OS
  1. CentOS7にMariaDBをインストールする方法

  2. CentOS7にPhpWikiをインストールする方法

  3. CentOS7にLiteCartをインストールする方法

  1. CentOS8にMariaDBをインストールする方法

  2. CentOS7にBambooをインストールする方法

  3. CentOS8にBraseroをインストールする方法

  1. CentOS6にMariaDBをインストールする方法

  2. CentOS7にMariaDBをインストールする方法

  3. CentOS7にProjectPierをインストールする方法