SUSE
En esta guía, desplegarás MyEMS en SUSE Linux Enterprise Server.
Requisitos previos
Esta guía describe cómo instalar MyEMS en SUSE Linux Enterprise Server 15. Los requisitos de hardware dependen de la base de datos elegida y la cantidad de dispositivos conectados al sistema. Para ejecutar MyEMS y MySQL en una sola máquina, necesitarás al menos 4 GB de RAM.
Clona el código fuente:
cd ~
git clone https://github.com/myems/myems
Paso 1 Base de datos
Consulta Base de datos
Paso 2 myems-api
- Instala el servicio myems-api:
sudo cp -r ~/myems/myems-api /myems-api
cd /myems-api
sudo pip install -r requirements.txt
Crea el archivo .env basándote en example.env y edita el archivo .env si es necesario:
sudo cp /myems-api/example.env /myems-api/.env
sudo vi /myems-api/.env
Agrega el puerto al cortafuegos:
sudo firewall-cmd --zone=public --add-port=8000/tcp --permanent
sudo firewall-cmd --reload
Configura los archivos de configuración 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/
A continuación, habilita los servicios para que se inicien automáticamente al arrancar el sistema:
sudo systemctl enable myems-api.socket
sudo systemctl enable myems-api.service
Inicia los servicios:
sudo systemctl start myems-api.socket
sudo systemctl start myems-api.service
Paso 3 myems-admin
- Instala el servidor NGINX
Consulta http://nginx.org/en/linux_packages.html#Debian
Habilita el servicio nginx:
sudo systemctl start nginx.service
- Configura NGINX
sudo vi /etc/nginx/nginx.conf
En la sección 'http', agrega 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;
...
}
Agrega un nuevo archivo en /etc/nginx/conf.d/
sudo vi /etc/nginx/conf.d/myems-admin.conf
Escribe las directivas que se muestran a continuación; reemplaza la URL por defecto de myems-api http://127.0.0.1:8000/ por la URL real si el servicio myems-api se aloja en un servidor diferente
server {
listen 8001;
server_name myems-admin;
location / {
root /var/www/myems-admin;
index index.html index.htm;
}
## Para evitar problemas de CORS, usa Nginx para proxyear myems-api al path /api
## Agrega otra ubicación /api en 'server'
## Reemplaza la URL por defecto de myems-api http://127.0.0.1:8000/ por la URL real si el servicio myems-api se aloja en un servidor diferente
location /api {
proxy_pass http://127.0.0.1:8000/;
proxy_connect_timeout 75;
proxy_read_timeout 600;
send_timeout 600;
}
}
- Instala myems-admin: Si el servidor no puede conectarse a internet, comprime la carpeta myems/myems-admin y súbela al servidor, luego extráela en ~/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
Verifica el archivo de configuración y modifícalo si es necesario:
sudo vi /var/www/myems-admin/config.js
La carpeta /var/www/myems-admin/upload es para archivos subidos por el usuario. NO elimines/muevas/sobrescribas la carpeta 'upload' cuando actualices myems-admin.
Agrega el puerto al cortafuegos:
sudo firewall-cmd --zone=public --add-port=8001/tcp --permanent
sudo firewall-cmd --reload
Paso 4 myems-modbus-tcp
En este paso, instalarás 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
Copia el archivo example.env a .env y modifica el archivo .env:
sudo cp /myems-modbus-tcp/example.env /myems-modbus-tcp/.env
sudo vi /myems-modbus-tcp/.env
Configura el servicio systemd:
sudo cp myems-modbus-tcp.service /lib/systemd/system/
Habilita el servicio:
sudo systemctl enable myems-modbus-tcp.service
Inicia el servicio:
sudo systemctl start myems-modbus-tcp.service
Supervisa el servicio:
sudo systemctl status myems-modbus-tcp.service
Visualiza el registro:
cat /myems-modbus-tcp.log
Paso 5 myems-cleaning
En este paso, instalarás el servicio myems-cleaning.
sudo cp -r ~/myems/myems-cleaning /myems-cleaning
cd /myems-cleaning
sudo pip install -r requirements.txt
Copia el archivo example.env a .env y modifica el archivo .env:
sudo cp /myems-cleaning/example.env /myems-cleaning/.env
sudo vi /myems-cleaning/.env
Configura el servicio systemd:
sudo cp /myems-cleaning/myems-cleaning.service /lib/systemd/system/
Habilita el servicio:
sudo systemctl enable myems-cleaning.service
Inicia el servicio:
sudo systemctl start myems-cleaning.service
Supervisa el servicio:
sudo systemctl status myems-cleaning.service
Visualiza el registro:
cat /myems-cleaning.log
Paso 6 myems-normalization
En este paso, instalarás el servicio myems-normalization.
sudo cp -r ~/myems/myems-normalization /myems-normalization
cd /myems-normalization
sudo pip install -r requirements.txt
Copia el archivo example.env a .env y modifica el archivo .env:
sudo cp /myems-normalization/example.env /myems-normalization/.env
sudo vi /myems-normalization/.env
Configura el servicio systemd:
sudo cp /myems-normalization/myems-normalization.service /lib/systemd/system/
Habilita el servicio:
sudo systemctl enable myems-normalization.service
Inicia el servicio:
sudo systemctl start myems-normalization.service
Supervisa el servicio:
sudo systemctl status myems-normalization.service
Visualiza el registro:
cat /myems-normalization.log
Paso 7 myems-aggregation
En este paso, instalarás el servicio myems-aggregation.
sudo cp -r ~/myems/myems-aggregation /myems-aggregation
cd /myems-aggregation
sudo pip install -r requirements.txt
Copia el archivo example.env a .env y modifica el archivo .env:
sudo cp /myems-aggregation/example.env /myems-aggregation/.env
sudo vi /myems-aggregation/.env
Configura el servicio systemd:
sudo cp /myems-aggregation/myems-aggregation.service /lib/systemd/system/
Habilita el servicio:
sudo systemctl enable myems-aggregation.service
Inicia el servicio:
sudo systemctl start myems-aggregation.service
Supervisa el servicio:
sudo systemctl status myems-aggregation.service
Visualiza el registro:
cat /myems-aggregation.log
Paso 8 myems-web
En este paso, instalarás el servicio de interfaz de usuario myems-web.
-
Instala el servidor NGINX Consulta http://nginx.org/en/linux_packages.html#Debian
-
Configura NGINX
Elimina los archivos por defecto
sudo rm /etc/nginx/sites-enabled/default
sudo rm /etc/nginx/conf.d/default.conf
Agrega un nuevo archivo en /etc/nginx/conf.d/
sudo nano /etc/nginx/conf.d/myems-web.conf
Agrega una nueva sección 'server' con las directivas que se muestran a continuación:
server {
listen 80;
server_name myems-web;
location / {
root /var/www/myems-web;
index index.html index.htm;
# agrega la directiva try_files para evitar errores 404 al actualizar las páginas
try_files $uri /index.html;
}
## Para evitar problemas de CORS, usa Nginx para proxyear myems-api al path /api
## Agrega otra ubicación /api en 'server' y reemplaza la dirección de demostración http://127.0.0.1:8000/ por la URL real
location /api {
proxy_pass http://127.0.0.1:8000/;
proxy_connect_timeout 75;
proxy_read_timeout 600;
send_timeout 600;
}
}
Reinicia NGINX
sudo systemctl restart nginx
- Instala la interfaz de usuario web de MyEMS:
Configura NodeJS:
sudo zypper install -y nodejs
- Modifica el archivo config.js:
Obtén el mapboxToken en https://mapbox.com y luego establece showOnlineMap en true. Si quieres desactivar la función de mapa en línea, establece showOnlineMap en false
cd myems/myems-web
sudo vi src/config.js
Compila y comprime
sudo npm i --unsafe-perm=true --allow-root --legacy-peer-deps
sudo npm run build
Instala Sube los archivos a tu servidor web. Ten en cuenta que la siguiente ruta debe ser la misma que la configurada en nginx.conf.
sudo mv build /var/www/myems-web
Agrega el puerto al cortafuegos:
sudo firewall-cmd --zone=public --add-port=80/tcp --permanent
sudo firewall-cmd --reload