Fedora
Dalam panduan ini, Anda akan melakukan deploy MyEMS di server Fedora.
Prasyarat
Panduan ini menjelaskan cara menginstal MyEMS di Fedora 37 Server. Persyaratan perangkat keras bergantung pada basis data 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 Basis Data (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
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 --add-service=http --permanent
sudo firewall-cmd --zone=public --add-port=8000/tcp --permanent
sudo firewall-cmd --reload
Setup 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 dimulai secara otomatis 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
refer ke http://nginx.org/en/linux_packages.html#RHEL
Aktifkan layanan nginx:
sudo systemctl start nginx.service
- Konfigurasi NGINX
sudo nano /etc/nginx/nginx.conf
Di 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 /etc/nginx/conf.d/
sudo nano /etc/nginx/conf.d/myems-admin.conf
Tulis dengan direktif seperti di bawah, 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;
}
## Untuk menghindari masalah CORS, gunakan Nginx untuk memproksi myems-api ke path /api
## Tambahkan lokasi lain /api di 'server'
## Ganti URL default myems-api http://127.0.0.1:8000/ dengan URL sebenarnya jika layanan myems-api dihosting di server yang berbeda
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
Folder 'upload' untuk file yang diunggah pengguna. JANGAN hapus/pindahkan/timpa folder 'upload' saat Anda meng-upgrade myems-admin.
/var/www/myems-admin/upload
Buka port dan tambahkan port ke firewall:
sudo firewall-cmd --add-service=http --permanent
sudo firewall-cmd --zone=public --add-port=8001/tcp --permanent
sudo firewall-cmd --reload
Restart layanan nginx:
sudo systemctl restart nginx.service
Jika Anda mengalami error nginx '403 Forbidden', Anda dapat memperbaikinya dengan mengubah mode SELinux dengan perintah 'sudo setenforce 0'
Langkah 4 myems-modbus-tcp
Dalam 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
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
Setup 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
Monitor layanan:
sudo systemctl status myems-modbus-tcp.service
Lihat log:
cat /myems-modbus-tcp.log
Langkah 5 myems-cleaning
Dalam 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
Salin file example.env ke .env dan modifikasi file .env:
sudo cp /myems-cleaning/example.env /myems-cleaning/.env
sudo nano /myems-cleaning/.env
Setup 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
Monitor layanan:
sudo systemctl status myems-cleaning.service
Lihat log:
cat /myems-cleaning.log
Langkah 6 myems-normalization
Dalam 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
Salin file example.env ke .env dan modifikasi file .env:
sudo cp /myems-normalization/example.env /myems-normalization/.env
sudo nano /myems-normalization/.env
Setup 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
Monitor layanan:
sudo systemctl status myems-normalization.service
Lihat log:
cat /myems-normalization.log
Langkah 7 myems-aggregation
Dalam 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
Salin file example.env ke .env dan modifikasi file .env:
sudo cp /myems-aggregation/example.env /myems-aggregation/.env
nano /myems-aggregation/.env
Setup 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
Monitor layanan:
sudo systemctl status myems-aggregation.service
Lihat log:
cat /myems-aggregation.log
Langkah 8 myems-web
Dalam langkah ini, Anda akan menginstal layanan UI myems-web.
- Instal Server NGINX
refer ke 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 /etc/nginx/conf.d/
sudo nano /etc/nginx/conf.d/myems-web.conf
Tambahkan bagian 'server' baru dengan direktif sebagai berikut:
server {
listen 80;
server_name myems-web;
location / {
root /var/www/myems-web;
index index.html index.htm;
# tambahkan direktif try_files untuk menghindari error 404 saat me-refresh halaman
try_files $uri /index.html;
}
## Untuk menghindari masalah CORS, gunakan Nginx untuk memproksi myems-api ke path /api
## Tambahkan lokasi lain /api di 'server'
## ganti URL default myems-api http://127.0.0.1:8000/ dengan URL sebenarnya jika layanan myems-api dihosting di server yang berbeda
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:
Setup NodeJS:
sudo dnf install nodejs
Modifikasi file config.js:
Dapatkan mapboxToken di https://mapbox.com lalu setel showOnlineMap ke true. Jika Anda ingin mematikan fitur peta online, setel 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 jalur berikut harus sama dengan yang dikonfigurasi di nginx.conf.
sudo mv build /var/www/myems-web
Buka port dan tambahkan port ke firewall:
sudo firewall-cmd --add-service=http --permanent
sudo firewall-cmd --add-port=80/tcp --permanent
sudo firewall-cmd --reload
Restart layanan nginx:
sudo systemctl restart nginx.service
Jika Anda mengalami error nginx '500 Internal Server Error', Anda dapat memperbaikinya dengan mengubah mode SELinux dengan perintah 'sudo setenforce 0'
Pasca Instalasi
Selamat! Anda sekarang dapat login ke MyEMS Admin UI dan Web UI.
Port Default
MyEMS Web UI: 80
MyEMS API: 8000
MyEMS Admin UI: 8001
Asumsikan alamat server adalah 192.168.1.8 (ganti dengan alamat server sebenarnya) Akses MyEMS Web UI di http://192.168.1.8 (80 dapat dihilangkan) Akses MyEMS Admin UI di http://192.168.1.8:8001
Kata Sandi Default
MyEMS Admin UI
Username:
administrator
Password:
!MyEMS1
MyEMS Web UI
Username:
administrator@myems.io
Password:
!MyEMS1