Ir para o conteúdo principal

Windows 10 / 11 / Server

Neste guia, você implantará o MyEMS em servidores Windows 10 / 11 / Server.

Pré-requisitos

Este guia explica como instalar o MyEMS no Windows 10, Windows 11 e Windows Server (2022). Os requisitos de hardware dependem do banco de dados escolhido e do número de dispositivos conectados ao sistema. Para executar o MyEMS, MySQL e Python 3.10, 3.11 ou 3.12 em um único computador, é necessário pelo menos 8 GB de RAM.

Clonar o código-fonte:

Executar como Administrador, Windows PowerShell
cd C:\
git clone https://gitee.com/myems/myems

Instalar o Python 3.10

https://www.python.org/downloads/windows/
Pacote de instalação do Python versão 3.10.11 64-bit para sistemas 64-bit
Baixar Windows installer (64-bit)
Executar o pacote de instalação do Python para instalar
Clique duas vezes: python-3.10.11-amd64.exe
Marque “Add py... to PATH” e clique em “Customize Installation”
Certifique-se de que todas as opções estejam marcadas, especialmente o pip (necessário para instalar bibliotecas posteriormente); clique em “Next”
Marque a primeira opção, é recomendado alterar o local de instalação do Python e depois clique em “Install”
Observação: instalação padrão em: C:\Program Files\Python310 Altere para C:\Python310
Após a conclusão da instalação, clique em “Close”
Digite python no prompt de comando, pressione Enter e se aparecer o número da versão do Python, a instalação foi bem-sucedida

Passo 1 Banco de Dados

Consulte Banco de Dados

Abaixo estão as etapas detalhadas para baixar e instalar o banco de dados MySQL (usando o MySQL 8.0 como exemplo, edição comunitária gratuita).

1.1 Baixar o pacote de instalação do MySQL

  1. Acesse o site oficial: https://dev.mysql.com/downloads/mysql/
  2. Selecione a plataforma Windows, geralmente há duas opções:
    • mysql-installer-web-community (instalação online, tamanho pequeno)
    • mysql-installer-community (pacote completo offline, recomendado)
  3. Clique em Download, se for necessário fazer login, pule (No thanks, just start my download)

1.2 Instalar o MySQL

  1. Clique duas vezes para executar o instalador baixado (pode exigir permissões de administrador)
  2. Selecione o tipo de instalação (recomendado Developer Default ou Custom)
    • Developer Default: instala o MySQL Server, Workbench, Shell e outras ferramentas comuns
    • Custom: permite personalizar os componentes
  3. Clique em Next, o instalador verificará automaticamente as dependências e baixará os componentes faltantes
  4. Clique em Execute para iniciar a instalação, após a conclusão clique em Next

1.3 Configurar o MySQL Server

  1. Type and Networking

    • Config Type: selecione Development Computer
    • Porta: padrão 3306 (pode ser mantida)
    • Clique em Next
  2. Authentication Method

    • Recomendado selecionar Use Strong Password Encryption (criptografia moderna)
    • Ou escolha a segunda opção (compatível com versões antigas)
    • Clique em Next
  3. Accounts and Roles

    • Defina a senha do root (guarde-a bem)
    • Opcional: adicione um usuário comum (pode ser pulado)
    • Clique em Next
  4. Windows Service

    • Marque Configure MySQL Server as a Windows Service
    • Nome do Serviço: MySQL80 (padrão)
    • Marque Start the MySQL Server at System Startup
    • Clique em Next
  5. Apply Configuration

    • Clique em Execute para aplicar a configuração
    • Todas as etapas com marcação verde indicam sucesso
    • Clique em Finish

1.4 Concluir a instalação

  1. Continue clicando em Next até aparecer Finish
  2. Marque Start MySQL Workbench after Setup (opcional)
  3. Clique em Finish para sair do assistente de instalação

1.5 Verificar a instalação

Método 1: Teste via linha de comando

  1. Pressione Win + R, digite cmd e pressione Enter
  2. Digite:
    mysql -u root -p
  3. Insira a senha do root que você definiu
  4. Se aparecer o prompt mysql>, a instalação foi bem-sucedida

Método 2: Verificar o serviço

  1. Pressione Win + R, digite services.msc e pressione Enter
  2. Procure por MySQL80, o status deve estar “Em execução”

1.6 Configurações iniciais comuns (opcional)

Após fazer login no MySQL, execute:

-- Mostrar bancos de dados
show databases;

-- Criar novo banco de dados
create database mydb;

-- Criar usuário para acesso remoto (opcional)
create user 'myems'@'%' identified by 'senha';
grant all privileges on *.* to 'myems'@'%';
flush privileges;

Problemas Comuns

