Ir al contenido principal

openEuler

En esta guía, desplegará MyEMS en un servidor openEuler.

Requisitos previos

Esta guía describe cómo instalar MyEMS en openEuler 23.03. Los requisitos de hardware dependen de la base de datos elegida y de la cantidad de dispositivos conectados al sistema. Para ejecutar MyEMS y MySQL en una sola máquina, necesitará al menos 4GB de RAM.

Clonar el código fuente:

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

Step 1 Database

Consulte Base de datos

Step 2 myems-api

  • Install myems-api service:
sudo cp -r ~/myems/myems-api /myems-api
cd /myems-api
sudo pip install -r requirements.txt

Cree el archivo .env basado en example.env y edite el archivo .env si es necesario:

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

Agregue el puerto al firewall:

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

Configure los archivos de 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/

Luego habilite los servicios para que se inicien automáticamente al arrancar:

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

Inicie los servicios:

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

Step 3 myems-admin

  • Instale el servidor NGINX

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

Habilite el servicio nginx:

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

En la sección 'http', agregue algunas directivas:

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

}

Agregue un nuevo archivo en /etc/nginx/conf.d/:

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

Escriba con las siguientes directivas y reemplace la URL predeterminada de myems-api http://127.0.0.1:8000/ por la URL real si el servicio myems-api está alojado en otro servidor

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;
}
}
  • Install myems-admin: If the server can not connect to the internet, please compress the myems/myems-admin folder and upload it to the server and extract it to ~/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

Verifique el archivo de configuración y cámbielo si es necesario:

sudo nano /var/www/myems-admin/app/api.js
Precaución

La carpeta 'upload' es para archivos subidos por el usuario. NO elimine/mueva/sobrescriba la carpeta 'upload' cuando actualice myems-admin.

 /var/www/myems-admin/upload

Desbloquee el puerto y agréguelo al firewall:

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

Reinicie el servicio nginx:

sudo systemctl restart nginx.service
Consejo

Si encuentra el error '403 Forbidden' de nginx, puede solucionarlo cambiando el modo de SELinux con el comando 'sudo setenforce 0'

Step 4 myems-modbus-tcp

En este paso, instalará el servicio myems-modbus-tcp.

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

Copie el archivo example.env a .env y modifique el archivo .env:

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

Configure el servicio systemd:

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

Habilite el servicio:

sudo systemctl enable myems-modbus-tcp.service

Inicie el servicio:

sudo systemctl start myems-modbus-tcp.service

Monitoree el servicio:

sudo systemctl status myems-modbus-tcp.service

Vea el registro:

cat /myems-modbus-tcp.log

Step 5 myems-cleaning

En este paso, instalará el servicio myems-cleaning.

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

Copie el archivo example.env a .env y modifique el archivo .env:

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

Configure el servicio systemd:

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

Habilite el servicio:

sudo systemctl enable myems-cleaning.service

Inicie el servicio:

sudo systemctl start myems-cleaning.service

Monitoree el servicio:

sudo systemctl status myems-cleaning.service

Vea el registro:

cat /myems-cleaning.log

Step 6 myems-normalization

En este paso, instalará el servicio myems-normalization.

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

Copie el archivo example.env a .env y modifique el archivo .env:

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

Configure el servicio systemd:

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

Habilite el servicio:

sudo systemctl enable myems-normalization.service

Inicie el servicio:

sudo systemctl start myems-normalization.service

Monitoree el servicio:

sudo systemctl status myems-normalization.service

Vea el registro:

cat /myems-normalization.log

Step 7 myems-aggregation

En este paso, instalará el servicio myems-aggregation.

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

Copie el archivo example.env a .env y modifique el archivo .env:

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

Configure el servicio systemd:

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

Habilite el servicio:

sudo systemctl enable myems-aggregation.service

Inicie el servicio:

sudo systemctl start myems-aggregation.service

Monitoree el servicio:

sudo systemctl status myems-aggregation.service

Vea el registro:

cat /myems-aggregation.log

Step 8 myems-web

En este paso, instalará el servicio de interfaz web de myems-web.

sudo nano /etc/nginx/nginx.conf

Elimine los archivos predeterminados

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

Agregue un nuevo archivo en /etc/nginx/conf.d/

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

Agregue una nueva sección 'server' con las siguientes directivas:

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;
}
}
  • Install MyEMS Web UI:

Setup NodeJS:

sudo dnf install nodejs

Modifique el archivo config.js:

Nota

Obtenga el mapboxToken en https://mapbox.com y luego establezca showOnlineMap en true. Si desea desactivar la función de mapa en línea, establezca showOnlineMap en false

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

Compile y comprima

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

Instale Suba los archivos a su servidor web. Tenga en cuenta que la siguiente ruta debe ser la misma que la configurada en nginx.conf.

sudo mv build  /var/www/myems-web

Desbloquee el puerto y agréguelo al firewall:

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

Reinicie el servicio nginx:

sudo systemctl restart nginx.service
Consejo

Si encuentra el error '500 Internal Server Error' de nginx, puede solucionarlo cambiando el modo de SELinux con el comando 'sudo setenforce 0'

Post-instalación

¡Felicidades! Ahora puede iniciar sesión en la interfaz de administración y la interfaz web de MyEMS.

Puertos predeterminados

MyEMS Web UI: 80

MyEMS API: 8000

MyEMS Admin UI: 8001

Suponiendo que la dirección del servidor sea 192.168.1.8 (reemplace con la dirección real del servidor) Acceda a MyEMS Web UI en http://192.168.1.8 (el 80 se puede omitir) Acceda a MyEMS Admin UI en http://192.168.1.8:8001

Contraseñas predeterminadas

MyEMS Admin UI

Nombre de usuario:

administrator

Contraseña:

!MyEMS1

MyEMS Web UI

Nombre de usuario:

administrator@myems.io

Contraseña:

!MyEMS1

Solución de problemas