GNU/Linux >> Belajar Linux >  >> Cent OS

Cara Install Aplikasi Newsletter Mailtrain di CentOS 7

Mailtrain adalah aplikasi buletin self-hosted open source yang ditulis di Node.js. Ini menggunakan Nodemailer library Node.js yang sangat populer untuk mengirim email. Ini menawarkan otomatisasi dan analitik yang luar biasa tanpa biaya sama sekali. Anda dapat dengan mudah membuat atau mengimpor daftar email dari sejuta alamat email menggunakan impor file CSV. Ini juga mendukung bidang dan formulir khusus. Ini memberikan otomatisasi melalui pemicu, yang dapat mengirim pesan tertentu ke pengguna tertentu saat tindakan dipicu. Anda dapat menggunakan penyedia email mana pun untuk mengirim buletin yang mendukung protokol SMTP bersama dengan dukungan untuk Amazon SES, ZoneMTA, SendGrid, dan Mailgun, dll. Ini menyediakan beberapa editor WYSIWYG untuk membuat template cantik untuk buletin.

Dalam tutorial ini, kita akan menginstal Mailtrain bersama dengan semua dependensi yang diperlukan pada CentOS 7. Kami juga akan menyiapkan Nginx sebagai proxy terbalik untuk melayani aplikasi pada port HTTP standar.

Persyaratan

Metabase membutuhkan setidaknya 1GB RAM. Semua dependensi yang diperlukan akan diinstal selama tutorial. Anda akan memerlukan instalasi minimal CentOS 7 dengan akses root di atasnya. Jika Anda login sebagai pengguna non-root, Anda dapat menjalankan sudo -i untuk beralih ke pengguna root.

Perbarui Sistem Basis

Sebelum menginstal paket apa pun, Anda disarankan untuk memperbarui paket dan repositori menggunakan perintah berikut.

yum -y update

Instal Node.js

Node.js diperlukan oleh Mailtrain karena dibuat menggunakan Nodemailer. Node.js adalah runtime JavaScript yang sangat populer dan Nodemailer adalah modul untuk aplikasi Node.js untuk mengirim email.

Tambahkan repositori Node.js 8.x:

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

Instal Node.js.

yum -y install nodejs

Instal MariaDB

Untuk menyimpan database Mailtrain kita perlu menginstal MariaDB. MariaDB adalah fork dari MySQL
Instal repositori MariaDB ke dalam sistem Anda.

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

Tambahkan baris berikut ke file.

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

Sekarang instal MariaDB dengan menjalankan.

yum -y install mariadb-server mariadb

Untuk memulai MariaDB dan mengaktifkannya untuk memulai saat boot menggunakan perintah berikut.

systemctl start mariadb
systemctl enable mariadb

Sekarang jalankan perintah berikut untuk mengamankan instalasi MySQL atau MariaDB Anda.

mysql_secure_installation

Ini akan menjalankan skrip kecil yang meminta Anda untuk memberikan kata sandi root untuk MariaDB. Karena kami baru saja menginstal MariaDB, kata sandi root tidak disetel, cukup tekan enter untuk melanjutkan. Ini akan menanyakan apakah Anda ingin mengatur kata sandi root untuk instalasi MariaDB Anda, pilih y dan atur kata sandi yang kuat untuk instalasi. Ini juga akan meminta Anda untuk menghapus database pengujian dan pengguna anonim. Sebagian besar pertanyaan sudah cukup jelas dan Anda harus menjawab ya atau y untuk semua pertanyaan.

Mailtrain memerlukan dua pengguna database untuk bekerja, satu untuk mengelola database Mailtrain dan satu lagi untuk menghasilkan laporan pekerja.

Untuk membuat database kita harus login ke baris perintah MySQL terlebih dahulu. Jalankan perintah berikut untuk hal yang sama.

mysql -u root -p

Ini akan meminta Anda untuk memasukkan kata sandi, berikan kata sandi root MySQL yang telah Anda atur sebelumnya. Sekarang jalankan kueri berikut untuk membuat database baru untuk instalasi Mailtrain Anda.

CREATE DATABASE mailtrain CHARACTER SET utf8 COLLATE utf8_general_ci;

Query di atas akan membuat database bernama mailtrain. Pastikan Anda menggunakan titik koma di akhir setiap kueri karena kueri selalu diakhiri dengan titik koma. Setelah database dibuat, Anda dapat membuat pengguna baru dan memberikan semua izin kepada pengguna untuk database tersebut. Menggunakan pengguna root tidak disarankan untuk database. Untuk membuat pengguna database baru, jalankan kueri berikut.

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

Kueri di atas akan membuat pengguna dengan nama pengguna mailtrain. Anda dapat menggunakan nama pengguna pilihan apa pun alih-alih mailtrain. Ganti StrongPassword dengan kata sandi yang kuat. Sekarang berikan hak istimewa yang sesuai untuk pengguna database Anda atas database yang telah Anda buat. Jalankan perintah berikut.

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

