Ir al contenido principal

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

  1. Abrir el sitio web oficial: https://dev.mysql.com/downloads/mysql/
  2. 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)
  3. Hacer clic en Download, si se solicita iniciar sesión, elegir "No thanks, just start my download"

1.2 Instalar MySQL

  1. Hacer doble clic para ejecutar el instalador descargado (se necesitan permisos de administrador)
  2. 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
  3. Hacer clic en Next; el instalador verifica automáticamente las dependencias y descarga los componentes faltantes
  4. Hacer clic en Execute para comenzar la instalación, hacer clic en Next una vez finalizado

1.3 Configurar MySQL Server

  1. Type and Networking

    • Config Type: elegir Development Computer
    • Port: por defecto 3306 (se puede modificar)
    • Hacer clic en Next
  2. Authentication Method

    • Recomendado: Use Strong Password Encryption (cifrado más reciente)
    • O la segunda opción (compatibilidad con versiones anteriores)
    • Hacer clic en Next
  3. Accounts and Roles

    • Establecer la contraseña de root (no olvidarla)
    • Opcional: agregar un usuario ordinario (se puede omitir)
    • Hacer clic en Next
  4. 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
  5. 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

  1. Continuar haciendo clic en Next hasta ver Finish
  2. Marcar Start MySQL Workbench after Setup (opcional)
  3. 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

  1. Presionar Win + R, escribir cmd y presionar Enter
  2. Escribir:
    mysql -u root -p
  3. Ingresar la contraseña de root establecida
  4. La aparición del indicador mysql> confirma el éxito

Método 2: Verificar el servicio

  1. Presionar Win + R, escribir services.msc
  2. 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

ProblemaSolución
El puerto 3306 ya está en usoCambiar el puerto durante la instalación (ej. 3307)
Contraseña de root olvidadaIniciar MySQL sin la tabla de privilegios (procedimiento complejo)
No se puede iniciar el servicioVerificar 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

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 install y MyEMSModbusTCP.exe start es exitosa pero MyEMSModbusTCP.exe status sigue 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 in

Ejecutar 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