ProblemaSolução
Porta 3306 em usoAltere para outra porta durante a instalação (ex: 3307)
Esqueceu a senha do rootÉ necessário iniciar o MySQL sem carregar a tabela de permissões, processo complexo
Não consegue iniciar o serviçoVerifique se a porta está ocupada ou consulte o log de eventos do Windows

Passo 2 myems-api

  • Instalar o serviço myems-api:
# 1. Abra uma nova janela CMD como Administrador

# 2. Definir variáveis de ambiente
set PIP_NO_USER=1
set PYTHONNOUSERSITE=1

# 3. Acessar diretório do projeto
cd C:\myems\myems-api

# 4. Reinstalar todos os pacotes
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

Criar arquivo .env a partir de example.env e editar se necessário:

copy .\example.env .env
Abra e edite com um editor de texto C:\myems\myems-api\.env
Altere as informações do banco de dados

Instalar como Serviço do Windows:

Etapas completas de instalação (executar CMD como Administrador)

# 1. Excluir completamente todos os serviços antigos
sc delete MyEMSAPI

# 2. Criar diretório de logs
mkdir C:\myems\myems-api\logs 2>nul

# 3. Baixar WinSW (se ainda não tiver feito)
https://github.com/winsw/winsw/releases
Renomeie WinSW-x64.exe para MyEMSAPI.exe

cd C:\myems\myems-api

# 4. Criar arquivo de configuração
Crie `C:\myems\myems-api\MyEMSAPI.xml` (com Bloco de Notas ou comando abaixo):
notepad C:\myems\myems-api\MyEMSAPI.xml
Copie o conteúdo abaixo para o Bloco 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>
Salve e feche o Bloco de Notas.

# 5. Instalar o serviço
MyEMSAPI.exe install

# 6. Iniciar o serviço
MyEMSAPI.exe start

# 7. Verificar status
MyEMSAPI.exe status

# 8. Testar o serviço
curl http://localhost:8000

# 9. Em caso de erro, verificar logs
C:\myems\myems-api\logs

Passo 3 myems-admin

Ativar serviço nginx em segundo plano:

start /b nginx.exe
  • Configurar NGINX
cd C:\Program Files\nginx-1.29.1\conf
Abra e edite nginx.conf com um editor de texto

Adicione algumas diretivas na seção 'http':

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

}

Escreva as diretivas abaixo; se o serviço myems-api estiver em outro servidor, substitua o endereço padrão http://127.0.0.1:8000/ pelo endereço real

  server {
listen 8001;
server_name myems-admin;
location / {
root C:\myems-admin;
index index.html index.htm;
}
## Para evitar problema de CORS, usar Nginx para proxy myems-api para o caminho /api
## Adicionar outra location /api em 'server'
## Substitua a url padrão do myems-api http://127.0.0.1:8000/ pela url real se o serviço myems-api estiver hospedado em outro servidor
location /api {
proxy_pass http://127.0.0.1:8000/;
proxy_connect_timeout 75;
proxy_read_timeout 600;
send_timeout 600;
}
}
  • Instalar myems-admin : Se o servidor não tiver conexão com a internet, compacte a pasta myems/myems-admin e faça o upload para o servidor,
  • depois extraia para c:\myems-admin

Verificar arquivo de configuração e alterar se necessário:

c:\myems-admins\app\api.js
Cuidado

A pasta “upload” é usada para arquivos enviados pelos usuários. Não exclua/mova/sobrescreva a pasta “upload” ao atualizar o myems-admin.

  C:\myems-admin\upload

Reiniciar serviço nginx:

cd C:\Program Files\nginx-1.29.1
nginx.exe -s stop
start /b nginx.exe

Passo 4 myems-modbus-tcp

Nesta etapa, você instalará o serviço myems-modbus-tcp.

cd C:\myems\myems-modbus-tcp
# 1. Abra uma nova janela CMD como Administrador

# 2. Definir variáveis de ambiente
set PIP_NO_USER=1
set PYTHONNOUSERSITE=1

# 3. Acessar diretório do projeto
cd C:\myems\myems-modbus-tcp

# 4. Reinstalar todos os pacotes
C:\Python310\python.exe -m pip install --no-cache-dir --no-user -r requirements.txt

Criar arquivo .env a partir de example.env e editar se necessário:

copy .\example.env .env
Abra e edite com um editor de texto C:\myems\myems-modbus-tcp\.env

Instalar como Serviço do Windows:

# 1. Excluir completamente todos os serviços antigos
sc delete MyEMSModbusTCP

# 2. Criar diretório de logs
mkdir C:\myems\myems-modbus-tcp\logs 2>nul

# 3. Baixar WinSW (se ainda não tiver feito)
https://github.com/winsw/winsw/releases
Renomeie WinSW-x64.exe para MyEMSModbusTCP.exe