Sekarang buat pengguna baru untuk Mailtrain RO.

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

Berikan akses baca ke pengguna RO melalui database Mailtrain.

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

Sekarang jalankan perintah berikut untuk segera menerapkan perubahan pada hak istimewa database.

FLUSH PRIVILEGES;

Keluar dari perintah MySQL menggunakan perintah keluar.

EXIT;

Instal Dependensi

Mailtrain membutuhkan lebih sedikit ketergantungan untuk bekerja. Instal dependensi dengan menjalankan:

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

ImageMagick adalah alat untuk memproses gambar Bitmap dan Git akan digunakan untuk mengkloning repositori proyek aplikasi. Redis adalah aplikasi cache sesi yang sangat populer dan Python, bind-utils, gcc-c++ dan make akan digunakan untuk mengkompilasi file aplikasi.

Mulai Redis dan aktifkan untuk memulai secara otomatis:

systemctl start redis
systemctl enable redis

Unduh dan Instal Mailtrain

Kloning file instalasi Mailtrain menggunakan Git.

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

Buat pengguna Mailtrain baru untuk menjalankan daemon Mailtrain. Ini akan memastikan bahwa Mailtrain berjalan di lingkungan yang terisolasi.

adduser mailtrain -d /opt/mailtrain

Perintah di atas akan membuat mailtrain pengguna baru dan /opt/mailtrain akan digunakan sebagai direktori home.

Beralih ke direktori Mailtrain dengan menjalankan:

cd /opt/mailtrain

Sebelum melangkah lebih jauh, Anda harus membuat string acak yang akan digunakan untuk mengenkripsi data sesi. Untuk menghasilkan string acak, Anda dapat menggunakan utilitas pwgen.

Jalankan yum -y install pwgen untuk menginstal utilitas pwgen. Jalankan pwgen -1 64 untuk menghasilkan string dengan panjang 64 karakter. Anda akan melihat:

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

Buat file konfigurasi baru production.toml. Konfigurasi yang disediakan dalam file ini menggantikan file konfigurasi default default.toml. Kita tidak boleh mengubah file konfigurasi default. Buat file production.toml baru untuk menyimpan konfigurasi utama.

nano config/production.toml

Isi file dengan konfigurasi berikut.

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

Konfigurasi di atas memungkinkan Mailtrain berjalan sebagai pengguna mailtrain dan pengguna Mailtrain Reports Worker dijalankan sebagai pengguna bukan siapa-siapa. Selanjutnya, ia mengonfigurasi server bawaan untuk mendengarkan localhost pada port 3000. Kami akan menyiapkan Nginx sebagai proxy terbalik sehingga antarmuka web Mailtrain dapat diakses melalui port HTTP standar.

Ganti RandomString in secret=dengan string acak yang dihasilkan di atas. Setel proxy ke true karena kami akan menjalankan server bawaan Mailtrain di belakang proxy Nginx.

Tetapkan nama pengguna, kata sandi, dan nama basis data dari basis data yang telah Anda buat untuk menyimpan data Mailtrain.

Juga, buat file baru untuk menyimpan konfigurasi produksi Laporan Pekerja.

nano workers/reports/config/production.toml

Isi file dengan konfigurasi berikut.

[log]
level="error"

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

Sekarang turunkan dependensi Node.js yang diperlukan dan instal perangkat lunaknya:

npm install --production

Setelah aplikasi terinstal, Anda dapat langsung memulainya menggunakan:

NODE_ENV=production npm start

Jika server sedang berjalan, maka Anda akan melihat output berikut.

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

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

Tetapi alih-alih memulai aplikasi secara langsung, kami akan menggunakan layanan systemd. Hentikan eksekusi dengan menekan ctrl + C.

Berikan kepemilikan file kepada pengguna Mailtrain dan hapus semua izin konfigurasi dari pengguna non-root sistem lainnya:

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

Menyiapkan Layanan Systemd

Buat file layanan Systemd baru. Menggunakan Systemd alih-alih perintah langsung untuk menjalankan server akan memastikan bahwa server dimulai secara otomatis saat gagal dan reboot. Itu membuat pengelolaan layanan menjadi sangat mudah.

nano /etc/systemd/system/mailtrain.service

Isi file dengan konfigurasi berikut.

