Files
NoIdle/COMANDOS_BUILD.md
root 6086c13be7 feat: Implementação completa do NoIdle - Cliente, Backend e Scripts
- Cliente Windows com modo silencioso e auto-start robusto
- Backend Node.js + API REST
- Frontend Next.js + Dashboard
- Scripts PowerShell de configuração e diagnóstico
- Documentação completa
- Build scripts para Windows e Linux
- Solução de auto-start após reinicialização

Resolução do problema: Cliente não voltava ativo após reboot
Solução: Registro do Windows + Task Scheduler + Modo silencioso
2025-11-16 22:56:35 +00:00

6.2 KiB

🚀 Comandos Rápidos para Compilar NoIdle

📋 Escolha Seu Ambiente


🪟 Windows (Recomendado)

Método 1: Comando Simples (Rápido)

# Instalar dependências
pip install pyinstaller pywin32 psutil requests pystray pillow schedule

# Compilar
pyinstaller --onefile --windowed --name NoIdle CLIENTE_CORRIGIDO.py

# Resultado: dist\NoIdle.exe

Método 2: Script Automatizado (Recomendado)

# Executar script de build
.\BUILD_NOIDLE.ps1

# Com limpeza prévia
.\BUILD_NOIDLE.ps1 -Clean

# Com teste após build
.\BUILD_NOIDLE.ps1 -Test

# Com ícone personalizado
.\BUILD_NOIDLE.ps1 -Icon "noidle.ico"

🐧 Linux (Docker)

Método 1: Comando Docker Direto

# Usando imagem pronta
docker run --rm -v $(pwd):/src cdrx/pyinstaller-windows:python3 \
  /bin/bash -c "pip install pywin32 psutil requests pystray pillow schedule && \
  pyinstaller --onefile --windowed --name NoIdle CLIENTE_CORRIGIDO.py"

# Resultado: dist/NoIdle.exe

Método 2: Script Automatizado (Recomendado)

# Tornar executável (primeira vez)
chmod +x BUILD_LINUX.sh

# Executar
./BUILD_LINUX.sh

# Seguir as opções do menu

Método 3: Dockerfile Customizado

# Construir imagem
docker build -f Dockerfile.build -t noidle-builder .

# Compilar
docker run --rm -v $(pwd):/src noidle-builder

# Resultado: dist/NoIdle.exe

🧪 Testar o Executável

No Windows:

# Teste 1: Executar normalmente
.\dist\NoIdle.exe

# Teste 2: Modo silencioso
.\dist\NoIdle.exe --silent

# Teste 3: Verificar processo
Start-Process -FilePath ".\dist\NoIdle.exe" -ArgumentList "--silent" -WindowStyle Hidden
Start-Sleep -Seconds 3
Get-Process -Name "NoIdle"

# Teste 4: Verificar tamanho
Get-Item .\dist\NoIdle.exe | Select-Object Name, @{N='Size(MB)';E={[math]::Round($_.Length/1MB,2)}}, LastWriteTime

📦 Criar Pacote de Distribuição

Estrutura do Pacote:

NoIdle-v1.0/
├── NoIdle.exe
├── CONFIGURAR_AUTOSTART_NOIDLE.ps1
├── VERIFICAR_E_CORRIGIR_NOIDLE.ps1
├── GUIA_RAPIDO_AUTOSTART.md
├── LEIA_PRIMEIRO.md
└── README.txt

Windows (PowerShell):

# Criar diretório
New-Item -ItemType Directory -Path "NoIdle-Package" -Force

# Copiar arquivos
Copy-Item "dist\NoIdle.exe" -Destination "NoIdle-Package\"
Copy-Item "CONFIGURAR_AUTOSTART_NOIDLE.ps1" -Destination "NoIdle-Package\"
Copy-Item "VERIFICAR_E_CORRIGIR_NOIDLE.ps1" -Destination "NoIdle-Package\"
Copy-Item "GUIA_RAPIDO_AUTOSTART.md" -Destination "NoIdle-Package\"
Copy-Item "LEIA_PRIMEIRO.md" -Destination "NoIdle-Package\"

