Pergi ke konten utama

CentOS/RHEL/Rocky/AlmaLinux/Oracle Linux

Dalam panduan ini, Anda akan melakukan deploy MyEMS pada server CentOS atau RHEL.

Prasyarat

Panduan ini menjelaskan cara menginstal MyEMS pada CentOS Stream 9 / Red Hat Enterprise Linux 9 (RHEL 9) / Rocky 9 / AlmaLinux 9.1 / Oracle Linux 9.1. Persyaratan perangkat keras tergantung pada database yang dipilih dan jumlah perangkat yang terhubung ke sistem. Untuk menjalankan MyEMS dan MySQL pada satu mesin, Anda memerlukan setidaknya 4GB RAM.

Perbarui sistem dan instal alat

sudo dnf update
sudo dnf install git
sudo dnf install python3-pip

Clone kode sumber:

cd ~
git clone https://github.com/myems/myems

Langkah 1 Database

Lihat Database

Langkah 2 myems-api

  • Instal layanan myems-api:
sudo cp -r ~/myems/myems-api /myems-api
cd /myems-api
sudo pip install -r requirements.txt
Catatan

(CentOS Stream 9/RHEL 9/Rocky 9/AlmaLinux 9.1/Oracle Linux 9.1)If the code does not work, you can use the following code: sudo pip install -r requirements.txt --break-system-packages

Buat file .env berdasarkan example.env dan edit file .env jika diperlukan:

sudo cp /myems-api/example.env /myems-api/.env
sudo nano /myems-api/.env

Tambahkan port ke firewall:

sudo firewall-cmd --zone=public --add-port=8000/tcp --permanent
sudo firewall-cmd --reload

Siapkan file konfigurasi systemd:

sudo cp /myems-api/myems-api.service /lib/systemd/system/
sudo cp /myems-api/myems-api.socket /lib/systemd/system/
sudo cp /myems-api/myems-api.conf /usr/lib/tmpfiles.d/

Selanjutnya aktifkan layanan agar otomatis berjalan saat boot:

sudo systemctl enable myems-api.socket
sudo systemctl enable myems-api.service

Mulai layanan:

sudo systemctl start myems-api.socket
sudo systemctl start myems-api.service

Langkah 3 myems-admin

  • Instal Server NGINX

lihat http://nginx.org/en/linux_packages.html#RHEL

Aktifkan layanan nginx:

sudo systemctl start nginx.service
  • Konfigurasi NGINX
sudo nano /etc/nginx/nginx.conf

Pada bagian 'http', tambahkan beberapa direktif:

http {
client_header_timeout 600;
client_max_body_size 512M;
gzip on;
gzip_min_length 512;
gzip_proxied any;
gzip_types *;
gzip_vary on;
proxy_buffering off;
...

}

Tambahkan file baru di bawah /etc/nginx/conf.d/

sudo nano /etc/nginx/conf.d/myems-admin.conf

Tulis dengan direktif seperti di bawah ini, dan ganti url default myems-api http://127.0.0.1:8000/ dengan url sebenarnya jika layanan myems-api dihosting di server yang berbeda

server {
listen 8001;
server_name myems-admin;
location / {
root /var/www/myems-admin;
index index.html index.htm;
}
## To avoid CORS issue, use Nginx to proxy myems-api to path /api
## Add another location /api in 'server'
## Replace the default myems-api url http://127.0.0.1:8000/ with actual url if the myems-api servcie hosted on different server
location /api {
proxy_pass http://127.0.0.1:8000/;
proxy_connect_timeout 75;
proxy_read_timeout 600;
send_timeout 600;
}
}
  • Instal myems-admin: Jika server tidak dapat terhubung ke internet, silakan kompres folder myems/myems-admin dan unggah ke server lalu ekstrak ke ~/myems/myems-admin
sudo mkdir /var/www
sudo cp -r ~/myems/myems-admin  /var/www/myems-admin
sudo chmod 0755 -R /var/www/myems-admin

