Memisahkan Fungsi Server dan Sender

Aplikasi OneSender sebenarnya terdiri dari dua sistem utama.

Pertama, Sistem API server yang berfungsi menjalankan dashboard.
Kedua, Sistem WA sender yang tugas utamanya mengirimkan pesan ke server WhatsApp.

Mode instalasi standar menyatukan kedua fungsi itu agar lebih simpel. Tapi jika kita ingin sistem yang lebih handal dan robust, kita bisa menjalankan kedua fungsi itu secara terpisah.

Langkah-langkahnya sebagai berikut.

1. Menyiapkan file aplikasi #

– Copy file aplikasi `onesender` atau `onesender_64bit` menjadi dua file berikut: `onesender_server` dan `onesender_sender`.
– Jika Anda menggunakan OS windows file asal yang perlu dicopy yaitu: `onesender.exe`.

2. Menyiapkan file config #

Buat dua file config yang masing-masing untuk onesender server dan onesender sender.

Setting server: #

– Buat file dengan nama `config_server.yaml`.
– Isi dengan file configurasi berikut:

app:
  environment: production
  error_log: /opt/onesender/error_server.log
  name: server
  mode: server
  timezone: Asia/Jakarta
  version: 1.6.13

database:
  connection: mysql
  host: 127.0.0.1
  name: onesender
  password: password
  port: 3306
  user: root

license_code: wwww-xxxx-yyyy-zzzz

server:
  disabled: false
  attachment_size: 10240
  cors_origin: http://ALAMAT_IP, http://127.0.0.1
  default_api_key: b1228535535dd9d4ce22d6da489ff75c478f03ed
  rest_api_url: http://ALAMAT_IP:3000/api/
  socket_server_url: ws://ALAMAT_IP:3000/ws/
  url: :3000

whatsapp:
  disabled: true
  document_extension: .pdf,.zip,.docx,.doc,.xlsx,.xls,.pptx,.ppt
  hard_restart_on_error: true
  max_sender_time: 5s
  min_sender_time: 2s
  runtime_interval: 10s
  session_path: /opt/onesender/session.gob
  version_major: 2
  version_minor: 2142
  version_patch: 12
  time_plus: 0
  time_minus: 25200


api_adapter:
  wablas: true
  starsender: true
  woowa: true
  wanotifid: true
  woonotifcom: true

Setting utama untuk memisahkan server dari sender yaitu:

server:
  disabled: false
  
whatsapp:
  disabled: true

Setting sender: #

– Buat file dengan nama `config_sender.yaml`.
– Isi dengan file configurasi berikut:

app:
  environment: production
  error_log: /opt/onesender/error_sender.log
  name: sender
  mode: sender
  timezone: Asia/Jakarta
  version: 1.6.13

database:
  connection: mysql
  host: 127.0.0.1
  name: onesender
  password: password
  port: 3306
  user: root

license_code: wwww-xxxx-yyyy-zzzz

server:
  disabled: true

whatsapp:
  disabled: false
  document_extension: .pdf,.zip,.docx,.doc,.xlsx,.xls,.pptx,.ppt
  hard_restart_on_error: true
  max_sender_time: 5s
  min_sender_time: 2s
  runtime_interval: 10s
  session_path: /opt/onesender/session.gob
  version_major: 2
  version_minor: 2142
  version_patch: 12
  time_plus: 0
  time_minus: 25200


api_adapter:
  wablas: true
  starsender: true
  woowa: true
  wanotifid: true
  woonotifcom: true

Setting utama untuk memisahkan server dari sender yaitu:

server:
  disabled: true
  
whatsapp:
  disabled: false

Menguji aplikasi #

Untuk mencoba apakah settingan sudah benar silahkan jalankan onesender dengan file configurasi yang kita pilih.

Jalankan command ini di terminal

./onesender_server --conf=/opt/onesender/config_server.yaml

3. Menyiapkan init script #

 

Buat ini script #

File init script berfungsi untuk menjalankan auto run ketika vps atau server reboot.

Jalankan command berikut untuk membuat file:
1. /etc/systemd/system/onesender_server.service
2. /etc/systemd/system/onesender_sender.service

Commandnya sebagai berikut:

echo "[Unit]
Description=onesender_server Service

Wants=network.target
After=syslog.target network-online.target

[Service]
Type=simple
ExecStart=/opt/onesender/onesender_server --conf=/opt/onesender/config_server.yaml
ExecStop=killall -w onesender_server
Restart=on-failure
RestartSec=10
KillMode=process

[Install]
WantedBy=multi-user.target
" > /etc/systemd/system/onesender_server.service

echo "[Unit]
Description=onesender_sender Service

Wants=network.target
After=syslog.target network-online.target

[Service]
Type=simple
ExecStart=/opt/onesender/onesender_sender --conf=/opt/onesender/config_sender.yaml
ExecStop=killall -w onesender_sender
Restart=on-failure
RestartSec=10
KillMode=process

[Install]
WantedBy=multi-user.target
" > /etc/systemd/system/onesender_sender.service

Install init script #

Aktifkan init script di atas dengan command berikut:

sudo systemctl daemon-reload

sudo systemctl enable onesender_server
sudo systemctl enable onesender_sender

sudo systemctl start onesender_server
sudo systemctl start onesender_sender

Powered by BetterDocs