Pergi ke kandungan utama

Debian/Ubuntu

Dalam panduan ini, anda akan menyebarkan MyEMS pada pelayan Debian atau Ubuntu.

Keperluan Awal

Panduan ini menerangkan cara memasang 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. Keperluan perkakasan bergantung pada pangkalan data yang dipilih dan jumlah peranti yang disambungkan ke sistem. Untuk menjalankan MyEMS dan MySQL pada satu mesin, anda memerlukan sekurang-kurangnya 4GB RAM.

Klon kod sumber:

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

Langkah 1 Pangkalan Data

Lihat Pangkalan Data

Langkah 2 myems-api

  • Pasang perkhidmatan myems-api:
sudo cp -r ~/myems/myems-api /myems-api
cd /myems-api
sudo apt install python3-pip
sudo pip install -r requirements.txt
Nota

(Ubuntu 24.04 LTS) Jika kod tidak berfungsi, anda boleh menggunakan kod berikut: sudo pip install -r requirements.txt --break-system-packages

Buat fail .env berdasarkan example.env dan edit fail .env jika perlu:

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

Tambahkan port ke firewall:

sudo ufw allow 8000

Sediakan fail 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/

Seterusnya dayakan perkhidmatan supaya ia bermula secara automatik semasa but:

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

Mulakan perkhidmatan:

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

Langkah 3 myems-admin

  • Pasang Pelayan NGINX

rujuk ke http://nginx.org/en/linux_packages.html#Debian

Dayakan perkhidmatan nginx:

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

Dalam bahagian 'http', tambah beberapa arahan:

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

}

Tambah fail baharu di bawah /etc/nginx/conf.d/

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

Tulis dengan arahan seperti di bawah, gantikan url myems-api lalai http://127.0.0.1:8000/ dengan url sebenar jika perkhidmatan myems-api dihoskan pada pelayan yang berbeza

server {
listen 8001;
server_name myems-admin;
location / {
root /var/www/myems-admin;
index index.html index.htm;
}
## Untuk mengelakkan isu CORS, gunakan Nginx untuk proksi myems-api ke laluan /api
## Tambah lokasi /api lain dalam 'server'
## Gantikan url myems-api lalai http://127.0.0.1:8000/ dengan url sebenar jika perkhidmatan myems-api dihoskan pada pelayan yang berbeza
location /api {
proxy_pass http://127.0.0.1:8000/;
proxy_connect_timeout 75;
proxy_read_timeout 600;
send_timeout 600;
}
}
  • Pasang myems-admin : Jika pelayan tidak boleh menyambung ke internet, sila mampatkan folder myems/myems-admin dan muat naik ke pelayan dan 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

Semak fail konfig dan ubah jika perlu:

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

Folder 'upload' adalah untuk fail yang dimuat naik oleh pengguna. JANGAN padam/gerak/tulis ganti folder 'upload' apabila anda menaik taraf myems-admin.

 /var/www/myems-admin/upload

Tambahkan port ke firewall:

sudo ufw allow 8001

Mulakan semula perkhidmatan nginx:

sudo systemctl restart nginx.service

Langkah 4 myems-modbus-tcp

Dalam langkah ini, anda akan memasang perkhidmatan myems-modbus-tcp.

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

(Ubuntu 24.04 LTS) Jika kod tidak berfungsi, anda boleh menggunakan kod berikut: sudo pip install -r requirements.txt --break-system-packages

Salin fail example.env ke .env dan ubah suai fail .env:

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

Sediakan perkhidmatan systemd:

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

Dayakan perkhidmatan:

sudo systemctl enable myems-modbus-tcp.service

Mulakan perkhidmatan:

sudo systemctl start myems-modbus-tcp.service

Pantau perkhidmatan:

sudo systemctl status myems-modbus-tcp.service

Lihat log:

cat /myems-modbus-tcp.log

Langkah 5 myems-cleaning

Dalam langkah ini, anda akan memasang perkhidmatan myems-cleaning.

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

(Ubuntu 24.04 LTS) Jika kod tidak berfungsi, anda boleh menggunakan kod berikut: sudo pip install -r requirements.txt --break-system-packages

Salin fail example.env ke .env dan ubah suai fail .env:

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

Sediakan perkhidmatan systemd:

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

Dayakan perkhidmatan:

sudo systemctl enable myems-cleaning.service

Mulakan perkhidmatan:

sudo systemctl start myems-cleaning.service