Periksa file konfigurasi dan ubah jika perlu:

sudo nano /var/www/myems-admin/app/api.js
Peringatan

Folder 'upload' digunakan untuk file yang diunggah pengguna. JANGAN hapus/pindahkan/timpa folder 'upload' saat Anda memperbarui myems-admin.

 /var/www/myems-admin/upload

Buka port dan tambahkan port ke firewall:

sudo semanage port -a -t http_port_t  -p tcp 8001
sudo firewall-cmd --zone=public --add-port=8001/tcp --permanent
sudo firewall-cmd --reload

Restart layanan nginx:

sudo systemctl restart nginx.service
Tips

Jika Anda mengalami error '403 Forbidden' pada nginx, Anda dapat memperbaikinya dengan mengubah mode SELinux menggunakan perintah 'sudo setenforce 0'

Langkah 4 myems-modbus-tcp

Pada langkah ini, Anda akan menginstal layanan myems-modbus-tcp.

sudo cp -r ~/myems/myems-modbus-tcp /myems-modbus-tcp
cd /myems-modbus-tcp
sudo pip install -r requirements.txt
Catatan

(CentOS Stream 9/RHEL 9/Rocky 9/AlmaLinux 9.1/Oracle Linux 9.1)If the code does not work, you can use the following code: sudo pip install -r requirements.txt --break-system-packages

Salin file example.env ke .env dan modifikasi file .env:

sudo cp /myems-modbus-tcp/example.env /myems-modbus-tcp/.env
sudo nano /myems-modbus-tcp/.env

Siapkan layanan systemd:

sudo cp myems-modbus-tcp.service /lib/systemd/system/

Aktifkan layanan:

sudo systemctl enable myems-modbus-tcp.service

Mulai layanan:

sudo systemctl start myems-modbus-tcp.service

Pantau layanan:

sudo systemctl status myems-modbus-tcp.service

Lihat log:

cat /myems-modbus-tcp.log

Langkah 5 myems-cleaning

Pada langkah ini, Anda akan menginstal layanan myems-cleaning.

sudo cp -r ~/myems/myems-cleaning /myems-cleaning
cd /myems-cleaning
sudo pip install -r requirements.txt
Catatan

(CentOS Stream 9/RHEL 9/Rocky 9/AlmaLinux 9.1/Oracle Linux 9.1)If the code does not work, you can use the following code: sudo pip install -r requirements.txt --break-system-packages

Salin file example.env ke .env dan modifikasi file .env:

sudo cp /myems-cleaning/example.env /myems-cleaning/.env
sudo nano /myems-cleaning/.env

Siapkan layanan systemd:

sudo cp /myems-cleaning/myems-cleaning.service /lib/systemd/system/

Aktifkan layanan:

sudo systemctl enable myems-cleaning.service

Mulai layanan:

sudo systemctl start myems-cleaning.service

Pantau layanan:

sudo systemctl status myems-cleaning.service

Lihat log:

cat /myems-cleaning.log

Langkah 6 myems-normalization

Pada langkah ini, Anda akan menginstal layanan myems-normalization.

sudo cp -r ~/myems/myems-normalization /myems-normalization
cd /myems-normalization
sudo pip install -r requirements.txt
Catatan

(CentOS Stream 9/RHEL 9/Rocky 9/AlmaLinux 9.1/Oracle Linux 9.1)If the code does not work, you can use the following code: sudo pip install -r requirements.txt --break-system-packages

Salin file example.env ke .env dan modifikasi file .env:

sudo cp /myems-normalization/example.env /myems-normalization/.env
sudo nano /myems-normalization/.env

Siapkan layanan systemd:

sudo cp /myems-normalization/myems-normalization.service /lib/systemd/system/

Aktifkan layanan:

sudo systemctl enable myems-normalization.service

Mulai layanan:

