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
This commit is contained in:
311
COMANDOS_BUILD.md
Normal file
311
COMANDOS_BUILD.md
Normal file
@@ -0,0 +1,311 @@
|
||||
# 🚀 Comandos Rápidos para Compilar NoIdle
|
||||
|
||||
## 📋 Escolha Seu Ambiente
|
||||
|
||||
---
|
||||
|
||||
## 🪟 Windows (Recomendado)
|
||||
|
||||
### Método 1: Comando Simples (Rápido)
|
||||
```powershell
|
||||
# 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)
|
||||
```powershell
|
||||
# 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
|
||||
```bash
|
||||
# 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)
|
||||
```bash
|
||||
# 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
|
||||
```bash
|
||||
# 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:
|
||||
|
||||
```powershell
|
||||
# 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):
|
||||
```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):
|
||||
```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"
|
||||
```powershell
|
||||
# Windows
|
||||
python -m pip install --upgrade pip
|
||||
|
||||
# Linux
|
||||
sudo apt install python3-pip
|
||||
```
|
||||
|
||||
### Problema: "pyinstaller não encontrado"
|
||||
```powershell
|
||||
# Instalar globalmente
|
||||
pip install pyinstaller
|
||||
|
||||
# Ou executar como módulo
|
||||
python -m PyInstaller --onefile --windowed --name NoIdle CLIENTE_CORRIGIDO.py
|
||||
```
|
||||
|
||||
### Problema: "ModuleNotFoundError"
|
||||
```powershell
|
||||
# Reinstalar todas as dependências
|
||||
pip install --force-reinstall pywin32 psutil requests pystray pillow schedule
|
||||
```
|
||||
|
||||
### Problema: "Executável não inicia"
|
||||
```powershell
|
||||
# Compilar com console para ver erros
|
||||
pyinstaller --onefile --console --name NoIdle-debug CLIENTE_CORRIGIDO.py
|
||||
.\dist\NoIdle-debug.exe
|
||||
```
|
||||
|
||||
### Problema: "Docker não funciona"
|
||||
```bash
|
||||
# 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):
|
||||
```powershell
|
||||
pip install pyinstaller pywin32 psutil requests pystray pillow schedule && pyinstaller --onefile --windowed --name NoIdle CLIENTE_CORRIGIDO.py
|
||||
```
|
||||
|
||||
### Build Rápido (Linux):
|
||||
```bash
|
||||
./BUILD_LINUX.sh
|
||||
```
|
||||
|
||||
### Testar Rápido:
|
||||
```powershell
|
||||
.\dist\NoIdle.exe --silent
|
||||
Get-Process -Name "NoIdle"
|
||||
```
|
||||
|
||||
### Limpar Tudo:
|
||||
```powershell
|
||||
# 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):
|
||||
```powershell
|
||||
# Testar código Python
|
||||
python CLIENTE_CORRIGIDO.py
|
||||
|
||||
# Compilar
|
||||
.\BUILD_NOIDLE.ps1 -Clean -Test
|
||||
|
||||
# Verificar resultado
|
||||
.\dist\NoIdle.exe --silent
|
||||
```
|
||||
|
||||
### 2. Produção (Linux):
|
||||
```bash
|
||||
# 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:**
|
||||
```powershell
|
||||
.\BUILD_NOIDLE.ps1
|
||||
```
|
||||
|
||||
**Linux:**
|
||||
```bash
|
||||
./BUILD_LINUX.sh
|
||||
```
|
||||
|
||||
**Resultado:** `dist/NoIdle.exe` pronto para usar! 🎉
|
||||
|
||||
---
|
||||
|
||||
**Bom build! 🔨**
|
||||
|
||||
Reference in New Issue
Block a user