cd C:\myems\myems-modbus-tcp

# 4. Criar arquivo de configuração
Crie `C:\myems\myems-modbus-tcp\MyEMSModbusTCP.xml` (com Bloco de Notas ou comando abaixo):
notepad C:\myems\myems-modbus-tcp\MyEMSModbusTCP.xml
Copie o conteúdo abaixo para o Bloco 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>
Salve e feche o Bloco de Notas.

# 5. Instalar o serviço
MyEMSModbusTCP.exe install

# 6. Iniciar o serviço
MyEMSModbusTCP.exe start

# 7. Verificar status
MyEMSModbusTCP.exe status

# 8. Em caso de erro, verificar logs
C:\myems\myems-modbus-tcp\logs

Se MyEMSModbusTCP.exe install e MyEMSModbusTCP.exe start forem executados com sucesso, mas o status continuar Parado, provavelmente o VC++ não está instalado Link de instalação do VC++: https://learn.microsoft.com/zh-cn/cpp/windows/latest-supported-vc-redist?view=msvc-170#visual-studio-2015-2017-2019-and-2022

Passo 5 myems-cleaning

Nesta etapa, você instalará o serviço myems-cleaning.

cd C:\Program Files\myems\myems-cleaning
# 1. Abra uma nova janela CMD como Administrador

# 2. Definir variáveis de ambiente
set PIP_NO_USER=1
set PYTHONNOUSERSITE=1

# 3. Acessar diretório do projeto
cd C:\myems\myems-cleaning

# 4. Reinstalar todos os pacotes
C:\Python310\python.exe -m pip install --no-cache-dir --no-user -r requirements.txt

Criar arquivo .env a partir de example.env e editar se necessário:

copy C:\myems\myems-cleaning\example.env \.env
Abra e edite com um editor de texto C:\myems\myems-cleaning\.env

Instalar como Serviço do Windows:

# 1. Excluir completamente todos os serviços antigos
sc delete MyEMSCleaning


# 2. Criar diretório de logs
mkdir C:\myems\myems-cleaning\logs 2>nul

# 3. Baixar WinSW (se ainda não tiver feito)
https://github.com/winsw/winsw/releases
Renomeie WinSW-x64.exe para MyEMSCleaning.exe

cd C:\myems\myems-cleaning

# 4. Criar arquivo de configuração
Crie `C:\myems\myems-cleaning\MyEMSCleaning.xml` (com Bloco de Notas ou comando abaixo):
notepad C:\myems\myems-cleaning\MyEMSCleaning.xml
Copie o conteúdo abaixo para o Bloco 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>
Salve e feche o Bloco de Notas.

# 5. Instalar o serviço
MyEMSCleaning.exe install

# 6. Iniciar o serviço
MyEMSCleaning.exe start

# 7. Verificar status
MyEMSCleaning.exe status

# 8. Em caso de erro, verificar logs
C:\myems\myems-cleaning\logs

Passo 6 myems-normalization

Nesta etapa, você instalará o serviço myems-normalization.

cd C:\myems\myems-normalization
# 1. Abra uma nova janela CMD como Administrador

# 2. Definir variáveis de ambiente
set PIP_NO_USER=1
set PYTHONNOUSERSITE=1

# 3. Acessar diretório do projeto
cd C:\myems\myems-normalization

# 4. Reinstalar todos os pacotes
C:\Python310\python.exe -m pip install --no-cache-dir --no-user -r requirements.txt

Criar arquivo .env a partir de example.env e editar se necessário:

copy C:\myems\myems-normalization\example.env \.env
Abra e edite com um editor de texto C:\myems\myems-normalization\.env

Instalar como Serviço do Windows:

# 1. Excluir completamente todos os serviços antigos
sc delete MyEMSNormalization


# 2. Criar diretório de logs
mkdir C:\myems\myems-normalization\logs 2>nul

# 3. Baixar WinSW (se ainda não tiver feito)
https://github.com/winsw/winsw/releases
Renomeie WinSW-x64.exe para MyEMSNormalization.exe

cd C:\myems\myems-normalization

# 4. Criar arquivo de configuração
Crie `C:\myems\myems-normalization\MyEMSCleaning.xml` (com Bloco de Notas ou comando abaixo):
notepad C:\myems\myems-normalization\MyEMSCleaning.xml
Copie o conteúdo abaixo para o Bloco 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>
Salve e feche o Bloco de Notas.

# 5. Instalar o serviço
MyEMSNormalization.exe install

# 6. Iniciar o serviço
MyEMSNormalization.exe start

# 7. Verificar status
MyEMSNormalization.exe status

# 8. Em caso de erro, verificar logs
C:\myems\myems-normalization\logs

