Cara Instalasi OpenEMM di CentOS 7

Saat ini, kita dapat menemukan banyak bisnis yang berbasis di marketplace atau website menggunakan email marketing untuk mengirimkan newsletter berisi informasi terkait campaign atau promo yang sedang berlangsung. Namun sayangnya, kebanyakan bisnis ini masih menggunakan bantuan dari pihak ketiga. Padahal, kamu bisa memanfaatkan Open E-Marketing Manager (OpenEMM). Di artikel ini, kamu bisa mempelajari cara instalasi OpenEMM di CentOS 7.

OpenEMM

OpenEMM adalah open source e-marketing manager dengan teknologi otomasi yang dapat berguna untuk pengiriman newsletter marketing, transaction mail, atau multi-stage email campaign. Meski kamu tidak perlu membayar layanan ini, tapi OpenEMM menawarkan banyak sekali fitur yang memungkinkanmu menggunakan templated-based HTML, automatic bounce management, mail opening, dan link tracking.

Ada statistik real-time dari aktivitas email campaign yang bisa kamu manfaatkan untuk mengoleksi data engagement serta activity log agar kamu dapat melakukan audit.

Fitur OpenEMM:

  • Mail List Server.
  • Real Time Statistics.
  • Static dan Dynamic Mail Template.
  • Bounce Management.
  • Graphical Statistics.
  • Modern Web Service API.
  • dan masih banyak yang lainnya.

Persiapan

Sebelum memulai proses instalasi, kamu harus memastikan bahwa kamu telah memenuhi beberapa persyaratan di bawah ini.

  • Memiliki server dengan CentOS 7.
  • Memiliki akses sebagai root.
  • Apache Tomcat 9.
  • Python 2.7.
  • MySQL 5.6, 5.7 atau MariaDB versi terbaru.
  • Wkhtmltox 0.12.2.1 atau versi terbaru.

Cara Instalasi OpenEMM di CentOS 7

Sebelum memulai cara instalasi OpenEMM di CentOS 7, kamu perlu tahu bahwa OpenEMM terdiri dari 2 paket (packages):

  1. Backend code untuk generation dan dispatch email, management of bounces: openemm-backend-19.*.000.*.tar.gz
  2. Frontend code dengan GUI, statistics service (chart dan diagram) dan web services: openemm-frontend-19.*.000.*.tar.gz

Ada juga utility package untuk membuat pengembangan dan operation-nya mudah dengan kode biner dari OpenEMM: openemm-runtime-19.*.tar.gz

Step 1 – Instal OS Packages.

Langkah pertama untuk cara instalasi OpenEMM di CentOS 7 yaitu menginstal beberapa package yang dibutuhkan:

 

$ yum install gcc 

$ yum install zip

$ yum install python

$ yum install java-1.8.0-openjdk-devel

$ yum install xorg-x11-fonts-75dpi zlib fontconfig freetype libX11 libXext libXrender urw-fonts

Step 2 – Instal DBMS (Database Management System)

Langkah kedua, instal DBMS. Di sini kami menggunakan MariaDB 10.2 sebagai DBMS.

 

$ yum install centos-release-scl

$ yum install rh-mariadb102-mariadb-server

$ yum install MySQL-python

 

Aktifkan dan start on-boot.

 

$ systemctl enable rh-mariadb102-mariadb

$ systemctl start rh-mariadb102-mariadb

 

Buat symbolic link (symlink) untuk memastikan bahwa OpenEMM dapat menemukan MariaDB.

 

$ cd /bin

