Install osTicket - Ticketing System
osTicket
osTicket merupakan salah satu sistem tiket open-source pada platform LInux yang ditulis dalam PHP. osTicket mendukung berbagai jenis database seperti MySQL, PostgreSQL dan dapat berintegrasi dengan LDAP/Active directory untuk otentikasi terpusat. osTicket adalah aplikasi berbasis web yang sederhana dan ringan. osTicket memiliki fitur mengarahkan pertanyaan yang dibuat melalui email, formulir web, dan panggilan telepon menjadi platform dukungan pelanggan yang sederhana, mudah digunakan, multi-user, dan berbasis web.
osTicket adalah sistem tiket open-source yang banyak digunakan. sistem ini dengan baik mengintegrasikan pertanyaan yang dibuat melalui email, telepon, dan formulir berbasis web ke dalam antarmuka web multi-pengguna yang mudah digunakan. Mengelola, mengatur, dan arsipkan semua permintaan dan tanggapan di satu tempat dengan tetap memberikan akuntabilitas dan respons yang layak kepada pelanggan/pelapor.
Fitur osTicket
Berikut ini beberapa fitur unggulan osTicket:
- Custom Fields/ Kustomisasi Pengisian Data : Sesuaikan data yang dikumpulkan dari pengguna saat mengirimkan tiket untuk membantu menyelesaikan masalah secara langsung.
- Custom Columns and Queues/ Kustom Kolom dan Antrean: Kustomisasi Antrean adalah tampilan tiket berdasarkan kriteria kustom yang Anda tentukan. Kustomisasi Kolom adalah kolom tambahan yang awalnya tidak ditampilkan saat melihat tab tiket.
- *Ticket Filters/ Filter Tiket: Membuat pengaturan untuk mengarahkan tiket masuk ke departemen, agen, dan personil terkait yang mempercepat tindakan yang tepat.
- Help Topics/ Bantuan Topik: Bantuan Topik yang dapat dikonfigurasi untuk tiket web memungkinkan kita mengarahkan pertanyaan ke departemen yang tepat untuk penyelesaian cepat.
- Agent Collision Avoidance/ Penghindaran Tabrakan Agen: Mekanisme penguncian tiket untuk memungkinkan staf mengunci tiket selama respons untuk menghindari respons yang bertentangan atau ganda.
- Assign, Transfer, & Referral/ Tetapkan, Transfer, & Rujukan: Transfer tiket antar departemen untuk memastikan ditangani oleh agen yang benar, atau tetapkan tiket ke agen atau tim agen tertentu.
- Auto-Responder/ Balasan Otomatis: Balasan otomatis yang dapat dikonfigurasi dikirim ketika tiket baru dibuka atau pesan diterima.
- Thread Action: Agen memiliki kemampuan untuk membuat Tiket atau Tugas dari urutan entri Tiket atau dari urutan entri Tugas.
- Service Level Agreements/Perjanjian Tingkat Layanan: Semua permintaan dan tanggapan dukungan diarsipkan secara online untuk pengguna akhir.
- Advanced Search/Pencarian Lanjutan: Mempersempit kriteria pencarian dengan Pencarian Lanjutan.
- Task/Tugas: Membuat daftar tugas internal untuk agen.
Instalasi pada Ubuntu Server 18.04
Syarat untuk penerapan osTicket:
- Server Ubuntu 18.04
- LEMP Server (MySQL/MariaDB dan PHP)
- Nginx
- osTicket v1.15.2
- SSL
Perbaharui Sistem
Memperbaharui sistem operasi dengan perintah :
$ sudo apt update && apt upgrade -y
Install LEMP Server
OsTicket memerlukan server Web, PHP dan Database Server untuk diinstal di server.
Install Nginx Web Server
Menginstal web server Nginx dengan perintah berikut :
$ sudo apt install nginx -y
Sekarang mari kita periksa layanan Nginx dan Untuk memulai layanan secara manual, jalankan perintah berikut :
$ sudo systemctl status nginx
$ sudo systemctl start nginx
Mengaktifkan nginx untuk memulai saat boot dengan menjalankan perintah berikut :
$ sudo systemctl enable nginx
Install PHP dan PHP-PFM
Selanjutnya, perlu menginstal PHP, PHP-FPM dan beberapa modul PHP tambahan yang diperlukan agar OsTicket dapat berjalan dengan baik. Berikut perintah untuk menginstal php-7.2:
$ sudo apt install php php-mysql php-cgi php-fpm php-cli php-curl php-gd php-imap php-mbstring php-xml-util php-intl php-apcu php-common php-gettext php-bcmath
Sekarang edit file php.ini dengan jalankan perintah berikut di terminal :
$ sudo nano /etc/php/7.2/fpm/php.ini
Hapus komentar variabel cgi.fix_pathinfo
dan ubah nilainya menjadi 0.
...
cgi.fix_pathinfo=0
...
Setelah itu simpan file dengan cara
CTRL
+X
, kemudian ketik Y
dan enter.
Selanjutnya, restart php7.2-fpm dan aktifkan saat startup menggunakan perintah berikut:
$ sudo systemctl restart php7.2-fpm
$ sudo systemctl enable php7.2-fpm
Install dan Konfigurasi Database Server untuk OsTicket
Dari jendela terminal, jalankan perintah berikut untuk menginstal server database MySQL :
$ sudo apt install mysql-server
Sekarang mulai MySQL dan aktifkan untuk memulai saat boot kemudian periksa status MySQL dengan perintah berikut :
$ sudo systemctl start mysql
$ sudo systemctl enable mysql
$ sudo systemctl status mysql
Selanjutnya, amankan instalasi MySQL dengan perintah berikut :
$ sudo mysql_secure_installation
Jawab semua pertanyaan seperti berikut (dapat disesuaikan sesuai dengan kebutuhan) :
Would you like to setup VALIDATE PASSWORD plugin? Y
Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 0 -> 1
New password: (masukkan password)
Re-enter new password: (masukkan kembali password)
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y
Selanjutnya, masuk ke konsol MySQL seperti yang ditunjukkan di bawah ini :
$ sudo mysql -u root -p
Masukkan kata sandi root. Sekarang Anda perlu membuat user untuk database osTicket :
mysql > CREATE USER 'osticket_user'@'localhost' IDENTIFIED BY '0sticketPass';
mysql > SELECT user,authentication_string,plugin,host FROM mysql.user;
catatan :
osticket_user
: user, dapat diganti sesuai kebutuhan.0sticketPass
: password, dapat diganti sesuai kebutuhan.
Sekarang perlu membuat database untuk osTicket :
mysql > CREATE DATABASE osticket_db;
mysql > GRANT ALL PRIVILEGES ON osticket_db.* TO 'osticket_user'@'localhost';
mysql > FLUSH PRIVILEGES;
Download dan Konfigurasi osTicket
Buat direktori baru untuk osTicket dan kemudian masuk ke direktori tersebut.
$ sudo mkdir -p /var/www/osticket/
$ cd /var/www/osticket/
Selanjutnya download osTicket terbaru menggunakan wget
dan ekstrak dengan menggunakan unzip
perintah berikut :
$ sudo apt install wget unzip
$ sudo wget https://github.com/osTicket/osTicket/releases/download/v1.15.2/osTicket-v1.15.2.zip
$ sudo unzip osTicket-v1.15.2.zip
Anda akan mendapatkan scripts dan upload direktori setelah mengekstraksi.
Selanjutnya buat file konfigurasi osTicket dari file ost-sampleconfig.php
menggunakan perintah berikut:
$ sudo cp include/ost-sampleconfig.php include/ost-config.php
Selanjutnya, Anda perlu mengubah direktori web osTicket menjadi user dan grup www-data
:
$ sudo chown -R www-data:www-data /var/www/osticket
Membuat Virtual Host osTicket
Untuk memudahkan konfigurasi yang efisien, aman dan stabil untuk server NGINX, kita dapat menggunakan konfigurasi yang dapat kita sesuaikan dengan kebutuhan pada situs https://www.digitalocean.com/community/tools/nginx. Saatnya mengkonfigurasi nginx.conf
, dengan menjalankan perintah berikut :
$ cd /etc/nginx/
$ sudo nano nginx.conf
Masukkan konfigurasi nginx.conf
sebagai berikut :
# Generated by nginxconfig.io
# https://www.digitalocean.com/community/tools/nginx
user www-data;
pid /run/nginx.pid;
worker_processes auto;
worker_rlimit_nofile 65535;
# Load modules
include /etc/nginx/modules-enabled/*.conf;
events {
multi_accept on;
worker_connections 65535;
}
http {
charset utf-8;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
server_tokens off;
log_not_found off;
types_hash_max_size 2048;
types_hash_bucket_size 64;
## Start: Size Limits & Buffer Overflows ##
client_max_body_size 1k;
client_body_buffer_size 1K;
client_header_buffer_size 1k;
large_client_header_buffers 2 1k;
## END: Size Limits & Buffer Overflows ##
# MIME
include mime.types;
default_type application/octet-stream;
# Logging
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log warn;
# SSL
ssl_session_timeout 1d;
ssl_session_cache shared:SSL:10m;
ssl_session_tickets off;
# Diffie-Hellman parameter for DHE ciphersuites
ssl_dhparam /etc/nginx/dhparam.pem;
# Mozilla Intermediate configuration
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
# OCSP Stapling
ssl_stapling on;
ssl_stapling_verify on;
resolver 1.1.1.1 1.0.0.1 8.8.8.8 8.8.4.4 208.67.222.222 208.67.220.220 valid=60s;
resolver_timeout 2s;
# Load configs
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
}
Simpan file konfigurasi Nginx dan keluar (CTRL
+X
, kemudian Y
). Sekarang buat konfigurasi virtual host baru untuk OsTicket dengan menjalankan perintah berikut :
$ sudo nano /etc/nginx/sites-available/osticket.conf
Salin konfigurasi seperti di bawah ini :
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name 192.168.11.111; #domain osticket
set $base /var/www/osticket/upload;
root /var/www/osticket/upload;
# SSL
ssl_certificate /etc/ssl/certs/nginx-selfsigned.crt; #path sertifikat ssl
ssl_certificate_key /etc/ssl/private/nginx-selfsigned.key; #path kunci sertifikat ssl
# security
include nginxconfig.io/security.conf;
# index.php
index index.php index.html index.htm;
# index.php fallback
location / {
try_files $uri $uri/ /index.php?$query_string;
}
# additional config
include nginxconfig.io/general.conf;
# handle .php
location ~ \.php$ {
fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
include nginxconfig.io/php_fastcgi.conf;
}
}
# HTTP redirect
server {
listen 80;
listen [::]:80;
server_name 192.168.11.111;
return 301 https://192.168.11.111$request_uri;
}
Ubah server_name
192.168.11.111 seusai dengan nama domain yang telah disiapkan dan memasukkan path sertifikat sll dan kuncinya. Simpan file konfigurasi Nginx dan keluar (CTRL
+X
, kemudian Y
). Selanjutnya konfigurasi security.conf
yang sebelumnya kita membuat dahulu direktori nginxconfig.io
dengan perintah sebagai berikut :
$ sudo mkdir -p /etc/nginx/nginxconfig.io/
$ sudo nano /etc/nginx/nginxconfig.io/security.conf
Salin konfigurasi seperti di bawah ini :
# security headers
add_header X-XSS-Protection "1; mode=block" always;
add_header X-Content-Type-Options "nosniff" always;
add_header Referrer-Policy "no-referrer-when-downgrade" always;
add_header Content-Security-Policy "default-src 'self' http: https: data: blob: 'unsafe-inline'; frame-ancestors 'self';" always;
add_header Permissions-Policy "interest-cohort=()" always;
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
# . files
location ~ /\.(?!well-known) {
deny all;
}
Kemudian konfigurasi general.conf
dengan perintah berikut :
$ sudo nano /etc/nginx/nginxconfig.io/general.conf
Salin konfigurasi seperti di bawah ini :
# favicon.ico
location = /favicon.ico {
log_not_found off;
access_log off;
}
# robots.txt
location = /robots.txt {
log_not_found off;
access_log off;
}
# assets, media
location ~* \.(?:css(\.map)?|js(\.map)?|jpe?g|png|gif|ico|cur|heic|webp|tiff?|mp3|m4a|aac|ogg|midi?|wav|mp4|mov|webm|mpe?g|avi|ogv|flv|wmv)$ {
expires 7d;
access_log off;
}
# svg, fonts
location ~* \.(?:svgz?|ttf|ttc|otf|eot|woff2?)$ {
add_header Access-Control-Allow-Origin "*";
expires 7d;
access_log off;
}
# gzip
gzip on;
gzip_vary on;
gzip_proxied any;
gzip_comp_level 6;
gzip_types text/plain text/css text/xml application/json application/javascript application/rss+xml application/atom+xml image/svg+xml;
Selanjutnya konfigurasi php_fastcgi.conf
dengan perintah berikut :
$ sudo nano /etc/nginx/nginxconfig.io/php_fastcgi.conf
Salin konfigurasi seperti di bawah ini :
# 404
try_files $fastcgi_script_name =404;
# default fastcgi_params
include fastcgi_params;
# fastcgi settings
fastcgi_index index.php;
fastcgi_buffers 8 16k;
fastcgi_buffer_size 32k;
# fastcgi params
fastcgi_param DOCUMENT_ROOT $realpath_root;
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
fastcgi_param PHP_ADMIN_VALUE "open_basedir=$base/:/usr/lib/php/:/tmp/";
Aktifkan Virtual Host dan uji konfigurasinya.
$ sudo ln -s /etc/nginx/sites-available/osticket.conf /etc/nginx/sites-enabled/
$ sudo nginx -t
Jika tidak ada kesalahan konfigurasi, Output akan terlihat seperti ini :
Sekarang restart service :
$ sudo systemctl restart nginx
Instal dan Konfigurasikan osTicket
Akses alamat ip/ domain (https://192.168.11.111) pada browser untuk menampilkan osTicket UI, maka akan tampil halaman seperti di bawah ini :
Selanjutnya pilih
Continue
dan Anda akan diarahkan ke bagian konfigurasi osTicket.
System Settings
Helpdesk Name
: nama dari layanan bantuanDefault Email
: email utama layanan bantuan
Admin User
First Name
: nama depanLast Name
: nama belakangEmail Address
: alamat email administratorUsername
: username administratorPassword
: password administratorRetyoe Password
: ulangi password administrator
Databases Settings
MySQL Table Prefix
: default (tidak perlu dirubah)MySQL Hostname
: default (localhost
)MySQL Database
: nama database yang telah dibuat (osticket_db
)MySQL Username
: username untuk database (osticket_user
)MySQL Password
: password userosticket_user
TekanInstall Now
setelah pengisian data di atas. Ketika instalasi berhasil, maka akan menampilkan seperti berikut.Selanjutnya, ubah izin
ost-config.php
untuk menghapus akses write dan menghapus direktorisetup
dengan menjalankan perintah berikut:
$ cd /var/www/osticket/upload/include/
$ sudo chmod 0644 include/ost-config.php
$ sudo rm -R /var/www/osticket/upload/setup
Instalasi osTicket telah selesai, sebagai informasi sebagai berikut :
- alamat osTicket -> https://namadomain.com/
- login user -> https://192.168.11.111/login.php
- login admin osTicket -> https://namadomain.com/scp/index.php