# 🔄 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