From 710792af019c0296ef70d68265a20aa72a519f33 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9rgio=20Corr=C3=AAa?= Date: Sun, 16 Nov 2025 23:32:24 +0000 Subject: [PATCH] =?UTF-8?q?docs:=20Plano=20completo=20de=20migra=C3=A7?= =?UTF-8?q?=C3=A3o=20PointControl=20=E2=86=92=20NoIdle?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Documentação detalhada do processo (PLANO_MIGRACAO_NOIDLE.md) - Guia rápido para executar (MIGRACAO_RAPIDA.md) - Script automatizado de migração (migrate_to_noidle.sh) - Renomeia pasta, código, PM2, docs - Backup automático e rollback - Tempo estimado: 5 minutos - Solução para organizar estrutura bagunçada --- MIGRACAO_RAPIDA.md | 243 +++++++++++++++++++++ PLANO_MIGRACAO_NOIDLE.md | 446 +++++++++++++++++++++++++++++++++++++++ migrate_to_noidle.sh | 207 ++++++++++++++++++ 3 files changed, 896 insertions(+) create mode 100644 MIGRACAO_RAPIDA.md create mode 100644 PLANO_MIGRACAO_NOIDLE.md create mode 100755 migrate_to_noidle.sh diff --git a/MIGRACAO_RAPIDA.md b/MIGRACAO_RAPIDA.md new file mode 100644 index 0000000..99c7d25 --- /dev/null +++ b/MIGRACAO_RAPIDA.md @@ -0,0 +1,243 @@ +# ⚡ Migração Rápida: PointControl → NoIdle + +## 🎯 Resumo Executivo + +Seu projeto mudou de **PointControl** para **NoIdle**, mas os arquivos e código ainda usam "pointcontrol" em vários lugares. Isso cria confusão e desorganização. + +**Solução:** Script automatizado que renomeia tudo em 5 minutos! ⏱️ + +--- + +## 🚀 Migração em 3 Passos + +### 1️⃣ **Verificar o que vai mudar** +```bash +# Ver arquivos que serão afetados +cd /var/www/pointcontrol +grep -r "pointcontrol" . --include="*.js" --include="*.json" --include="*.md" | wc -l +``` + +### 2️⃣ **Executar a migração** +```bash +sudo bash /var/www/pointcontrol/migrate_to_noidle.sh +``` + +### 3️⃣ **Verificar resultado** +```bash +pm2 list +curl http://localhost:3005/api/health +``` + +--- + +## 📊 O Que Vai Ser Mudado + +| Item | Antes | Depois | +|------|-------|--------| +| **Pasta** | `/var/www/pointcontrol` | `/var/www/noidle` | +| **PM2** | `pointcontrol-api` | `noidle-api` | +| **Backend** | `"name": "pointcontrol-api"` | `"name": "noidle-api"` | +| **Frontend** | `"name": "pointcontrol-frontend"` | `"name": "noidle-frontend"` | +| **Código** | `PointControl` | `NoIdle` | +| **Logs** | `console.log('PointControl API')` | `console.log('NoIdle API')` | + +--- + +## ✅ O Que o Script Faz + +1. ✅ **Backup automático** (salvo em `/tmp`) +2. ✅ **Para serviços** (PM2) +3. ✅ **Renomeia pasta** (`pointcontrol` → `noidle`) +4. ✅ **Atualiza package.json** (backend e frontend) +5. ✅ **Atualiza código** (todas as referências) +6. ✅ **Atualiza documentação** (arquivos .md) +7. ✅ **Recria PM2** com novo nome +8. ✅ **Verifica funcionamento** (testes automáticos) + +--- + +## 🎬 Executar AGORA + +```bash +cd /var/www/pointcontrol +sudo bash migrate_to_noidle.sh +``` + +**Tempo estimado:** 5 minutos ⏱️ + +--- + +## ⚠️ Importante + +### ✅ Não Precisa Alterar: + +- ✅ **Banco de dados** (continua igual) +- ✅ **URLs externas** (`admin.noidle.tech` já está certo) +- ✅ **Certificados SSL** (já estão corretos) +- ✅ **Chaves de ativação** (continuam funcionando) + +### ⚠️ Verificar Depois: + +- Nginx config (se tiver path hardcoded) +- Cliente Windows (se API_URL estiver hardcoded) +- Variáveis de ambiente + +--- + +## 🔄 Rollback (Se der problema) + +```bash +# Parar novo serviço +pm2 stop noidle-api +pm2 delete noidle-api + +# Restaurar pasta +cd /var/www +mv noidle pointcontrol + +# Restaurar PM2 +cd pointcontrol/backend +pm2 start server.js --name pointcontrol-api +pm2 save +``` + +--- + +## 📝 Após a Migração + +### 1. Atualizar Git +```bash +cd /var/www/noidle +git add . +git commit -m "refactor: Migração completa de PointControl para NoIdle" +git push +``` + +### 2. Atualizar Nginx (se necessário) +```bash +sudo nano /etc/nginx/sites-available/admin.noidle.tech + +# Verificar se tem paths antigos +# /var/www/pointcontrol → /var/www/noidle + +sudo nginx -t +sudo systemctl reload nginx +``` + +### 3. Testar Tudo +```bash +# API +curl http://localhost:3005/api/health + +# Frontend +curl https://admin.noidle.tech + +# PM2 +pm2 list +pm2 logs noidle-api +``` + +--- + +## 🎯 Alternativa Manual (Se Preferir) + +### Opção A: Fazer Tudo Manualmente +Ver arquivo: `PLANO_MIGRACAO_NOIDLE.md` + +### Opção B: Fazer em Etapas +1. Apenas renomear pasta +2. Apenas atualizar PM2 +3. Apenas atualizar código +4. etc... + +### Opção C: Manter Como Está +- **NÃO recomendado** (mantém confusão) +- Criar alias e documentar + +--- + +## 📊 Estatísticas + +**Arquivos afetados:** +- ~58 ocorrências em 21 arquivos +- Backend: ~5 arquivos +- Frontend: ~10 arquivos +- Docs: ~15 arquivos + +**Tempo necessário:** +- Migração automática: ~5 minutos +- Migração manual: ~30 minutos +- Verificação e testes: ~10 minutos + +--- + +## 🆘 Precisa de Ajuda? + +### Se o script falhar: + +1. **Ver logs:** +```bash +pm2 logs noidle-api --lines 50 +``` + +2. **Verificar backup:** +```bash +ls -lah /tmp/noidle_migration_backup_* +``` + +3. **Restaurar backup:** +```bash +# Ver seção de Rollback acima +``` + +### Contatos: + +- Ver documentação completa: `PLANO_MIGRACAO_NOIDLE.md` +- Logs do PM2: `pm2 logs noidle-api` + +--- + +## ✨ Benefícios Após Migração + +✅ **Organização:** Tudo consistente e limpo +✅ **Clareza:** Código fácil de entender +✅ **Manutenção:** Sem confusão entre nomes +✅ **Profissionalismo:** Nome correto em todo lugar +✅ **Git:** Histórico limpo e organizado + +--- + +## 🎉 Resultado Final + +``` +/var/www/noidle/ +├── backend/ +│ ├── package.json (✅ "name": "noidle-api") +│ └── server.js (✅ console.log('NoIdle API')) +├── frontend/ +│ ├── package.json (✅ "name": "noidle-frontend") +│ └── src/ +│ └── components/ (✅ Todos: NoIdle) +└── *.md (✅ Documentação atualizada) + +PM2: noidle-api (✅ online) +Git: /var/www/noidle (✅ atualizado) +``` + +--- + +## 🚀 Executar AGORA + +```bash +cd /var/www/pointcontrol +sudo bash migrate_to_noidle.sh +``` + +**Tempo:** 5 minutos | **Backup:** Automático | **Rollback:** Disponível + +--- + +**Pronto para começar? Execute o comando acima! 🎯** + +Data: 2025-11-16 + diff --git a/PLANO_MIGRACAO_NOIDLE.md b/PLANO_MIGRACAO_NOIDLE.md new file mode 100644 index 0000000..21c6574 --- /dev/null +++ b/PLANO_MIGRACAO_NOIDLE.md @@ -0,0 +1,446 @@ +# 🔄 Plano de Migração: PointControl → NoIdle + +## 📊 Situação Atual + +**Problema:** Projeto mudou de nome de "PointControl" para "NoIdle", mas a estrutura de pastas e código ainda usa "pointcontrol" em muitos lugares. + +**Resultado:** Confusão, inconsistência e bagunça no código. + +--- + +## 🎯 Objetivo + +Renomear **tudo** de forma consistente para "NoIdle" mantendo compatibilidade e sem quebrar nada. + +--- + +## 📋 O Que Precisa Ser Renomeado + +### 1. **Pasta Principal** +``` +/var/www/pointcontrol → /var/www/noidle +``` + +### 2. **Serviço PM2** +``` +pointcontrol-api → noidle-api +``` + +### 3. **Package.json (Backend)** +```json +{ + "name": "pointcontrol-api" → "noidle-api" +} +``` + +### 4. **Package.json (Frontend)** +```json +{ + "name": "pointcontrol-frontend" → "noidle-frontend" +} +``` + +### 5. **Referências no Código** +- `PointControl` → `NoIdle` +- `pointcontrol` → `noidle` +- URLs antigas → URLs novas + +### 6. **Banco de Dados** +- Nome do database (se usar específico) +- Tabelas com prefixo (se houver) + +### 7. **Configurações** +- Nginx config +- PM2 config +- Variáveis de ambiente + +--- + +## 🚀 Plano de Execução (Passo a Passo) + +### Fase 1: Preparação (Backup) + +```bash +# 1. Parar serviços +pm2 stop pointcontrol-api + +# 2. Backup do banco de dados +pg_dump $DATABASE_URL > /tmp/noidle_backup_$(date +%Y%m%d).sql + +# 3. Backup dos arquivos +cd /var/www +tar -czf pointcontrol_backup_$(date +%Y%m%d).tar.gz pointcontrol/ +``` + +--- + +### Fase 2: Renomear Pasta Principal + +```bash +# Renomear pasta +cd /var/www +mv pointcontrol noidle + +# Atualizar link simbólico se houver +# ln -sfn /var/www/noidle /var/www/app +``` + +--- + +### Fase 3: Atualizar Backend + +```bash +cd /var/www/noidle/backend + +# Atualizar package.json +sed -i 's/"name": "pointcontrol-api"/"name": "noidle-api"/g' package.json + +# Atualizar referências no código +grep -r "PointControl" . --include="*.js" -l | xargs sed -i 's/PointControl/NoIdle/g' +grep -r "pointcontrol" . --include="*.js" -l | xargs sed -i 's/pointcontrol/noidle/g' + +# Reinstalar dependências +npm install +``` + +--- + +### Fase 4: Atualizar Frontend + +```bash +cd /var/www/noidle/frontend + +# Atualizar package.json +sed -i 's/"name": "pointcontrol-frontend"/"name": "noidle-frontend"/g' package.json + +# Atualizar referências no código +grep -r "PointControl" src/ -l | xargs sed -i 's/PointControl/NoIdle/g' +grep -r "pointcontrol" src/ -l | xargs sed -i 's/pointcontrol/noidle/g' + +# Rebuild +npm run build +``` + +--- + +### Fase 5: Atualizar PM2 + +```bash +# Deletar processo antigo +pm2 delete pointcontrol-api + +# Criar novo processo +cd /var/www/noidle/backend +pm2 start server.js --name noidle-api +pm2 save + +# Verificar +pm2 list +``` + +--- + +### Fase 6: Atualizar Nginx + +```bash +# Editar config +sudo nano /etc/nginx/sites-available/admin.noidle.tech + +# Atualizar paths se necessário +# root /var/www/pointcontrol/frontend/build; → /var/www/noidle/frontend/build; + +# Testar e recarregar +sudo nginx -t +sudo systemctl reload nginx +``` + +--- + +### Fase 7: Atualizar Documentação + +```bash +cd /var/www/noidle + +# Atualizar todos os arquivos .md +find . -name "*.md" -type f -exec sed -i 's/PointControl/NoIdle/g' {} + +find . -name "*.md" -type f -exec sed -i 's/pointcontrol/noidle/g' {} + +``` + +--- + +### Fase 8: Atualizar Git + +```bash +cd /var/www/noidle + +# Commit das mudanças +git add . +git commit -m "refactor: Migração completa de PointControl para NoIdle + +- Renomeadas todas as referências no código +- Atualizados package.json +- Atualizadas configurações +- Documentação atualizada" + +git push +``` + +--- + +## ✅ Checklist de Migração + +### Antes de Começar: +- [ ] Backup do banco de dados +- [ ] Backup dos arquivos +- [ ] Avisar usuários sobre manutenção +- [ ] Anotar configurações atuais + +### Durante a Migração: +- [ ] Renomear pasta principal +- [ ] Atualizar package.json (backend) +- [ ] Atualizar package.json (frontend) +- [ ] Atualizar código backend +- [ ] Atualizar código frontend +- [ ] Atualizar PM2 +- [ ] Atualizar Nginx +- [ ] Atualizar documentação + +### Após Migração: +- [ ] Testar API: `curl http://localhost:3005/api/health` +- [ ] Testar Frontend: Acessar admin.noidle.tech +- [ ] Verificar logs: `pm2 logs noidle-api` +- [ ] Testar funcionalidades principais +- [ ] Commit no Git +- [ ] Remover backups antigos (após confirmar) + +--- + +## 🔍 Locais Específicos para Atualizar + +### 1. Backend + +**Arquivos principais:** +``` +/var/www/noidle/backend/ +├── server.js (linha 80: console.log) +├── package.json (name, description) +├── package-lock.json (name) +└── README.md +``` + +**Mudanças necessárias:** +- `console.log('✅ PointControl API')` → `console.log('✅ NoIdle API')` +- Nome do projeto no package.json + +### 2. Frontend + +**Arquivos principais:** +``` +/var/www/noidle/frontend/ +├── package.json +├── src/ +│ ├── components/Layout.jsx (logo, título) +│ ├── pages/Login.jsx (branding) +│ └── App.js (title) +└── public/ + ├── index.html (title, meta) + └── manifest.json (name) +``` + +**Mudanças necessárias:** +- Logo e branding +- Títulos das páginas +- Meta tags + +### 3. Configurações + +**PM2:** +```bash +# Arquivo: ecosystem.config.js (criar se não existir) +module.exports = { + apps: [{ + name: 'noidle-api', + script: './server.js', + cwd: '/var/www/noidle/backend', + env: { + NODE_ENV: 'production', + PORT: 3005 + } + }] +}; +``` + +**Nginx:** +```nginx +# /etc/nginx/sites-available/admin.noidle.tech +server { + server_name admin.noidle.tech; + root /var/www/noidle/frontend/build; + + location /api { + proxy_pass http://localhost:3005; + } +} +``` + +--- + +## 🚨 Cuidados Importantes + +### ⚠️ NÃO Renomear: + +1. **Banco de Dados PostgreSQL:** + - Nome do database pode continuar como está + - Não há necessidade de renomear tabelas + +2. **URLs Externas:** + - API URL já é `admin.noidle.tech` ✅ + - Certificados SSL já estão corretos ✅ + +3. **Chaves de Ativação:** + - Continuam funcionando normalmente + - Não precisam ser regeradas + +### ✅ Verificar Depois: + +1. **Clientes Windows:** + - Verificar se API_URL está correta + - Se necessário, atualizar e redistribuir + +2. **Integracões:** + - Webhooks + - APIs externas + - Serviços de terceiros + +--- + +## 📝 Script Automatizado (OPÇÃO RÁPIDA) + +```bash +#!/bin/bash +# migrate_to_noidle.sh + +echo "🔄 Iniciando migração PointControl → NoIdle" + +# Parar serviços +echo "⏸️ Parando serviços..." +pm2 stop pointcontrol-api + +# Renomear pasta +echo "📁 Renomeando pasta..." +cd /var/www +mv pointcontrol noidle + +# Atualizar backend +echo "🔧 Atualizando backend..." +cd noidle/backend +sed -i 's/pointcontrol/noidle/g' package.json +sed -i 's/PointControl/NoIdle/g' server.js + +# Atualizar frontend +echo "🎨 Atualizando frontend..." +cd ../frontend +sed -i 's/pointcontrol/noidle/g' package.json +find src/ -name "*.jsx" -o -name "*.js" | xargs sed -i 's/PointControl/NoIdle/g' + +# Atualizar PM2 +echo "🚀 Atualizando PM2..." +pm2 delete pointcontrol-api +cd ../backend +pm2 start server.js --name noidle-api +pm2 save + +echo "✅ Migração concluída!" +echo "Verifique: pm2 logs noidle-api" +``` + +--- + +## 🎯 Estratégia Recomendada + +### Opção 1: Migração Completa (Recomendado) +- Fazer tudo de uma vez em uma janela de manutenção +- Tempo estimado: 30-60 minutos +- Risco: Baixo (com backups) + +### Opção 2: Migração Gradual +- Fase 1: Renomear pasta e PM2 (5 min) +- Fase 2: Atualizar código (15 min) +- Fase 3: Atualizar docs (10 min) +- Vantagem: Pode pausar entre fases + +### Opção 3: Manter Como Está +- Criar alias/links simbólicos +- Documentar que "pointcontrol" é o nome técnico +- Usar "NoIdle" apenas no frontend +- **NÃO recomendado** (mantém confusão) + +--- + +## 🆘 Rollback (Se der problema) + +```bash +# Parar novos serviços +pm2 stop noidle-api +pm2 delete noidle-api + +# Restaurar pasta +cd /var/www +mv noidle pointcontrol + +# Restaurar PM2 +cd pointcontrol/backend +pm2 start server.js --name pointcontrol-api +pm2 save + +# Verificar +pm2 list +curl http://localhost:3005/api/health +``` + +--- + +## ✅ Resultado Esperado + +Após a migração, tudo deve estar assim: + +``` +/var/www/noidle/ +├── backend/ +│ ├── package.json (name: "noidle-api") +│ └── server.js (console.log: "NoIdle API") +├── frontend/ +│ ├── package.json (name: "noidle-frontend") +│ └── src/ +│ └── * (Todas referências: NoIdle) +└── docs/ + └── *.md (Documentação atualizada) +``` + +**PM2:** +``` +noidle-api │ online +``` + +**Git:** +``` +Repositório: sergio.correa/NoIdle +Pasta local: /var/www/noidle +``` + +--- + +## 📞 Suporte + +Se algo der errado: +1. Não entre em pânico +2. Execute o rollback +3. Verifique os logs: `pm2 logs` +4. Restaure o backup se necessário + +--- + +**Pronto para Começar? Execute o script ou siga o passo a passo!** 🚀 + +**Data de criação:** 2025-11-16 + diff --git a/migrate_to_noidle.sh b/migrate_to_noidle.sh new file mode 100755 index 0000000..a7c0045 --- /dev/null +++ b/migrate_to_noidle.sh @@ -0,0 +1,207 @@ +#!/bin/bash +# +# Script de Migração: PointControl → NoIdle +# Uso: sudo bash migrate_to_noidle.sh +# + +set -e # Parar em caso de erro + +# Cores para output +RED='\033[0;31m' +GREEN='\033[0;32m' +YELLOW='\033[1;33m' +BLUE='\033[0;34m' +NC='\033[0m' # No Color + +echo -e "${BLUE}═══════════════════════════════════════════════════${NC}" +echo -e "${BLUE} Migração: PointControl → NoIdle${NC}" +echo -e "${BLUE}═══════════════════════════════════════════════════${NC}" +echo "" + +# Verificar se está rodando como root ou com sudo +if [[ $EUID -ne 0 ]]; then + echo -e "${RED}❌ Este script precisa rodar como root ou com sudo${NC}" + echo "Use: sudo bash migrate_to_noidle.sh" + exit 1 +fi + +# Confirmar antes de começar +echo -e "${YELLOW}⚠️ ATENÇÃO: Este script vai:${NC}" +echo " 1. Parar o serviço pointcontrol-api" +echo " 2. Renomear /var/www/pointcontrol para /var/www/noidle" +echo " 3. Atualizar todas as referências no código" +echo " 4. Recriar o serviço PM2 como noidle-api" +echo "" +read -p "Deseja continuar? (s/N): " -n 1 -r +echo +if [[ ! $REPLY =~ ^[Ss]$ ]]; then + echo -e "${RED}❌ Migração cancelada${NC}" + exit 1 +fi + +echo "" +echo -e "${GREEN}✅ Iniciando migração...${NC}" +echo "" + +# Fase 1: Backup +echo -e "${BLUE}[1/8]${NC} Criando backup..." +BACKUP_DIR="/tmp/noidle_migration_backup_$(date +%Y%m%d_%H%M%S)" +mkdir -p "$BACKUP_DIR" + +# Backup do PM2 +pm2 save --force +cp ~/.pm2/dump.pm2 "$BACKUP_DIR/" 2>/dev/null || true + +# Backup da pasta (apenas configs importantes) +cd /var/www +tar -czf "$BACKUP_DIR/pointcontrol_backup.tar.gz" \ + --exclude='pointcontrol/node_modules' \ + --exclude='pointcontrol/frontend/node_modules' \ + --exclude='pointcontrol/frontend/build' \ + pointcontrol/ 2>/dev/null || true + +echo -e "${GREEN} ✓ Backup salvo em: $BACKUP_DIR${NC}" + +# Fase 2: Parar serviços +echo -e "${BLUE}[2/8]${NC} Parando serviços..." +pm2 stop pointcontrol-api 2>/dev/null || echo " ℹ️ Serviço pointcontrol-api não estava rodando" +sleep 2 +echo -e "${GREEN} ✓ Serviços parados${NC}" + +# Fase 3: Renomear pasta principal +echo -e "${BLUE}[3/8]${NC} Renomeando pasta principal..." +cd /var/www + +if [ -d "pointcontrol" ]; then + if [ -d "noidle" ]; then + echo -e "${RED} ⚠️ Pasta /var/www/noidle já existe!${NC}" + read -p " Deseja sobrescrever? (s/N): " -n 1 -r + echo + if [[ $REPLY =~ ^[Ss]$ ]]; then + mv noidle noidle_old_$(date +%Y%m%d_%H%M%S) + mv pointcontrol noidle + else + echo -e "${RED}❌ Migração cancelada${NC}" + exit 1 + fi + else + mv pointcontrol noidle + fi + echo -e "${GREEN} ✓ Pasta renomeada: /var/www/noidle${NC}" +else + echo -e "${YELLOW} ⚠️ Pasta pointcontrol não encontrada, verificando noidle...${NC}" + if [ ! -d "noidle" ]; then + echo -e "${RED}❌ Nenhuma pasta encontrada!${NC}" + exit 1 + fi + echo -e "${GREEN} ✓ Usando pasta existente: /var/www/noidle${NC}" +fi + +# Fase 4: Atualizar Backend +echo -e "${BLUE}[4/8]${NC} Atualizando backend..." +cd /var/www/noidle/backend + +# Atualizar package.json +if [ -f "package.json" ]; then + sed -i 's/"name": "pointcontrol-api"/"name": "noidle-api"/g' package.json + sed -i 's/"name": "pointcontrol"/"name": "noidle"/g' package.json + echo -e "${GREEN} ✓ package.json atualizado${NC}" +fi + +# Atualizar server.js +if [ -f "server.js" ]; then + sed -i 's/PointControl/NoIdle/g' server.js + sed -i 's/pointcontrol/noidle/g' server.js + echo -e "${GREEN} ✓ server.js atualizado${NC}" +fi + +# Fase 5: Atualizar Frontend +echo -e "${BLUE}[5/8]${NC} Atualizando frontend..." +cd /var/www/noidle/frontend + +# Atualizar package.json +if [ -f "package.json" ]; then + sed -i 's/"name": "pointcontrol-frontend"/"name": "noidle-frontend"/g' package.json + sed -i 's/"name": "pointcontrol"/"name": "noidle"/g' package.json + echo -e "${GREEN} ✓ package.json atualizado${NC}" +fi + +# Atualizar componentes React +if [ -d "src" ]; then + find src/ -type f \( -name "*.js" -o -name "*.jsx" \) -exec sed -i 's/PointControl/NoIdle/g' {} + 2>/dev/null || true + find src/ -type f \( -name "*.js" -o -name "*.jsx" \) -exec sed -i 's/pointcontrol/noidle/g' {} + 2>/dev/null || true + echo -e "${GREEN} ✓ Componentes atualizados${NC}" +fi + +# Atualizar HTML +if [ -f "public/index.html" ]; then + sed -i 's/PointControl/NoIdle/g' public/index.html + sed -i 's/pointcontrol/noidle/g' public/index.html + echo -e "${GREEN} ✓ HTML atualizado${NC}" +fi + +# Fase 6: Atualizar Documentação +echo -e "${BLUE}[6/8]${NC} Atualizando documentação..." +cd /var/www/noidle + +# Atualizar arquivos .md +find . -maxdepth 1 -name "*.md" -type f -exec sed -i 's/PointControl/NoIdle/g' {} + 2>/dev/null || true +find . -maxdepth 1 -name "*.md" -type f -exec sed -i 's/pointcontrol/noidle/g' {} + 2>/dev/null || true + +echo -e "${GREEN} ✓ Documentação atualizada${NC}" + +# Fase 7: Atualizar PM2 +echo -e "${BLUE}[7/8]${NC} Atualizando PM2..." + +# Remover processo antigo +pm2 delete pointcontrol-api 2>/dev/null || true + +# Criar novo processo +cd /var/www/noidle/backend +pm2 start server.js --name noidle-api +pm2 save --force + +echo -e "${GREEN} ✓ PM2 atualizado: noidle-api${NC}" + +# Fase 8: Verificação +echo -e "${BLUE}[8/8]${NC} Verificando instalação..." +sleep 3 + +# Verificar PM2 +if pm2 list | grep -q "noidle-api.*online"; then + echo -e "${GREEN} ✓ Serviço noidle-api está online${NC}" +else + echo -e "${RED} ⚠️ Serviço noidle-api não está online${NC}" +fi + +# Verificar API +if curl -s http://localhost:3005/api/health > /dev/null 2>&1; then + echo -e "${GREEN} ✓ API respondendo em http://localhost:3005${NC}" +else + echo -e "${YELLOW} ⚠️ API não está respondendo (pode precisar reiniciar)${NC}" +fi + +# Resumo +echo "" +echo -e "${GREEN}═══════════════════════════════════════════════════${NC}" +echo -e "${GREEN}✅ Migração concluída com sucesso!${NC}" +echo -e "${GREEN}═══════════════════════════════════════════════════${NC}" +echo "" +echo -e "${BLUE}📋 Resumo:${NC}" +echo " • Pasta: /var/www/noidle" +echo " • Serviço PM2: noidle-api" +echo " • Backup: $BACKUP_DIR" +echo "" +echo -e "${BLUE}🔍 Próximos passos:${NC}" +echo " 1. Verificar logs: ${YELLOW}pm2 logs noidle-api${NC}" +echo " 2. Testar API: ${YELLOW}curl http://localhost:3005/api/health${NC}" +echo " 3. Acessar frontend: ${YELLOW}https://admin.noidle.tech${NC}" +echo " 4. Atualizar Nginx se necessário" +echo " 5. Fazer commit: ${YELLOW}cd /var/www/noidle && git add . && git commit -m 'refactor: Migração para NoIdle'${NC}" +echo "" +echo -e "${YELLOW}⚠️ Se houver problemas, restaure o backup:${NC}" +echo " ${YELLOW}pm2 stop noidle-api && pm2 delete noidle-api${NC}" +echo " ${YELLOW}cd /var/www && mv noidle noidle_failed && tar -xzf $BACKUP_DIR/pointcontrol_backup.tar.gz${NC}" +echo " ${YELLOW}cd pointcontrol/backend && pm2 start server.js --name pointcontrol-api${NC}" +echo "" +