Windows 10 / 11 / Server
En esta guía, implementará MyEMS en un servidor Windows 10 / 11 / Server.
Requisitos previos
Esta guía explica cómo instalar MyEMS en Windows 10, Windows 11 y Windows Server (2022). Los requisitos de hardware dependen de la base de datos seleccionada y del número de dispositivos conectados al sistema. Para ejecutar MyEMS, MySQL y Python 3.10, 3.11 o 3.12 en un solo equipo, se necesitan al menos 8 GB de memoria RAM.
Clonar el código fuente:
Ejecutar como administrador, Windows PowerShell
cd C:\
git clone https://gitee.com/myems/myems
Instalar Python 3.10
https://www.python.org/downloads/windows/
Paquete de Python 3.10.11 versión 64-bit para sistema de 64 bits
Descargar Windows installer (64-bit)
Ejecutar el instalador de Python
Hacer doble clic: python-3.10.11-amd64.exe
Marcar "Add py... to PATH" y hacer clic en "Customize installation"
Asegurarse de que todas las opciones estén marcadas, especialmente pip; hacer clic en "Next"
Marcar la primera opción, se recomienda cambiar la ubicación de instalación de Python, luego hacer clic en "install"
Nota: La instalación por defecto es en: C:\Program Files\Python310. Cambiar a C:\Python310
Una vez completada la instalación, hacer clic en "close"
En el símbolo del sistema, escribir python, presionar Enter; aparecerá la versión de Python si la instalación fue exitosa
Paso 1 Base de datos
Consulte Database
Estos son los pasos detallados para descargar e instalar MySQL (ejemplo con MySQL 8.0, edición Community gratuita).
1.1 Descargar el instalador de MySQL
- Abrir el sitio web oficial: https://dev.mysql.com/downloads/mysql/
- Elegir la plataforma Windows, generalmente dos opciones:
- mysql-installer-web-community (instalación en línea, tamaño reducido)
- mysql-installer-community (programa completo sin conexión, recomendado)
- Hacer clic en Download, si se solicita iniciar sesión, elegir "No thanks, just start my download"
1.2 Instalar MySQL
- Hacer doble clic para ejecutar el instalador descargado (se necesitan permisos de administrador)
- Elegir el tipo de instalación (recomendado: Developer Default o Custom)
- Developer Default: instala MySQL Server, Workbench, Shell y otras herramientas comunes
- Custom: permite personalizar los componentes
- Hacer clic en Next; el instalador verifica automáticamente las dependencias y descarga los componentes faltantes
- Hacer clic en Execute para comenzar la instalación, hacer clic en Next una vez finalizado
1.3 Configurar MySQL Server
-
Type and Networking
- Config Type: elegir Development Computer
- Port: por defecto 3306 (se puede modificar)
- Hacer clic en Next
-
Authentication Method
- Recomendado: Use Strong Password Encryption (cifrado más reciente)
- O la segunda opción (compatibilidad con versiones anteriores)
- Hacer clic en Next
-
Accounts and Roles
- Establecer la contraseña de root (no olvidarla)
- Opcional: agregar un usuario ordinario (se puede omitir)
- Hacer clic en Next
-
Windows Service
- Marcar Configure MySQL Server as a Windows Service
- Service Name: MySQL80 (por defecto)
- Marcar Start the MySQL Server at System Startup
- Hacer clic en Next
-
Apply Configuration
- Hacer clic en Execute para aplicar la configuración
- Todos los pasos muestran una marca de verificación verde si tienen éxito
- Hacer clic en Finish
1.4 Completar la instalación
- Continuar haciendo clic en Next hasta ver Finish
- Marcar Start MySQL Workbench after Setup (opcional)
- Hacer clic en Finish para salir del asistente de instalación
1.5 Verificar la instalación
Método 1: Probar en la línea de comandos
- Presionar
Win + R, escribircmdy presionar Enter - Escribir:
mysql -u root -p - Ingresar la contraseña de root establecida
- La aparición del indicador
mysql>confirma el éxito
Método 2: Verificar el servicio
- Presionar
Win + R, escribirservices.msc - Encontrar
MySQL80, el estado debe ser "En ejecución"
1.6 Configuración inicial común (opcional)
Después de conectarse a MySQL, ejecutar:
-- Mostrar las bases de datos
show databases;
-- Crear una nueva base de datos
create database mydb;
-- Crear un usuario para acceso remoto (opcional)
create user 'myems'@'%' identified by 'contraseña';
grant all privileges on *.* to 'myems'@'%';
flush privileges;
Problemas comunes
| Problema | Solución |
|---|---|
| El puerto 3306 ya está en uso | Cambiar el puerto durante la instalación (ej. 3307) |
| Contraseña de root olvidada | Iniciar MySQL sin la tabla de privilegios (procedimiento complejo) |
| No se puede iniciar el servicio | Verificar si el puerto está en uso o consultar los registros de eventos de Windows |
¿Necesita ayuda con algún problema específico encontrado durante la instalación?
Paso 2 myems-api
- Instalar el servicio myems-api:
# 1. Abrir una nueva ventana CMD como administrador
# 2. Establecer las variables de entorno
set PIP_NO_USER=1
set PYTHONNOUSERSITE=1
# 3. Acceder al directorio del proyecto
cd C:\myems\myems-api
# 4. Reinstalar todos los paquetes
C:\Python310\python.exe -m pip install --no-cache-dir --no-user -r requirements.txt
C:\Python310\python.exe -m pip install --no-cache-dir --no-user waitress
Crear el archivo .env a partir de example.env y modificarlo si es necesario:
copy .\example.env .env
Abrir y modificar con un editor de texto: C:\myems\myems-api\.env
Modificar la información de conexión a la base de datos
Instalar el servicio de Windows:
cmd
# 1. Eliminar completamente el servicio antiguo
sc delete MyEMSAPI
# 2. Crear el directorio de registros
mkdir C:\myems\myems-api\logs 2>nul
# 3. Descargar WinSW (si no se ha hecho antes)
https://github.com/winsw/winsw/releases
Renombrar WinSW-x64.exe a MyEMSAPI.exe
cd C:\myems\myems-api
# 4. Crear el archivo de configuración
Crear `C:\myems\myems-api\MyEMSAPI.xml` (con notepad o el siguiente comando):
notepad C:\myems\myems-api\MyEMSAPI.xml
Copiar el siguiente contenido en el bloc de notas:
<service>
<id>MyEMSAPI</id>
<name>MyEMS API Service</name>
<description>MyEMS API Service</description>
<executable>C:\Python310\python.exe</executable>
<arguments>-m waitress --listen=0.0.0.0:8000 app:api</arguments>
<workingdirectory>C:\myems\myems-api</workingdirectory>
<logmode>rotate</logmode>
<logpath>C:\myems\myems-api\logs</logpath>
<onfailure action="restart" delay="10 sec"/>
<stoptimeout>15 sec</stoptimeout>
<startmode>Automatic</startmode>
</service>
Guardar y cerrar el bloc de notas.
# 5. Instalar el servicio
MyEMSAPI.exe install
# 6. Iniciar el servicio
MyEMSAPI.exe start
# 7. Verificar el estado
MyEMSAPI.exe status
# 8. Probar el servicio
curl http://localhost:8000
# 9. En caso de problemas, consultar los registros
C:\myems\myems-api\logs
Paso 3 myems-admin
- Instalar el servidor NGINX: https://nginx.org/en/download.html
Iniciar el servicio nginx en segundo plano:
start /b nginx.exe
- Configurar NGINX
cd C:\Program Files\nginx-1.29.1\conf
Abrir y modificar nginx.conf con un editor de texto
En la sección 'http', agregar 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;
...
}
Escribir las siguientes directivas; si el servicio myems-api se ejecuta en otro servidor, reemplazar la dirección predeterminada http://127.0.0.1:8000/ por la dirección real.
server {
listen 8001;
server_name myems-admin;
location / {
root C:\myems-admin;
index index.html index.htm;
}
## Para evitar problemas de CORS, usar Nginx como proxy para myems-api en la ruta /api
## Agregar otra sección location /api en 'server'
## Reemplazar la URL predeterminada de myems-api http://127.0.0.1:8000/ por la URL real si el servicio myems-api está alojado 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;
}
}
- Instalar myems-admin: Si el servidor no puede acceder a Internet, comprima la carpeta myems/myems-admin y transfiérala al servidor,
- Luego, descomprímala en c:\myems-admin
Verificar el archivo de configuración y modificarlo si es necesario:
c:\myems-admin\app\api.js
:::atención
La carpeta "upload" contiene los archivos subidos por los usuarios. Al actualizar myems-admin, no elimine/mueva/reemplace la carpeta "upload".
C:\myems-admin\upload
:::
Reiniciar el servicio nginx:
cd C:\Program Files\nginx-1.29.1
nginx.exe -s stop
start /b nginx.exe
## Paso 4 myems-modbus-tcp
En este paso, instalará el servicio myems-modbus-tcp.
```bash
cd C:\myems\myems-modbus-tcp
# 1. Abrir una nueva ventana CMD como administrador
# 2. Establecer las variables de entorno
set PIP_NO_USER=1
set PYTHONNOUSERSITE=1
# 3. Acceder al directorio del proyecto
cd C:\myems\myems-modbus-tcp
# 4. Reinstalar todos los paquetes
C:\Python310\python.exe -m pip install --no-cache-dir --no-user -r requirements.txt
Crear el archivo .env a partir de example.env y modificarlo si es necesario:
copy .\example.env .env
Abrir y modificar con un editor de texto: C:\myems\myems-modbus-tcp\.env
Instalar el servicio de Windows:
# 1. Eliminar completamente el servicio antiguo
sc delete MyEMSModbusTCP
# 2. Crear el directorio de registros
mkdir C:\myems\myems-modbus-tcp\logs 2>nul
# 3. Descargar WinSW (si no se ha hecho antes)
https://github.com/winsw/winsw/releases
Renombrar WinSW-x64.exe a MyEMSModbusTCP.exe
cd C:\myems\myems-modbus-tcp
# 4. Crear el archivo de configuración
Crear `C:\myems\myems-modbus-tcp\MyEMSModbusTCP.xml` (con notepad o el siguiente comando):
notepad C:\myems\myems-modbus-tcp\MyEMSModbusTCP.xml
Copiar el siguiente contenido en el bloc de notas:
<service>
<id>MyEMSModbusTCP</id>
<name>MyEMS Modbus TCP Service</name>
<description>MyEMS Modbus TCP Service</description>
<executable>C:\Python310\python.exe</executable>
<arguments>main.py</arguments>
<workingdirectory>C:\myems\myems-modbus-tcp</workingdirectory>
<logmode>rotate</logmode>
<logpath>C:\myems\myems-modbus-tcp\logs</logpath>
<onfailure action="restart" delay="10 sec"/>
<stoptimeout>15 sec</stoptimeout>
<startmode>Automatic</startmode>
</service>
Guardar y cerrar el bloc de notas.
# 5. Instalar el servicio
MyEMSModbusTCP.exe install
# 6. Iniciar el servicio
MyEMSModbusTCP.exe start
# 7. Verificar el estado
MyEMSModbusTCP.exe status
# 8. En caso de problemas, consultar los registros
C:\myems\myems-modbus-tcp\logs
Si la ejecución de
MyEMSModbusTCP.exe installyMyEMSModbusTCP.exe startes exitosa peroMyEMSModbusTCP.exe statussigue indicando "Stopped", es posible que el redistributable de VC++ no esté instalado. Dirección de descarga de VC++: https://learn.microsoft.com/zh-cn/cpp/windows/latest-supported-vc-redist?view=msvc-170#visual-studio-2015-2017-2019-and-2022
Paso 5 myems-cleaning
En este paso, instalará el servicio myems-cleaning.
cd C:\myems\myems-cleaning
# 1. Abrir una nueva ventana CMD como administrador
# 2. Establecer las variables de entorno
set PIP_NO_USER=1
set PYTHONNOUSERSITE=1
# 3. Acceder al directorio del proyecto
cd C:\myems\myems-cleaning
# 4. Reinstalar todos los paquetes
C:\Python310\python.exe -m pip install --no-cache-dir --no-user -r requirements.txt
Crear el archivo .env a partir de example.env y modificarlo si es necesario:
copy C:\myems\myems-cleaning\example.env .env
Abrir y modificar con un editor de texto: C:\myems\myems-cleaning\.env
Instalar el servicio de Windows:
# 1. Eliminar completamente el servicio antiguo
sc delete MyEMSCleaning
# 2. Crear el directorio de registros
mkdir C:\myems\myems-cleaning\logs 2>nul
# 3. Descargar WinSW (si no se ha hecho antes)
https://github.com/winsw/winsw/releases
Renombrar WinSW-x64.exe a MyEMSCleaning.exe
cd C:\myems\myems-cleaning
# 4. Crear el archivo de configuración
Crear `C:\myems\myems-cleaning\MyEMSCleaning.xml` (con notepad o el siguiente comando):
notepad C:\myems\myems-cleaning\MyEMSCleaning.xml
Copiar el siguiente contenido en el bloc de notas:
<service>
<id>MyEMSCleaning</id>
<name>MyEMS Cleaning Service</name>
<description>MyEMS Cleaning Service</description>
<executable>C:\Python310\python.exe</executable>
<arguments>main.py</arguments>
<workingdirectory>C:\myems\myems-cleaning</workingdirectory>
<logmode>rotate</logmode>
<logpath>C:\myems\myems-cleaning\logs</logpath>
<onfailure action="restart" delay="10 sec"/>
<stoptimeout>15 sec</stoptimeout>
<startmode>Automatic</startmode>
</service>
Guardar y cerrar el bloc de notas.
# 5. Instalar el servicio
MyEMSCleaning.exe install
# 6. Iniciar el servicio
MyEMSCleaning.exe start
# 7. Verificar el estado
MyEMSCleaning.exe status
# 8. En caso de problemas, consultar los registros
C:\myems\myems-cleaning\logs
Paso 6 myems-normalization
En este paso, instalará el servicio myems-normalization.
cd C:\myems\myems-normalization
# 1. Abrir una nueva ventana CMD como administrador
# 2. Establecer las variables de entorno
set PIP_NO_USER=1
set PYTHONNOUSERSITE=1
# 3. Acceder al directorio del proyecto
cd C:\myems\myems-normalization
# 4. Reinstalar todos los paquetes
C:\Python310\python.exe -m pip install --no-cache-dir --no-user -r requirements.txt
Crear el archivo .env a partir de example.env y modificarlo si es necesario:
copy C:\myems\myems-normalization\example.env .env
Abrir y modificar con un editor de texto: C:\myems\myems-normalization\.env
Instalar el servicio de Windows:
# 1. Eliminar completamente el servicio antiguo
sc delete MyEMSNormalization
# 2. Crear el directorio de registros
mkdir C:\myems\myems-normalization\logs 2>nul
# 3. Descargar WinSW (si no se ha hecho antes)
https://github.com/winsw/winsw/releases
Renombrar WinSW-x64.exe a MyEMSNormalization.exe
cd C:\myems\myems-normalization
# 4. Crear el archivo de configuración
Crear `C:\myems\myems-normalization\MyEMSNormalization.xml` (con notepad o el siguiente comando):
notepad C:\myems\myems-normalization\MyEMSNormalization.xml
Copiar el siguiente contenido en el bloc de notas:
<service>
<id>MyEMSNormalization</id>
<name>MyEMS Normalization Service</name>
<description>MyEMS Normalization Service</description>
<executable>C:\Python310\python.exe</executable>
<arguments>main.py</arguments>
<workingdirectory>C:\myems\myems-normalization</workingdirectory>
<logmode>rotate</logmode>
<logpath>C:\myems\myems-normalization\logs</logpath>
<onfailure action="restart" delay="10 sec"/>
<stoptimeout>15 sec</stoptimeout>
<startmode>Automatic</startmode>
</service>
Guardar y cerrar el bloc de notas.
# 5. Instalar el servicio
MyEMSNormalization.exe install
# 6. Iniciar el servicio
MyEMSNormalization.exe start
# 7. Verificar el estado
MyEMSNormalization.exe status
# 8. En caso de problemas, consultar los registros
C:\myems\myems-normalization\logs
Paso 7 myems-aggregation
En este paso, instalará el servicio myems-aggregation.
cd C:\myems\myems-aggregation
# 1. Abrir una nueva ventana CMD como administrador
# 2. Establecer las variables de entorno
set PIP_NO_USER=1
set PYTHONNOUSERSITE=1
# 3. Acceder al directorio del proyecto
cd C:\myems\myems-aggregation
# 4. Reinstalar todos los paquetes
C:\Python310\python.exe -m pip install --no-cache-dir --no-user -r requirements.txt
Crear el archivo .env a partir de example.env y modificarlo si es necesario:
copy C:\myems\myems-aggregation\example.env .env
Abrir y modificar con un editor de texto: C:\myems\myems-aggregation\.env
Instalar el servicio de Windows:
# 1. Eliminar completamente el servicio antiguo
sc delete MyEMSAggregation
# 2. Crear el directorio de registros
mkdir C:\myems\myems-aggregation\logs 2>nul
# 3. Descargar WinSW (si no se ha hecho antes)
https://github.com/winsw/winsw/releases
Renombrar WinSW-x64.exe a MyEMSAggregation.exe
cd C:\myems\myems-aggregation
# 4. Crear el archivo de configuración
Crear `C:\myems\myems-aggregation\MyEMSAggregation.xml` (con notepad o el siguiente comando):
notepad C:\myems\myems-aggregation\MyEMSAggregation.xml
Copiar el siguiente contenido en el bloc de notas:
<service>
<id>MyEMSAggregation</id>
<name>MyEMS Aggregation Service</name>
<description>MyEMS Aggregation Service</description>
<executable>C:\Python310\python.exe</executable>
<arguments>main.py</arguments>
<workingdirectory>C:\myems\myems-aggregation</workingdirectory>
<logmode>rotate</logmode>
<logpath>C:\myems\myems-aggregation\logs</logpath>
<onfailure action="restart" delay="10 sec"/>
<stoptimeout>15 sec</stoptimeout>
<startmode>Automatic</startmode>
</service>
Guardar y cerrar el bloc de notas.
# 5. Instalar el servicio
MyEMSAggregation.exe install
# 6. Iniciar el servicio
MyEMSAggregation.exe start
# 7. Verificar el estado
MyEMSAggregation.exe status
# 8. En caso de problemas, consultar los registros
C:\myems\myems-aggregation\logs
Paso 8 myems-web
En este paso, instalará el servicio myems-web.
Iniciar el servicio nginx:
start /b nginx.exe
- Configurar NGINX
cd C:\Program Files\nginx-1.29.1\conf
Abrir y modificar nginx.conf con un editor de texto
Utilizar las siguientes directivas; si el servicio myems-api está alojado en un servidor diferente, reemplazar la dirección predeterminada de myems-api http://127.0.0.1:8000/ por la dirección real.
server {
listen 80;
server_name myems-web;
location / {
root C:\myems-web\build;
index index.html index.htm;
# agregar la directiva try_files para evitar el error 404 al actualizar las páginas
try_files $uri /index.html;
}
## Para evitar problemas de CORS, usar Nginx como proxy para myems-api en la ruta /api
## Agregar otra sección location /api en 'server'
## Reemplazar la URL predeterminada de myems-api http://127.0.0.1:8000/ por la URL real si el servicio myems-api está alojado 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;
}
}
Reiniciar Nginx
cd C:\Program Files\nginx-1.29.1
nginx.exe -s stop
start /b nginx.exe
- Instalar la interfaz web de MyEMS:
Instalar NodeJS: https://nodejs.org/zh-cn Requisitos de versión:
- Node.js 22.22.2, 24.5.0 o superior
- npm 10.9.7, 11.5.1 o superior
Ejemplo: C:\Program Files\nodejs
Requisitos de versión:
- Node.js 22.22.2, 24.5.0 o superior
- npm 10.9.7, 11.5.1 o superior
Configurar las variables de entorno
Modificar el archivo de configuración:
cd C:\myems\myems-web
Abrir y modificar con un editor de texto: src/config.js
Compilar:
npm i
npm run build
El directorio build se genera en C:\myems\myems-web
mkdir C:\myems-web
move "C:\myems\myems-web\build" "C:\myems-web"
Si la compilación falla con un error de tiempo de espera:
npm error code EIDLETIMEOUT
npm error Idle timeout reached for host `registry.npmjs.org:443`
npm error A complete log of this run can be found inEjecutar el siguiente comando para cambiar a un espejo nacional:
npm config set registry https://registry.npmmirror.com/
Después de la instalación
¡Felicitaciones! Ahora puede iniciar sesión en la interfaz de administración de MyEMS y en la interfaz web de MyEMS.
Puertos predeterminados
Interfaz web de MyEMS: 80
API de MyEMS: 8000
Interfaz de administración de MyEMS: 8001
Suponiendo que la dirección del servidor sea 192.168.1.8 (reemplazar con la dirección real del servidor) La dirección de la interfaz web de MyEMS es http://192.168.1.8 (el 80 se puede omitir) La dirección de la interfaz de administración de MyEMS es http://192.168.1.8:8001
Contraseñas predeterminadas
Interfaz de administración de MyEMS
Nombre de usuario:
administrator
Contraseña:
!MyEMS1
Interfaz web de MyEMS
Nombre de usuario:
administrator
Contraseña:
!MyEMS1