Deploy on Ubuntu 20.04
Ikuti langkah-langkah berikut untuk deploy EQUAL Backend pada Ubuntu Server 20.04.
Clean Server Directory
Masuk ke server menggunakan perintah ini:
Info
- Ganti SERVER_CERT.pem dengan file certificate untuk login ke server yang dituju.
- Ganti IP_SERVER dengan IP Address server yang dituju.
ssh -i SERVER_CERT.pem ubuntu@IP_SERVER
Hapus semua file yang ada di /var/www/html menggunakan perintah berikut:
sudo rm /var/www/html/*
sudo chown -R ubuntu:ubuntu /var/www/html
Upload Backend File
Upload EQUAL_version.zip dari local ke folder /var/www/html di server menggunakan perintah berikut:
Info
- Jalankan perintah dibawah ini menggunakan Command Prompt atau Terminal di local PC Anda.
- Ganti SERVER_CERT.pem dengan file certificate untuk login ke server yang dituju.
- Ganti EQUAL_version.zip dengan file Backend EQUAL yang akan di install.
- Ganti IP_SERVER dengan IP Address server yang dituju.
scp -i SERVER_CERT.pem EQUAL_version.zip ubuntu@IP_SERVER:/var/www/html/
Setup Backend
Unzip EQUAL_version.zip menggunakan perintah ini
sudo su
cd /var/www/html
unzip '*.zip'
chown -R ubuntu:ubuntu /var/www/html
exit
Hapus EQUAL_version.zip menggunakan perintah ini
sudo rm /var/www/html/*.zip
Edit file .env menggunakan perintah ini:
sudo nano /var/www/html/.env
Ubah PUSHER_APP_HOST sesuai IP atau alamat server
. . .
LARAVEL_WEBSOCKETS_PORT=6001
PUSHER_APP_HOST=127.0.0.1
. . .
Notes
Jangan lupa untuk membuka traffic TCP untuk port 6001 pada firewall, karena akan digunakan oleh websocket.
Setup Apache
Enable module rewrite menggunakan perintah berikut:
sudo a2enmod rewrite
- Virtual Host dengan Domain
- Virtual Host tanpa Domain
Buat virtual host menggunakan perintah berikut:
Info
Ubah DOMAIN_EQUAL_SERVER dengan nama domain yang diberikan ke client tersebut.
sudo nano /etc/apache2/sites-available/DOMAIN_EQUAL_SERVER.conf
Paste konfigurasi berikut
<VirtualHost *:80>
ServerAdmin info@equalsystem.io
DocumentRoot "/var/www/html/"
ServerName DOMAIN_EQUAL_SERVER
<Directory "/var/www/html/">
Options +Indexes +FollowSymlinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error_equal.log
CustomLog ${APACHE_LOG_DIR}/access_equal.log combined
</VirtualHost>
Notes: Tekan ctrl + x kemudian y kemudian enter untuk menyimpan.
Enable virtual host menggunakan perintah berikut:
sudo a2ensite DOMAIN_EQUAL_SERVER.conf
Apabila tidak disediakan domain, buat virtual host menggunakan perintah berikut:
sudo nano /etc/apache2/sites-available/equal.conf
Paste konfigurasi berikut
<VirtualHost *:80>
ServerAdmin info@equalsystem.io
DocumentRoot "/var/www/html/"
ServerName localhost
<Directory "/var/www/html/">
Options +Indexes +FollowSymlinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error_equal.log
CustomLog ${APACHE_LOG_DIR}/access_equal.log combined
</VirtualHost>
Notes: Tekan ctrl + x kemudian y kemudian enter untuk menyimpan.
Enable virtual host menggunakan perintah berikut:
sudo a2ensite equal.conf
Restart apache menggunakan perintah berikut:
sudo apachectl restart
Setup Database
Masuk ke MySQL server menggunakan perintah berikut:
sudo mysql -u root
Buat database api dan api_sync_log dengan perintah berikut:
CREATE DATABASE IF NOT EXISTS api CHARACTER SET latin1 COLLATE latin1_general_ci;
CREATE DATABASE IF NOT EXISTS api_sync_log CHARACTER SET latin1 COLLATE latin1_general_ci;
Import file sql menggunakan perintah berikut:
use api;
source /var/www/html/_sql/1_api.sql;
use api;
source /var/www/html/_sql/2_api_trigger.sql;
Buka http://ip_server atau http://alamat_server, jika installasi berhasil maka akan di redirect ke halaman Google.
Update License
Lisensi yang didapatkan biasanya akan dalam bentuk format seperti ini:
- DEMOEQUALSYSTEM-Yogyakarta-DaerahIstimewaYogyakarta_20190202_2021-09-16-15-05-23.dat
- DEMOEQUALSYSTEM-Yogyakarta-DaerahIstimewaYogyakarta_20190202_2021-09-16-15-05-23.lic
Rename terlebih dahulu dengan nama berikut sesuai dengan extension nya (.lic / .dat)
EqualERP.licERPHelper.dat
Upload license tersebut dari local ke server menggunakan perintah berikut:
Info
- Jalankan perintah dibawah ini menggunakan Command Prompt atau Terminal di local PC Anda.
- Ganti SERVER_CERT.pem dengan file certificate untuk login ke server yang dituju.
- Ganti IP_SERVER dengan IP Address server yang dituju.
scp -i SERVER_CERT.pem EqualERP.lic ubuntu@IP_SERVER:/var/www/html/app/Lib/
scp -i SERVER_CERT.pem ERPHelper.dat ubuntu@IP_SERVER:/var/www/html/app/Lib/
Switch Timezone
Untuk mengubah timezone Backend pada server yang berada di luar zona WIB edit Asia\Jakarta menggunakan perintah berikut:
sudo nano /var/www/html/app/Providers/AppServiceProvider.php
Ubah menjadi salah satu timezone berikut:
Asia/Makassar(WITA)Asia/Jayapura(WIT)
Misal diubah menjadi zona WITA, contohnya seperti berikut:
. . .
public function boot()
{
//Schema::defaultStringLength(191);
\Carbon\Carbon::setLocale('id');
date_default_timezone_set('Asia/Makassar');
DB::connection()->enableQueryLog();
}
. . .
Notes: Tekan ctrl + x kemudian y kemudian enter untuk menyimpan.
Fix Directory Permission
Jalankan perintah berikut:
sudo chmod -R 755 /var/www/html
sudo chown -R www-data:www-data /var/www/html
sudo chgrp -R www-data /var/www/html/storage
sudo chmod -R ug+rwx /var/www/html/storage
sudo chgrp -R www-data /var/www/html/app/Lib
sudo chmod -R ug+rwx /var/www/html/app/Lib
Server Setting
Lakukan server setting menggunakan aplikasi frontend. Apabila server setting berhasil maka akan diarahkan ke halaman Sign In.
Import Update Trigger
Khusus untuk versi 2.2.1 ada update trigger yang dilakukan setelah server setting, import file v220_api_update_trigger.sql menggunakan perintah berikut:
sudo mysql -u root
use api;
source /var/www/html/_sql/v220_api_update_trigger.sql;
Import file sql tersebut ke database api.
Notes
File sql tersebut hanya bisa di import setelah melakukan server setting, apabila Anda belum melakukan server setting maka proses import akan gagal.
Scheduler
Setup Supervisor
Info
Scheduler akan berjalan dengan baik ketika di install setelah melakukan server setting. Apabila proses installasi nya dilakukan sebelum melakukan server setting, akan ada banyak error yang terjadi kedepannya.
Setelah selesai server setting, install Scheduler pada server menggunakan perintah berikut:
sudo nano /etc/supervisor/conf.d/laravel-websocket.conf
Paste konfigurasi berikut:
[program:laravel-websocket]
command=php /var/www/html/artisan websocket:serve
autostart=true
autorestart=true
user=www-data
numprocs=1
redirect_stderr=true
stdout_logfile=/var/www/html/storage/logs/websocket.log
Notes: Tekan ctrl + x kemudian y kemudian enter untuk menyimpan.
sudo nano /etc/supervisor/conf.d/laravel-worker.conf
Paste konfigurasi berikut:
[program:laravel-worker]
command=php /var/www/html/artisan queue:listen --timeout=0 --delay=0 --tries=3 --sleep=3 --queue=manual,raptor
autostart=true
autorestart=true
user=www-data
numprocs=1
redirect_stderr=true
stdout_logfile=/var/www/html/storage/logs/worker.log
Notes: Tekan ctrl + x kemudian y kemudian enter untuk menyimpan.
Gunakan perintah berikut untuk menjalankan scheduler:
sudo supervisorctl update
Gunakan perintah berikut untuk melihat status scheduler:
sudo supervisorctl status
Apabila berhasil, outputnya kurang lebih seperti berikut:
laravel-websocket RUNNING pid 3470, uptime 0:00:05
laravel-worker RUNNING pid 3472, uptime 0:00:05
Setup Cronjob
Jalankan perintah berikut:
sudo su
crontab -e
Apabila ada output seperti berikut:
no crontab for root - using an empty one
Select an editor. To change later, run 'select-editor'.
1. /bin/nano <---- easiest
2. /usr/bin/vim.basic
3. /usr/bin/vim.tiny
4. /bin/ed
Choose 1-4 [1]:
Tekan 1 kemudian tekan enter
Tambahkan kode berikut pada bagian paling bawah:
# laravel scheduler
* * * * * sudo php /var/www/html/artisan schedule:run >> /dev/null 2>&1
Notes: Tekan ctrl + x kemudian y kemudian enter untuk menyimpan.
Apabila berhasil, outputnya kuran lebih seperti berikut:
crontab: installing new crontab
Jalankan perintah berikut:
exit