Zammad adalah open source helpdesk/sistem dukungan pelanggan yang ditulis dalam Ruby. Ini adalah sistem tiket berbasis web dengan banyak fitur, termasuk dukungan untuk mengelola komunikasi pelanggan melalui beberapa saluran seperti Facebook, telegram, obrolan, dan email. Zammad didistribusikan di bawah GNU AFFERO General Public License (AGPL) dan dapat diinstal pada platform yang berbeda seperti Linux, AIX, FreeBSD, OpenBSD, dan MacOSX. Ini tersedia di Github dan gratis untuk diinstal di server Anda sendiri.
Dalam tutorial ini, saya akan menunjukkan cara menginstal dan mengkonfigurasi Sistem Tiket Zammad menggunakan server web Nginx dan PostgreSQL untuk sistem database. Kami akan menggunakan server CentOS 7, dan menggunakan SSL Letsencrypt untuk mengamankan koneksi client-server.
Apa yang akan kami lakukan
- Instal Sistem Tiket Zammad
- Instal dan Konfigurasi Letsencrypt
- Konfigurasi server Web Nginx
- Konfigurasi Zammad
- Tips Tambahan Zammad
Prasyarat
- Sistem CentOS 7
- RAM minimal 2 GB
- Keistimewaan Root
Langkah 1 - Instal Sistem Tiket Zammad
Sebelum menginstal sistem tiket Zammad di CentOS 7, kita perlu menginstal repositori EPEL (Extra Packages for Enterprise Linux) untuk instalasi server web Nginx.
Tambahkan repositori EPEL dengan menginstal paket epel menggunakan perintah yum berikut.
sudo yum -y install epel-release
Repositori EPEL telah ditambahkan ke sistem.
Selanjutnya, impor kunci Zammad dengan perintah impor rpm.
sudo rpm --import https://rpm.packager.io/key
Tambahkan repositori Zammad dengan membuat file .repo baru di direktori 'yum.repos.d' menggunakan editor vim.
vim /etc/yum.repos.d/zammad.repo
Tempelkan info berikut di sana.
[zammad]
name=Repository for zammad/zammad application.
baseurl=https://rpm.packager.io/gh/zammad/zammad/centos7/stable
enabled=1
Itu dia. Simpan dan keluar.
Sekarang instal Zammad menggunakan perintah yum berikut.
sudo yum -y install zammad
Catatan: Saat kita menginstal Zammad, maka secara otomatis akan menginstal paket lain yang diperlukan, termasuk server web Nginx dan database PostgreSQL.
Dan setelah instalasi selesai, Anda akan melihat hasilnya seperti gambar di bawah ini.
Zammad dan paket lainnya - server web Nginx dan database PostgreSQL - telah diinstal.
Langkah 2 - Instal dan Konfigurasikan SSL Letsencrypt
Dalam tutorial ini, kami ingin mengatur Zammad di bawah Nginx HTTPS dan menggunakan SSL gratis dari Letsencrypt. Dan kita akan melakukannya pada langkah ini dan menggunakan alat certbot (Letsencrypt Agent) yang dapat diinstal dari repositori.
Instal alat paket certbot dari repositori menggunakan yum.
yum -y install certbot
Selanjutnya, kita perlu membuat sertifikat SSL baru dengan alat certbot. Pastikan Anda memiliki domain sendiri untuk menghasilkan file sertifikat. Kami akan menggunakan nama domain 'zammad.hakase-labs.com'.
Buka direktori konfigurasi Nginx dan buka file nginx.conf di editor vim.
cd /etc/nginx/
vim nginx.conf
Tempelkan konfigurasi berikut di bawah 'server {} ' blok.
location ~ /.well-known {
allow all;
}
Simpan dan keluar. Kemudian uji konfigurasi dan mulai ulang server web.
nginx -t
systemctl restart nginx
Sebelum membuat file sertifikat SSL, pastikan port sistem Anda untuk HTTP dan HTTPS tidak diblokir oleh firewall. Anda dapat membuka port HTTP dan HTTPS di CentOS menggunakan perintah firewall-cmd seperti yang ditunjukkan di bawah ini.
firewall-cmd --permanent --add-service=https
firewall-cmd --reload
Sekarang buat file sertifikat SSL menggunakan perintah certbot berikut.
certbot certonly --standalone -d zammad.hakase-labs.co
Anda akan ditanya tentang alamat email Anda untuk memperbarui pemberitahuan - ketik alamat email Anda dan tekan 'Enter ' untuk melanjutkan. Untuk Persyaratan Layanan (TOS) Letsencrypt, ketik 'A ' menyetujui. Demikian pula, ketika diminta untuk berbagi email dengan EFF Foundation, ketik saja 'N ' untuk tidak.
Ketika perintah certbot selesai, Anda akan melihat hasilnya seperti di bawah ini.
File sertifikat SSL baru untuk instalasi Zammad kami telah dibuat. Semua sertifikat ada di '/etc/letsencryp/live/ ' direktori.
Langkah 3 - Konfigurasikan server Web Nginx
Pada langkah ini, kita akan mengkonfigurasi file host virtual untuk Zammad. Secara otomatis dibuat di direktori '/etc/nginx/conf.d/' selama instalasi zammad.
Buka '/etc/nginx/conf.d /' dan edit zammad.conf berkas.
cd /etc/nginx/conf.d/
vim zammad.conf
Ubah semua konfigurasi seperti yang ditunjukkan di bawah ini.
#
# this is the Nginx config for zammad
#
upstream zammad {
server localhost:3000;
}
upstream zammad-websocket {
server localhost:6042;
}
server {
listen 80;
server_name zammad.hakase-labs.co;
return 301 https://$host$request_uri;
}
server {
listen 443 http2 ssl;
ssl_certificate /etc/letsencrypt/live/zammad.hakase-labs.co/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/zammad.hakase-labs.co/privkey.pem;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH";
ssl_ecdh_curve secp384r1;
ssl_session_cache shared:SSL:10m;
ssl_session_tickets off;
ssl_stapling on;
ssl_stapling_verify on;
resolver 8.8.8.8 8.8.4.4 valid=300s;
resolver_timeout 5s;
add_header Strict-Transport-Security "max-age=63072000; includeSubdomains";
add_header X-Frame-Options DENY;
add_header X-Content-Type-Options nosniff;
# replace 'localhost' with your fqdn if you want to use zammad from remote
server_name zammad.irsyadf.me;
root /opt/zammad/public;
access_log /var/log/nginx/zammad.access.log;
error_log /var/log/nginx/zammad.error.log;
client_max_body_size 50M;
location ~ ^/(assets/|robots.txt|humans.txt|favicon.ico) {
expires max;
}
location /ws {
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_set_header CLIENT_IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_read_timeout 86400;
proxy_pass http://zammad-websocket;
}
location / {
proxy_set_header Host $http_host;
proxy_set_header CLIENT_IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_read_timeout 180;
proxy_pass http://zammad;
gzip on;
gzip_types text/plain text/xml text/css image/svg+xml application/javascript application/x-javascript application/json application/xml;
gzip_proxied any;
}
}
Simpan dan keluar.
Selanjutnya, uji konfigurasi Nginx dan pastikan tidak ada kesalahan. Kemudian restart server web.
nginx -t
systemctl restart nginx
File host virtual zammad sekarang menggunakan SSL. Periksa dengan perintah netstat dan pastikan Anda memiliki port 443 untuk HTTPS dengan status 'DENGARKAN '.
netstat -plntu
Langkah 4 - Konfigurasi Zammad
Zammad telah diinstal pada CentOS 7 dengan Nginx sebagai server web dan PostgreSQL sebagai server database, dan dijalankan di bawah koneksi HTTPS. Pada langkah ini, kita akan melakukan konfigurasi dasar Zammad Ticketing System.
Buka browser web Anda dan ketik alamat zammad 'zammad.hakase-labs.co'. Anda akan diarahkan ke koneksi HTTPS. Klik 'Siapkan sistem baru ' untuk melanjutkan.
Sekarang isi semua konfigurasi admin. Nama pengguna, alamat email, dan sandi, lalu klik 'Buat '.
Untuk nama organisasi, ketik nama perusahaan Anda dan klik 'Berikutnya '.
Untuk pemberitahuan email, klik 'Lanjutkan '.
Kita dapat melakukan konfigurasi Notifikasi Email dari halaman pengaturan.
Untuk konfigurasi saluran, klik 'Lewati '.
Dan sekarang Anda melihat dasbor admin Zammad dengan UI yang indah.
Zammad telah diinstal dengan HTTPS diaktifkan, dan konfigurasi telah selesai.
Langkah 5 - Aktifkan Layanan Zammad
Zammad hadir dengan tiga komponen - server aplikasi web, proses pekerja Zammad, dan server soket web. Kami dapat mengelola semua layanan dengan perintah systemcl di bawah ini.
systemctl start zammad
systemctl status zammad
systemctl restart zammad
Jika Anda ingin mengonfigurasi layanan satu per satu, Anda dapat menggunakan komponen tertentu seperti yang ditunjukkan di bawah ini.
systemctl status zammad-web
systemctl status zammad-worker
systemctl status zammad-websocket
Instalasi Sistem Tiket Zammad pada CentOS 7 telah selesai.