# Criar ZIP
Compress-Archive -Path "NoIdle-Package\*" -DestinationPath "NoIdle-v1.0.zip" -Force

# Limpar
Remove-Item -Path "NoIdle-Package" -Recurse -Force

Linux (Bash):

# Criar diretório
mkdir -p NoIdle-Package

# Copiar arquivos
cp dist/NoIdle.exe NoIdle-Package/
cp CONFIGURAR_AUTOSTART_NOIDLE.ps1 NoIdle-Package/
cp VERIFICAR_E_CORRIGIR_NOIDLE.ps1 NoIdle-Package/
cp GUIA_RAPIDO_AUTOSTART.md NoIdle-Package/
cp LEIA_PRIMEIRO.md NoIdle-Package/

# Criar ZIP
zip -r NoIdle-v1.0.zip NoIdle-Package/

# Limpar
rm -rf NoIdle-Package

🔧 Troubleshooting

Problema: "pip não encontrado"

# Windows
python -m pip install --upgrade pip

# Linux
sudo apt install python3-pip

Problema: "pyinstaller não encontrado"

# Instalar globalmente
pip install pyinstaller

# Ou executar como módulo
python -m PyInstaller --onefile --windowed --name NoIdle CLIENTE_CORRIGIDO.py

Problema: "ModuleNotFoundError"

# Reinstalar todas as dependências
pip install --force-reinstall pywin32 psutil requests pystray pillow schedule

Problema: "Executável não inicia"

# Compilar com console para ver erros
pyinstaller --onefile --console --name NoIdle-debug CLIENTE_CORRIGIDO.py
.\dist\NoIdle-debug.exe

Problema: "Docker não funciona"

# Verificar Docker
docker --version

# Testar Docker
docker run hello-world

# Dar permissões (se necessário)
sudo usermod -aG docker $USER
newgrp docker

Comandos Quick Reference

Build Rápido (Windows):

pip install pyinstaller pywin32 psutil requests pystray pillow schedule && pyinstaller --onefile --windowed --name NoIdle CLIENTE_CORRIGIDO.py

Build Rápido (Linux):

./BUILD_LINUX.sh

Testar Rápido:

.\dist\NoIdle.exe --silent
Get-Process -Name "NoIdle"

Limpar Tudo:

# Windows
Remove-Item -Path "build","dist" -Recurse -Force -ErrorAction SilentlyContinue
Remove-Item -Path "*.spec" -Force -ErrorAction SilentlyContinue

# Linux
rm -rf build dist *.spec

📊 Opções de PyInstaller

Opção Descrição
--onefile Gera um único executável
--windowed Sem janela de console (GUI)
--console Com janela de console (debug)
--name NoIdle Nome do executável
--icon=icon.ico Adicionar ícone
--upx-dir=C:\upx Comprimir com UPX
--clean Limpar cache antes de compilar
--debug all Modo debug completo

🎯 Workflow Recomendado

1. Desenvolvimento (Windows):

# Testar código Python
python CLIENTE_CORRIGIDO.py

# Compilar
.\BUILD_NOIDLE.ps1 -Clean -Test

# Verificar resultado
.\dist\NoIdle.exe --silent

2. Produção (Linux):

# Compilar para Windows
./BUILD_LINUX.sh

# Criar pacote
# (escolher opção no menu do script)

# Distribuir
# NoIdle-v1.0.zip

3. Distribuição:

1. Testar em Windows limpo
2. Enviar para clientes
3. Fornecer scripts de configuração
4. Documentação: LEIA_PRIMEIRO.md

Checklist de Build

Antes de distribuir:

  • Código testado e funcionando
  • Dependências instaladas
  • Build concluído sem erros
  • Executável testado em modo normal
  • Executável testado em modo --silent
  • Tamanho do arquivo OK (15-30 MB)
  • Testado em Windows limpo (sem Python)
  • Pacote de distribuição criado
  • Documentação incluída
  • Scripts PowerShell incluídos

🚀 TL;DR (Começar Agora)

Windows:

.\BUILD_NOIDLE.ps1

Linux:

./BUILD_LINUX.sh

Resultado: dist/NoIdle.exe pronto para usar! 🎉


Bom build! 🔨