Passo 7 myems-aggregation

Nesta etapa, você instalará o serviço myems-aggregation.

cd C:\myems\myems-aggregation
# 1. Abra uma nova janela CMD como Administrador

# 2. Definir variáveis de ambiente
set PIP_NO_USER=1
set PYTHONNOUSERSITE=1

# 3. Acessar diretório do projeto
cd C:\myems\myems-aggregation

# 4. Reinstalar todos os pacotes
C:\Python310\python.exe -m pip install --no-cache-dir --no-user -r requirements.txt

Criar arquivo .env a partir de example.env e editar se necessário:

copy C:\myems\myems-aggregation\example.env \.env
Abra e edite com um editor de texto C:\myems\myems-aggregation\.env

Instalar como Serviço do Windows:

# 1. Excluir completamente todos os serviços antigos
sc delete MyEMSAggregation

# 2. Criar diretório de logs
mkdir C:\myems\myems-aggregation\logs 2>nul

# 3. Baixar WinSW (se ainda não tiver feito)
https://github.com/winsw/winsw/releases
Renomeie WinSW-x64.exe para MyEMSAggregation.exe

cd C:\myems\myems-normalization

# 4. Criar arquivo de configuração
Crie `C:\myems\myems-aggregation\MyEMSAggregation.xml` (com Bloco de Notas ou comando abaixo):
notepad C:\myems\myems-aggregation\MyEMSAggregation.xml
Copie o conteúdo abaixo para o Bloco 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>
Salve e feche o Bloco de Notas.

# 5. Instalar o serviço
MyEMSAggregation.exe install

# 6. Iniciar o serviço
MyEMSAggregation.exe start

# 7. Verificar status
MyEMSAggregation.exe status

# 8. Em caso de erro, verificar logs
C:\myems\myems-aggregation\logs

Passo 8 myems-web

Nesta etapa, você instalará o serviço myems-web.

Ativar serviço nginx:

start /b nginx.exe
  • Configurar NGINX
cd C:\Program Files\nginx-1.29.1\conf
Abra e edite nginx.conf com um editor de texto

Escreva as diretivas abaixo; se o serviço myems-api estiver hospedado em outro servidor, substitua o endereço padrão http://127.0.0.1:8000/ pelo endereço real

server {
listen 80;
server_name myems-web;
location / {
root C:\myems-web\build;
index index.html index.htm;
# adicionar diretiva try_files para evitar erro 404 ao atualizar páginas
try_files $uri /index.html;
}
## Para evitar problema de CORS, usar Nginx para proxy myems-api para o caminho /api
## Adicionar outra location /api em 'server'
## substitua a url padrão do myems-api http://127.0.0.1:8000/ pela url real se o serviço myems-api estiver hospedado em outro servidor
location /api {
proxy_pass http://127.0.0.1:8000/;
proxy_connect_timeout 75;
proxy_read_timeout 600;
send_timeout 600;
}
}

Reiniciar o Nginx

cd C:\Program Files\nginx-1.29.1
nginx.exe -s stop
start /b nginx.exe
  • Instalar o MyEMS Web UI:

Instalar o NodeJS: https://nodejs.org/zh-cn Requisitos de versão:

  • Node.js 22.22.2, 24.5.0 ou superior
  • npm 10.9.7, 11.5.1 ou superior
Ex: C:\Program Files\nodejs
Configurar variáveis de ambiente

Alterar arquivo de configuração:

cd C:\myems\myems-web
Abra e edite src/config.js com um editor de texto

Compilar:

npm i
npm run build
A pasta build será criada em C:\myems\myems-web
mkdir C:\myems-web
move "C:\myems\myems-web\build" "C:\myems-web"

Se a compilação falhar com o erro de tempo limite abaixo:

npm error code EIDLETIMEOUT
npm error Idle timeout reached for host `registry.npmjs.org:443`
npm error Um log completo deste erro pode ser encontrado em

Execute o comando abaixo para mudar para o repositório espelho chinês:

npm config set registry https://registry.npmmirror.com/

Após a Instalação

Parabéns! Agora você pode fazer login no MyEMS Admin UI e Web UI.

Portas Padrão

MyEMS Web UI: 80

MyEMS API: 8000

MyEMS Admin UI: 8001

Supondo que o endereço do servidor seja 192.168.1.8 (substitua pelo endereço real do servidor) Endereço de acesso ao MyEMS Web UI: http://192.168.1.8 (a porta 80 pode ser omitida) Endereço de acesso ao MyEMS Admin UI: http://192.168.1.8:8001

Senhas Padrão

MyEMS Admin UI

Nome de usuário:

administrator

Senha:

!MyEMS1

MyEMS Web UI

Nome de usuário:

administrator

Senha:

!MyEMS1