Pantau perkhidmatan:

sudo systemctl status myems-cleaning.service

Lihat log:

cat /myems-cleaning.log

Langkah 6 myems-normalization

Dalam langkah ini, anda akan memasang perkhidmatan myems-normalization.

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

(Ubuntu 24.04 LTS) Jika kod tidak berfungsi, anda boleh menggunakan kod berikut: sudo pip install -r requirements.txt --break-system-packages

Salin fail example.env ke .env dan ubah suai fail .env:

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

Sediakan perkhidmatan systemd:

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

Dayakan perkhidmatan:

sudo systemctl enable myems-normalization.service

Mulakan perkhidmatan:

sudo systemctl start myems-normalization.service

Pantau perkhidmatan:

sudo systemctl status myems-normalization.service

Lihat log:

cat /myems-normalization.log

Langkah 7 myems-aggregation

Dalam langkah ini, anda akan memasang perkhidmatan myems-aggregation.

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

(Ubuntu 24.04 LTS) Jika kod tidak berfungsi, anda boleh menggunakan kod berikut: sudo pip install -r requirements.txt --break-system-packages

Salin fail example.env ke .env dan ubah suai fail .env:

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

Sediakan perkhidmatan systemd:

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

Dayakan perkhidmatan:

sudo systemctl enable myems-aggregation.service

Mulakan perkhidmatan:

sudo systemctl start myems-aggregation.service

Pantau perkhidmatan:

sudo systemctl status myems-aggregation.service

Lihat log:

cat /myems-aggregation.log

Langkah 8 myems-web

Dalam langkah ini, anda akan memasang perkhidmatan UI myems-web.

Padam fail lalai

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

Tambah fail baharu di bawah /etc/nginx/conf.d/

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

Tambah bahagian 'server' baharu dengan arahan seperti di bawah:

server {
listen 80;
server_name myems-web;
location / {
root /var/www/myems-web;
index index.html index.htm;
# tambah arahan try_files untuk mengelakkan ralat 404 semasa menyegarkan halaman
try_files $uri /index.html;
}
## Untuk mengelakkan isu CORS, gunakan Nginx untuk proksi myems-api ke laluan /api
## Tambah lokasi /api lain dalam 'server' dan gantikan alamat demo http://127.0.0.1:8000/ dengan url sebenar
location /api {
proxy_pass http://127.0.0.1:8000/;
proxy_connect_timeout 75;
proxy_read_timeout 600;
send_timeout 600;
}
}

Mulakan semula NGINX

sudo systemctl restart nginx
  • Pasang UI Web MyEMS:

Sediakan NodeJS:

curl -fsSL https://deb.nodesource.com/setup_20.x | sudo bash -
sudo apt-get install -y nodejs
  • Ubah suai fail config.js:
Nota

Dapatkan mapboxToken di https://mapbox.com dan kemudian tetapkan showOnlineMap kepada true. Jika anda ingin mematikan ciri peta dalam talian, tetapkan showOnlineMap kepada false

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

Bina

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

Pasang Perhatikan bahawa laluan berikut harus sama dengan yang dikonfigurasikan dalam nginx.conf.

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

Tambahkan port ke firewall:

sudo ufw allow 80

Mulakan semula NGINX

sudo systemctl restart nginx

Selepas Pemasangan

Tahniah! Anda kini boleh log masuk ke UI Admin MyEMS dan UI Web.

Port Lalai

UI Web MyEMS: 80

API MyEMS: 8000

UI Admin MyEMS: 8001

Andaikan alamat pelayan adalah 192.168.1.8 (gantikan dengan alamat pelayan sebenar) Akses UI Web MyEMS di http://192.168.1.8 (80 boleh ditinggalkan) Akses UI Admin MyEMS di http://192.168.1.8:8001

Kata Laluan Lalai

UI Admin MyEMS

Nama pengguna:

administrator

Kata laluan:

!MyEMS1

UI Web MyEMS

Nama pengguna:

administrator@myems.io

Kata laluan:

!MyEMS1

Penyelesaian Masalah

Jika 'error: externally-managed-environment' berlaku semasa melaksanakan 'sudo pip install -r requirements.txt'

Buat direktori konfigurasi persekitaran maya:

sudo python -m venv venv

Mula menggunakan persekitaran maya

source venv/bin/activate

Pasang keperluan

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

Nyahaktif persekitaran maya

deactivate