$ ln -s /opt/rh/rh-mariadb102/root/bin/* .

 

Jalankan mysql_secure_installation untuk mengatur password root user, menghapus anonymous user, dan melarang login jarak jauh.

Step 3 – MTA 

Pada langkah berikut kita akan menggunakan Postfix sebagai MTA (Mail Transfer Agent) karena Postfix lebih cepat dibanding Sendmail yang masih perlu menginstal beberapa packages Postfix.

 

$ yum install postfix sendmail-milter procmail

 

Set MTA default-nya ke Postfix.

$ alternatives –set mta /usr/sbin/sendmail.postfix

 

Ubah konfigurasi Postfix.

$ cd /etc/postfix

$ nano main.cf

 

inet_interfaces = all

inet_protocols = all

mailbox_command = /usr/bin/procmail

mailbox_size_limit = 0

message_size_limit = 0

maximal_queue_lifetime = 1d

bounce_queue_lifetime = 1d

smtp_tls_security_level = may

smtp_tls_protocols = !SSLv2, !SSLv3

smtp_tls_ciphers = high

smtp_tls_mandatory_ciphers = $smtp_tls_ciphers

hash_queue_depth = 2

enable_long_queue_ids = yes

relay_domains = /home/openemm/var/run/relay.domains

transport_maps = hash:/home/openemm/var/run/transport.maps

smtpd_milters = unix:/home/openemm/var/run/bav.sock

 

Jika ada line yang sama dengan yang sudah ada di konfigurasi sebelumnya, cukup berikan comment dengan memberikan tanda pagar (#) di depan line.

 

Kamu juga perlu mengatur myhostname.

#myhostname = virtual.domain.tld

 

Virtual.domain.tld diubah dengan hostname domain yang kamu gunakan untuk mengakses dashboard OpenEMM via browser nanti.

 

Tambahkan script di bawah ini pada master.cf di line paling bawah.

mailloop  unix  –       n       n       –       –       pipe

  flags=RX user=openemm argv=/usr/bin/procmail /home/openemm/lib/bav.rc

 

Pada file master.cf, aktifkan TLS Manager dengan menghapus comment (#).

tlsmgr unix – – n 1000? 1 tlsmgr

 

Restart Postfix untuk memperbarui perubahan.

$ systemctl restart postfix

Step 4 – wkhtmltox

Download RPM wkhtmltox .

 

$ wget https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.5/wkhtmltox-0.12.5-1.centos7.x86_64.rpm

$ rpm -ihv wkhtmltox-*.rpm

Step 5 – Open Port 80 dan 8080

Jika kamu menggunakan ConfigServer Security Firewall (CSF), lakukan open port terlebih dulu.

$ nano /etc/csf/csf.conf

Kemudian, pada TCP_Out – Allow outgoing TCP ports dan # Allow incoming TCP ports dan tambahkan port 8080.

 

Kemudian forward dari 80 ke 8080 dengan menambahkan script di bawah ini pada line paling bawah csf.redirect.

*|80|*|8080|tcp

Step 6 – Buat Group dan User

Buat grup dan user untuk OpenEMM.

 

$ groupadd openemm 

$ useradd -m -g openemm -d /home/openemm -s /bin/bash openemm 

$ passwd openemm 

$ su – openemm

 

Step 7 – Download OpenEMM

Download deployment terbaru dan runtime package dari OpenEMM di sini. Package ini juga menyediakan installer untuk kode backend dan frontend.

 

Step 8 – Runtime Deployment

Download runtime tarball (nama file: openemm-runtime-19.*tar.gz) ke /home/openemm supaya dapat membuat deployment dan runtime environment untuk OpenEMM.

Ubah ke user OpenEMM dan unpack file tersebut.

 

$ su – openemm

$ tar -xvzpf openemm-runtime-19.*.tar.gz

$ ./OpenEMMInstaller.sh

 

Mengingat ada bug pada Runtime versi 19.07.015, symlink menjadi hilang setelah instalasi (hanya dibuat setelah pertama kali update runtime package). Buat symlink dengan menggunakan perintah di bawah ini. 

$ ln -s /home/openemm/tomcat/bin/openemm.sh /home/openemm/bin/openemm.sh

 

Symlink di atas memastikan backend juga ikut ter-restart saat kamu hendak melakukan restart services OpenEMM.

Saat menjalankan OpenEMM installer, cek environment kamu, karena kamu akan mendapat tawaran instalasi beberapa package seperti Tomcat 9. Hati-hatilah dalam memilih package yang akan berfungsi untuk website-mi. Lalu, ikuti cara instalasi OpenEMM berikut, untuk melakukan konfigurasi koneksi database (file .dbcfg) dan atur variabel environment:

  • JAVA_HOME (default: /usr/lib/jvm/java) for Java.
  • CATALINA_HOME (default: /home/openemm/opt/tomcat/) for Tomcat.
  • WKHTML (default: /usr/bin/wkhtmltoimage) for tool wkhtmltox.

Step 9 – Frontend dan Backend Deployment

Jika ingin melakukan deployment dari backend tarball, kamu perlu menjalankan OpenEMM Installer sebagai root user, karena beberapa file dari tarball perlu di-deploy menggunakan root permissions. 

 

$ sudo su –

$ /home/openemm/bin/OpenEMMInstaller.sh

 

Gunakan menu “Install or update package from AGNITAS Website” untuk menginstal frontend dan backend package. Menu yang sama juga menawarkan instalasi Tomcat atau update runtime package. Tergantung keperluanmu, kamu bisa menginstalnya atau tidak. Gunakan “n” jika tidak ingin diinstal atau update.

Saat deployment backend, akan dibuat beberapa directory dan symlink baru yang dibuat pada directory/home/openemm/.

Jika kamu tidak ingin menginstal backend package dari OpenEMM, kamu bisa menjalankan OpenEMM Installer menggunakan openemm user.

Step 10 – Konfigurasi

Log Access

OpenEMM membutuhkan akses read pada file maillog di /var/log/maillog. Buka file syslog dan masukkan “create 0644”, seperti di bawah ini.

$ nano /etc/logrotate.d/syslog

$ create 0644

$ chmod 644 /var/log/maillog

OpenEMM Installer

Saat menjalankan OpenEMM Installer, setup dan ubah konfigurasinya pada menu “Configuration and “Security”.

Sub-menu “Ubah emm.properties” pada menu “Configuration”:

  • Set system.url and birt.drilldownurl sesuai dengan OpenEMM server kamu (contoh https://openemm.example.com)
  • Set birt.url isi yang sama dengan birt.drilldownurl lalu tambahkan ”/birt“ di akhir (seperti https://openemm.example.com/birt)

Sub-menu “Ubah client/account data di db” pada OpenEMM database:

  • Set rdir_domain sesuai dengan OpenEMM server kamu, contoh:  https://openemm.example.com. Domain ini digunakan untuk redirect ke OpenEMM.
  • Set mailloop_domain ke domain kamu sebagai alamat pengirim, contoh: mailing.example.com, pointing sebagai MX yang di-pointing ke openemm.example.com.

Kemudian, buat password untuk main user “emm-master” di menu “Security” kemudian pilih menu “Create new initial ’emm-master’ password”. Simpan password yang sudah di-generate untuk login ke dashboard OpenEMM.

Kemudian restart OpenEMM dengan menu “Restart OpenEMM”.

Step 11 – Automated Startup

Kalau kamu ingin OpenEMM berjalan secara otomatis saat server reboot, kamu bisa menggunakan systemd unit file untuk tujuan tersebut. Buat file openemm.service pada direktori /etc/systemd/system/ dengan mengisi script seperti di bawah ini:

 

[Unit]

Description=OpenEMM startup script

After=var-run.mount network.target local-fs.target time-sync.target sendmail.service postfix.service

 

[Service]

User=openemm

Group=openemm

Type=oneshot

RemainAfterExit=true

ExecStart=/home/openemm/bin/openemm.sh start

ExecStop=/home/openemm/bin/openemm.sh stop

TimeoutSec=300

StandardOutput=journal+console

 

[Install]

WantedBy=multi-user.target

 

Kemudian, reload systemd-daemon dan aktifkan openemm service dengan perintah berikut:

$ systemctl daemon-reload

$ systemctl enable openemm

 

Setelah itu, coba akses hostname yang kamu isikan pada konfigurasi system.url. (Contoh: openemm.example.com).

cara instalasi openemm dashboard

Tampilan di atas adalah dashboard OpenEMM.

Simpulan

Itulah cara instalasi OpenEMM di CentOS 7 yang bisa kamu terapkan jika tak ingin menggunakan layanan pihak ketiga yang cukup menguras budget. Saat ini, seharusnya kamu sudah dapat memanfaatkan OpenEMM untuk membagikan email campaign bisnismu melalui otomasi email pemasaran.

Demikian artikel ini, jangan sungkan untuk meninggalkan ide-ide topik yang ingin kamu baca di blog Dewaweb. Semoga artikel ini membantu!