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
- Acesse o site oficial: https://dev.mysql.com/downloads/mysql/
- 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)
- Clique em Download, se for necessário fazer login, pule (No thanks, just start my download)
1.2 Instalar o MySQL
- Clique duas vezes para executar o instalador baixado (pode exigir permissões de administrador)
- 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
- Clique em Next, o instalador verificará automaticamente as dependências e baixará os componentes faltantes
- Clique em Execute para iniciar a instalação, após a conclusão clique em Next
1.3 Configurar o MySQL Server
-
Type and Networking
- Config Type: selecione Development Computer
- Porta: padrão 3306 (pode ser mantida)
- Clique em Next
-
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
-
Accounts and Roles
- Defina a senha do root (guarde-a bem)
- Opcional: adicione um usuário comum (pode ser pulado)
- Clique em Next
-
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
-
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
- Continue clicando em Next até aparecer Finish
- Marque Start MySQL Workbench after Setup (opcional)
- Clique em Finish para sair do assistente de instalação
1.5 Verificar a instalação
Método 1: Teste via linha de comando
- Pressione
Win + R, digitecmde pressione Enter - Digite:
mysql -u root -p - Insira a senha do root que você definiu
- Se aparecer o prompt
mysql>, a instalação foi bem-sucedida
Método 2: Verificar o serviço
- Pressione
Win + R, digiteservices.msce pressione Enter - 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
| Problema | Solução |
|---|---|
| Porta 3306 em uso | Altere 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ço | Verifique 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
- Instalar servidor NGINX: https://nginx.org/en/download.html
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
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 emExecute 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