Files
NoIdle/PLANO_MIGRACAO_NOIDLE.md
Sérgio Corrêa 710792af01 docs: Plano completo de migração PointControl → NoIdle
- 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
2025-11-16 23:32:24 +00:00

8.7 KiB

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

{
  "name": "pointcontrol-api"    "noidle-api"
}

4. Package.json (Frontend)

{
  "name": "pointcontrol-frontend"    "noidle-frontend"
}

5. Referências no Código

  • PointControlNoIdle
  • pointcontrolnoidle
  • 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)

# 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

# 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

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

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

# 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

# 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

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

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:

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

# /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)

#!/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)

# 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