Pergi ke konten utama

Debian/Ubuntu

Dalam panduan ini, Anda akan melakukan deploy MyEMS pada server Debian atau Ubuntu.

Prasyarat

Panduan ini menjelaskan cara menginstal MyEMS pada Ubuntu 24.04 LTS / Ubuntu 22.04 LTS / Ubuntu 20.04 LTS / Ubuntu 18.04 LTS / Debian 12 Bookworm / Debian 11 Bullseye / Debian 10 Buster. Persyaratan hardware tergantung pada basis data yang dipilih dan jumlah perangkat yang terhubung ke sistem. Untuk menjalankan MyEMS dan MySQL pada satu mesin, Anda membutuhkan setidaknya 4GB RAM.

Kloning kode sumber:

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

Langkah 1 Basis Data

Lihat Basis Data

Langkah 2 myems-api

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

(Ubuntu 24.04 LTS) Jika kode tidak berfungsi, Anda dapat menggunakan kode berikut: 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 ufw allow 8000

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/

Berikutnya, aktifkan layanan agar secara otomatis mulai saat boot:

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

Jalankan 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#Debian

Aktifkan layanan nginx:

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

Dalam 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, ganti url myems-api default http://127.0.0.1:8000/ dengan url aktual jika layanan myems-api dihosting pada 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 /api lain di 'server'
## Ganti url myems-api default http://127.0.0.1:8000/ dengan url aktual jika layanan myems-api dihosting pada 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
Peringatan

Folder 'upload' digunakan untuk file yang diunggah pengguna. JANGAN menghapus/pindahkan/menimpa folder 'upload' saat Anda melakukan upgrade myems-admin.

 /var/www/myems-admin/upload

Tambahkan port ke firewall:

sudo ufw allow 8001

Restart layanan nginx:

sudo systemctl restart nginx.service

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
Catatan

(Ubuntu 24.04 LTS) Jika kode tidak berfungsi, Anda dapat menggunakan kode berikut: sudo pip install -r requirements.txt --break-system-packages

Salin file exmaple.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

Jalankan 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
Catatan

(Ubuntu 24.04 LTS) Jika kode tidak berfungsi, Anda dapat menggunakan kode berikut: sudo pip install -r requirements.txt --break-system-packages

Salin file exmaple.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

Jalankan 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
Catatan

(Ubuntu 24.04 LTS) Jika kode tidak berfungsi, Anda dapat menggunakan kode berikut: sudo pip install -r requirements.txt --break-system-packages

Salin file exmaple.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

Jalankan 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
Catatan

(Ubuntu 24.04 LTS) Jika kode tidak berfungsi, Anda dapat menggunakan kode berikut: sudo pip install -r requirements.txt --break-system-packages

Salin file exmaple.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

Jalankan 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.

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;
# tambahkan direktif try_files untuk menghindari error 404 saat merefresh halaman
try_files $uri /index.html;
}
## Untuk menghindari masalah CORS, gunakan Nginx untuk memproksi myems-api ke path /api
## Tambahkan lokasi /api lain di 'server' dan ganti alamat demo http://127.0.0.1:8000/ dengan url aktual
location /api {
proxy_pass http://127.0.0.1:8000/;
proxy_connect_timeout 75;
proxy_read_timeout 600;
send_timeout 600;
}
}

Restart NGINX

sudo systemctl restart nginx
  • Instal UI Web MyEMS:

Siapkan NodeJS:

curl -fsSL https://deb.nodesource.com/setup_20.x | sudo bash -
sudo apt-get install -y nodejs
  • Modifikasi file config.js:
Catatan

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

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

Build

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

Instal Perhatikan bahwa path berikut harus sama dengan yang dikonfigurasi di nginx.conf.

sudo rm -r /var/www/myems-web
sudo mv build  /var/www/myems-web

Tambahkan port ke firewall:

sudo ufw allow 80

Restart NGINX

sudo systemctl restart nginx

Pasca-instalasi

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

Port Default

MyEMS Web UI: 80

MyEMS API: 8000

MyEMS Admin UI: 8001

Dengan asumsi alamat server adalah 192.168.1.8 (ganti dengan alamat server aktual) 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

Nama Pengguna:

administrator

Kata Sandi:

!MyEMS1

MyEMS Web UI

Nama Pengguna:

administrator@myems.io

Kata Sandi:

!MyEMS1

Troubleshooting

Jika 'error: externally-managed-environment' muncul saat mengeksekusi 'sudo pip install -r requirements.txt'

Buat direktori konfigurasi lingkungan virtual:

sudo python -m venv venv

Mulai menggunakan lingkungan virtual

source venv/bin/activate

Instal requirements

sudo venv/bin/pip install -r requirements.txt

Nonaktifkan lingkungan virtual

deactivate