sudo systemctl start myems-normalization.service

Pantau layanan:

sudo systemctl status myems-normalization.service

Lihat log:

cat /myems-normalization.log

Langkah 7 myems-aggregation

Pada langkah ini, Anda akan menginstal layanan myems-aggregation.

sudo cp -r ~/myems/myems-aggregation /myems-aggregation
cd /myems-aggregation
sudo pip install -r requirements.txt
Catatan

(CentOS Stream 9/RHEL 9/Rocky 9/AlmaLinux 9.1/Oracle Linux 9.1)If the code does not work, you can use the following code: sudo pip install -r requirements.txt --break-system-packages

Salin file example.env ke .env dan modifikasi file .env:

sudo cp /myems-aggregation/example.env /myems-aggregation/.env
sudo nano /myems-aggregation/.env

Siapkan layanan systemd:

sudo cp /myems-aggregation/myems-aggregation.service /lib/systemd/system/

Aktifkan layanan:

sudo systemctl enable myems-aggregation.service

Mulai layanan:

sudo systemctl start myems-aggregation.service

Pantau layanan:

sudo systemctl status myems-aggregation.service

Lihat log:

cat /myems-aggregation.log

Langkah 8 myems-web

Pada langkah ini, Anda akan menginstal layanan UI myems-web.

  • Instal Server NGINX

lihat http://nginx.org/en/linux_packages.html#RHEL

  • Konfigurasi NGINX

Hapus file default

sudo rm /etc/nginx/sites-enabled/default
sudo rm /etc/nginx/conf.d/default.conf

Tambahkan file baru di bawah /etc/nginx/conf.d/

sudo nano /etc/nginx/conf.d/myems-web.conf

Tambahkan bagian 'server' baru dengan direktif seperti di bawah ini:

server {
listen 80;
server_name myems-web;
location / {
root /var/www/myems-web;
index index.html index.htm;
# add try_files directive to avoid 404 error while refreshing pages
try_files $uri /index.html;
}
## To avoid CORS issue, use Nginx to proxy myems-api to path /api
## Add another location /api in 'server'
## replace the default myems-api url http://127.0.0.1:8000/ with actual url if the myems-api servcie hosted on different server
location /api {
proxy_pass http://127.0.0.1:8000/;
proxy_connect_timeout 75;
proxy_read_timeout 600;
send_timeout 600;
}
}
  • Instal MyEMS Web UI:

Siapkan NodeJS:

sudo dnf install nodejs
  • Modifikasi file config.js:
Catatan

Dapatkan mapboxToken di https://mapbox.com lalu atur showOnlineMap ke true. Jika Anda ingin mematikan fitur peta online, atur showOnlineMap ke false

cd ~/myems/myems-web
sudo nano src/config.js

Build dan Kompres

sudo npm i --unsafe-perm=true --allow-root --legacy-peer-deps
sudo npm run build

Instal Unggah file ke server web Anda. Perhatikan bahwa path berikut harus sama seperti yang dikonfigurasi di nginx.conf.

sudo mv build  /var/www/myems-web

Buka port dan tambahkan port ke firewall:

sudo semanage port -a -t http_port_t  -p tcp 80
sudo firewall-cmd --zone=public --add-port=80/tcp --permanent
sudo firewall-cmd --reload

Restart layanan nginx:

sudo systemctl restart nginx.service
Tips

Jika Anda mengalami error '500 Internal Server Error' pada nginx, Anda dapat memperbaikinya dengan mengubah mode SELinux menggunakan perintah 'sudo setenforce 0'

Setelah Instalasi

Selamat! Anda sekarang dapat masuk ke MyEMS Admin UI dan Web UI.

Port Default

MyEMS Web UI: 80

MyEMS API: 8000

MyEMS Admin UI: 8001

Password Default

Admin UI
administrator

!MyEMS1
Web UI
administrator@myems.io

!MyEMS1

Pemecahan Masalah