Files
NoIdle/PLANO_MIGRACAO_NOIDLE.md

447 lines
8.5 KiB
Markdown
Raw Permalink Normal View History

# 🔄 Plano de Migração: NoIdle → NoIdle
## 📊 Situação Atual
**Problema:** Projeto mudou de nome de "NoIdle" para "NoIdle", mas a estrutura de pastas e código ainda usa "noidle" 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/noidle → /var/www/noidle
```
### 2. **Serviço PM2**
```
noidle-api → noidle-api
```
### 3. **Package.json (Backend)**
```json
{
"name": "noidle-api" → "noidle-api"
}
```
### 4. **Package.json (Frontend)**
```json
{
"name": "noidle-frontend" → "noidle-frontend"
}
```
### 5. **Referências no Código**
- `NoIdle``NoIdle`
- `noidle``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 noidle-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 noidle_backup_$(date +%Y%m%d).tar.gz noidle/
```
---
### Fase 2: Renomear Pasta Principal
```bash
# Renomear pasta
cd /var/www
mv noidle 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": "noidle-api"/"name": "noidle-api"/g' package.json
# Atualizar referências no código
grep -r "NoIdle" . --include="*.js" -l | xargs sed -i 's/NoIdle/NoIdle/g'
grep -r "noidle" . --include="*.js" -l | xargs sed -i 's/noidle/noidle/g'
# Reinstalar dependências
npm install
```
---
### Fase 4: Atualizar Frontend
```bash
cd /var/www/noidle/frontend
# Atualizar package.json
sed -i 's/"name": "noidle-frontend"/"name": "noidle-frontend"/g' package.json
# Atualizar referências no código
grep -r "NoIdle" src/ -l | xargs sed -i 's/NoIdle/NoIdle/g'
grep -r "noidle" src/ -l | xargs sed -i 's/noidle/noidle/g'
# Rebuild
npm run build
```
---
### Fase 5: Atualizar PM2
```bash
# Deletar processo antigo
pm2 delete noidle-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/noidle/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/NoIdle/NoIdle/g' {} +
find . -name "*.md" -type f -exec sed -i 's/noidle/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 NoIdle 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('✅ NoIdle 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 NoIdle → NoIdle"
# Parar serviços
echo "⏸️ Parando serviços..."
pm2 stop noidle-api
# Renomear pasta
echo "📁 Renomeando pasta..."
cd /var/www
mv noidle noidle
# Atualizar backend
echo "🔧 Atualizando backend..."
cd noidle/backend
sed -i 's/noidle/noidle/g' package.json
sed -i 's/NoIdle/NoIdle/g' server.js
# Atualizar frontend
echo "🎨 Atualizando frontend..."
cd ../frontend
sed -i 's/noidle/noidle/g' package.json
find src/ -name "*.jsx" -o -name "*.js" | xargs sed -i 's/NoIdle/NoIdle/g'
# Atualizar PM2
echo "🚀 Atualizando PM2..."
pm2 delete noidle-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 "noidle" é 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 noidle
# Restaurar PM2
cd noidle/backend
pm2 start server.js --name noidle-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