[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

Mulai Mailtrain dan aktifkan untuk memulai secara otomatis saat boot:

systemctl enable mailtrain
systemctl start mailtrain

Untuk memeriksa status layanan, jalankan:

systemctl status mailtrain

Anda akan melihat bahwa layanan berjalan secara aktif.

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

Setup Logrotate

Logrotate adalah utilitas yang sangat berguna untuk menyegarkan log yang sudah usang. Ketika sebuah layanan berjalan terus menerus, itu menghasilkan sejumlah besar log. File yang berisi log menghabiskan banyak ruang disk. Logrotate menghapus log lama secara berkala sehingga entri log dapat diganti dengan log baru.

Buat file konfigurasi logrotate baru:

nano /etc/logrotate.d/mailtrain

Isi file dengan konfigurasi berikut:

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

Siapkan Nginx sebagai Proksi Terbalik

Kami telah mengonfigurasi antarmuka web bawaan Mailtrain untuk mendengarkan localhost pada port 3000, karena penting untuk menjalankan server web produksi untuk menyajikan situs web kepada pengguna. Dalam tutorial ini, kita akan menggunakan Nginx sebagai reverse proxy sehingga aplikasi dapat diakses melalui port HTTP standar. Instal server web Nginx:

yum -y install nginx

Buat host virtual baru untuk file blok server untuk Nginx:

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

Isi file dengan:

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

Mulai ulang server web Nginx dan aktifkan untuk memulai secara otomatis saat boot:

systemctl restart nginx
systemctl enable nginx

Konfigurasi Firewall dan SELinux

Jika Anda menjalankan firewall di server Anda, Anda perlu mengonfigurasi firewall untuk menetapkan pengecualian untuk layanan HTTP. Izinkan proxy terbalik Nginx untuk terhubung dari luar jaringan.

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

Jika Anda telah mengaktifkan SELinux di sistem Anda, maka Anda perlu menambahkan beberapa pengecualian dalam kebijakan SELinux.

Untuk memeriksa apakah SELinux diaktifkan, jalankan:

getenforce

Jika Anda telah mengaktifkan SELinux, jalankan:

setsebool -P httpd_can_network_connect 1

Mengakses Antarmuka Web

Instalasi Mailtrain sekarang selesai. Sekarang Anda dapat mengakses server Mailtrain di http://news.example.com. Anda akan melihat antarmuka berikut.

Klik tombol login dan login menggunakan username admin dan password test.

Jelajahi Akun bagian dasbor dan perbarui alamat email dan kata sandi. Sangat penting untuk memperbarui kata sandi sesegera mungkin.

Selain itu, penting untuk memperbarui pengaturan sebelum Anda dapat menggunakan Mailtrain.

Perbarui URL Situs dan email Admin. Anda juga dapat memberikan ID pelacakan Google Analytics untuk melacak wawasan melalui Google analytics. Anda dapat meletakkan beberapa kode HTML yang akan ditampilkan di beranda server Anda.

Tetapkan default kampanye, seperti nama Sander Anda, Alamat default, Default dari nama, email dan URL, dll. Saat mengirim email, jika opsi ini tidak dikonfigurasi, maka default akan digunakan.

Terakhir, konfigurasi yang paling penting adalah menyediakan kredensial server email. Anda dapat menggunakan server SMTP atau Amazon SES (Layanan Email Sederhana). Jika Anda menggunakan SMTP, berikan nama host server email, port, nama pengguna, dan kata sandi server SMTP Anda. Jika Anda menggunakan Amazon SES, berikan kunci API dan kredensial lainnya.

Anda juga dapat mengatur server SMTP Anda sendiri. cukup ikuti salah satu panduan ini:

  • Cara Membuat Server Surat Berfitur Lengkap menggunakan Pos
  • Bangun Mail Server Berfitur Lengkap Di CentOS 6 Dengan Postfix, Dovecot, PostgreSQL
  • Menyiapkan Server Email Menggunakan Exim4, Clamav, Dovecot, SpamAssassin Dan Banyak Lagi Di Debian

Anda memiliki server Mailtrain yang berfungsi penuh terinstal di server CentOS 7 Anda sekarang. Buat daftar pertama Anda dan mulailah mengirim buletin ke pelanggan. Anda dapat membuat template interaktif menggunakan editor WYSIWYG dan mengirim email menggunakan kampanye. Mailtrain juga menyediakan laporan email yang dikirim dan dibuka. Anda dapat menggunakan tab Otomatisasi untuk membuat pemicu yang mengirim email saat beberapa tindakan tertentu dilakukan. Anda juga dapat mengatur enkripsi GPG. Jika daftar memiliki bidang khusus untuk kumpulan Kunci Publik GPG, maka pelanggan dapat mengunggah kunci publik GPG mereka untuk menerima pesan terenkripsi dari daftar.


Cent OS
  1. Cara Menginstal MariaDB di CentOS 7

  2. Cara Menginstal PhpWiki di CentOS 7

  3. Cara Menginstal LiteCart di CentOS 7

  1. Cara Menginstal MariaDB di CentOS 8

  2. Cara Menginstal Bambu di CentOS 7

  3. Cara Menginstal Brasero di CentOS 8

  1. Cara Menginstal MariaDB Di CentOS 6

  2. Cara Menginstal MariaDB di CentOS 7

  3. Cara Menginstal ProjectPier di CentOS 7