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
This commit is contained in:
446
PLANO_MIGRACAO_NOIDLE.md
Normal file
446
PLANO_MIGRACAO_NOIDLE.md
Normal file
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user