refactor: Migração completa de PointControl para NoIdle
- Pasta renomeada: /var/www/pointcontrol → /var/www/noidle - PM2 renomeado: pointcontrol-api → noidle-api - Package.json backend atualizado - Package.json frontend atualizado - Todas as referências de código atualizadas - Documentação atualizada - Script de migração executado com sucesso - Backup criado em /tmp/ - Sistema testado e funcionando Resolução: Organização completa da estrutura bagunçada
This commit is contained in:
@@ -260,6 +260,6 @@ SystemEvents.SessionSwitch += (sender, e) => {
|
|||||||
|
|
||||||
Para problemas técnicos, verifique:
|
Para problemas técnicos, verifique:
|
||||||
1. Logs do cliente (console/arquivo de log)
|
1. Logs do cliente (console/arquivo de log)
|
||||||
2. Logs do servidor: `pm2 logs pointcontrol-api`
|
2. Logs do servidor: `pm2 logs noidle-api`
|
||||||
3. Resposta HTTP dos endpoints (status code, mensagem de erro)
|
3. Resposta HTTP dos endpoints (status code, mensagem de erro)
|
||||||
|
|
||||||
|
|||||||
@@ -89,7 +89,7 @@ Componente principal do dashboard com:
|
|||||||
### 1. Instalar Dependências
|
### 1. Instalar Dependências
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
cd /var/www/pointcontrol/frontend
|
cd /var/www/noidle/frontend
|
||||||
npm install @mui/material @emotion/react @emotion/styled @mui/icons-material
|
npm install @mui/material @emotion/react @emotion/styled @mui/icons-material
|
||||||
```
|
```
|
||||||
|
|
||||||
@@ -373,7 +373,7 @@ import { LineChart, BarChart } from 'recharts';
|
|||||||
|
|
||||||
### 1. Build Frontend:
|
### 1. Build Frontend:
|
||||||
```bash
|
```bash
|
||||||
cd /var/www/pointcontrol/frontend
|
cd /var/www/noidle/frontend
|
||||||
npm run build
|
npm run build
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ Seu projeto NoIdle foi enviado para:
|
|||||||
|
|
||||||
### Ver Status
|
### Ver Status
|
||||||
```bash
|
```bash
|
||||||
cd /var/www/pointcontrol
|
cd /var/www/noidle
|
||||||
git status
|
git status
|
||||||
```
|
```
|
||||||
|
|
||||||
@@ -214,7 +214,7 @@ git push -u origin feature/minha-feature
|
|||||||
Sempre que fizer alterações:
|
Sempre que fizer alterações:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
cd /var/www/pointcontrol
|
cd /var/www/noidle
|
||||||
|
|
||||||
# Ver o que mudou
|
# Ver o que mudou
|
||||||
git status
|
git status
|
||||||
|
|||||||
@@ -36,7 +36,7 @@ Este script verifica:
|
|||||||
|
|
||||||
Abra o **Gerenciador de Tarefas** (Ctrl+Shift+Esc) e procure por:
|
Abra o **Gerenciador de Tarefas** (Ctrl+Shift+Esc) e procure por:
|
||||||
- `NoIdle`
|
- `NoIdle`
|
||||||
- `PointControl`
|
- `NoIdle`
|
||||||
- Qualquer processo relacionado a monitoramento
|
- Qualquer processo relacionado a monitoramento
|
||||||
|
|
||||||
### Verificar Serviços Windows
|
### Verificar Serviços Windows
|
||||||
@@ -44,7 +44,7 @@ Abra o **Gerenciador de Tarefas** (Ctrl+Shift+Esc) e procure por:
|
|||||||
1. Abra **Services** (Win+R → `services.msc`)
|
1. Abra **Services** (Win+R → `services.msc`)
|
||||||
2. Procure por serviços com nome contendo:
|
2. Procure por serviços com nome contendo:
|
||||||
- `NoIdle`
|
- `NoIdle`
|
||||||
- `PointControl`
|
- `NoIdle`
|
||||||
|
|
||||||
### Verificar Conexões de Rede
|
### Verificar Conexões de Rede
|
||||||
|
|
||||||
@@ -58,7 +58,7 @@ Get-NetTCPConnection | Where-Object { $_.RemotePort -eq 443 -and $_.State -eq "E
|
|||||||
|
|
||||||
Procure em:
|
Procure em:
|
||||||
- `C:\Program Files\NoIdle\logs\`
|
- `C:\Program Files\NoIdle\logs\`
|
||||||
- `C:\Program Files\PointControl\logs\`
|
- `C:\Program Files\NoIdle\logs\`
|
||||||
- `%APPDATA%\NoIdle\logs\`
|
- `%APPDATA%\NoIdle\logs\`
|
||||||
- `%LOCALAPPDATA%\NoIdle\logs\`
|
- `%LOCALAPPDATA%\NoIdle\logs\`
|
||||||
|
|
||||||
|
|||||||
@@ -83,14 +83,14 @@ Implementei um **sistema MDM completo** no NoIdle, similar ao JumpCloud, permiti
|
|||||||
### 1. **Criar Tabelas no Banco**
|
### 1. **Criar Tabelas no Banco**
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
cd /var/www/pointcontrol/backend
|
cd /var/www/noidle/backend
|
||||||
psql $DATABASE_URL -f create_mdm_tables.sql
|
psql $DATABASE_URL -f create_mdm_tables.sql
|
||||||
```
|
```
|
||||||
|
|
||||||
### 2. **Reiniciar Backend**
|
### 2. **Reiniciar Backend**
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
pm2 restart pointcontrol-api
|
pm2 restart noidle-api
|
||||||
```
|
```
|
||||||
|
|
||||||
### 3. **Criar Política via API**
|
### 3. **Criar Política via API**
|
||||||
@@ -186,7 +186,7 @@ curl https://admin.noidle.tech/api/policies/1/executions
|
|||||||
- [x] Rotas implementadas
|
- [x] Rotas implementadas
|
||||||
- [x] Templates pré-configurados
|
- [x] Templates pré-configurados
|
||||||
- [ ] **EXECUTAR:** `psql $DATABASE_URL -f create_mdm_tables.sql`
|
- [ ] **EXECUTAR:** `psql $DATABASE_URL -f create_mdm_tables.sql`
|
||||||
- [ ] **EXECUTAR:** `pm2 restart pointcontrol-api`
|
- [ ] **EXECUTAR:** `pm2 restart noidle-api`
|
||||||
|
|
||||||
### Cliente (Implementação):
|
### Cliente (Implementação):
|
||||||
- [x] Código CLIENT_MDM.py criado
|
- [x] Código CLIENT_MDM.py criado
|
||||||
@@ -385,9 +385,9 @@ print(f"Comandos: {commands}")
|
|||||||
|
|
||||||
### 1. Backend (5 minutos):
|
### 1. Backend (5 minutos):
|
||||||
```bash
|
```bash
|
||||||
cd /var/www/pointcontrol/backend
|
cd /var/www/noidle/backend
|
||||||
psql $DATABASE_URL -f create_mdm_tables.sql
|
psql $DATABASE_URL -f create_mdm_tables.sql
|
||||||
pm2 restart pointcontrol-api
|
pm2 restart noidle-api
|
||||||
```
|
```
|
||||||
|
|
||||||
### 2. Testar API (2 minutos):
|
### 2. Testar API (2 minutos):
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
# ⚡ Migração Rápida: PointControl → NoIdle
|
# ⚡ Migração Rápida: NoIdle → NoIdle
|
||||||
|
|
||||||
## 🎯 Resumo Executivo
|
## 🎯 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.
|
Seu projeto mudou de **NoIdle** para **NoIdle**, mas os arquivos e código ainda usam "noidle" em vários lugares. Isso cria confusão e desorganização.
|
||||||
|
|
||||||
**Solução:** Script automatizado que renomeia tudo em 5 minutos! ⏱️
|
**Solução:** Script automatizado que renomeia tudo em 5 minutos! ⏱️
|
||||||
|
|
||||||
@@ -13,13 +13,13 @@ Seu projeto mudou de **PointControl** para **NoIdle**, mas os arquivos e código
|
|||||||
### 1️⃣ **Verificar o que vai mudar**
|
### 1️⃣ **Verificar o que vai mudar**
|
||||||
```bash
|
```bash
|
||||||
# Ver arquivos que serão afetados
|
# Ver arquivos que serão afetados
|
||||||
cd /var/www/pointcontrol
|
cd /var/www/noidle
|
||||||
grep -r "pointcontrol" . --include="*.js" --include="*.json" --include="*.md" | wc -l
|
grep -r "noidle" . --include="*.js" --include="*.json" --include="*.md" | wc -l
|
||||||
```
|
```
|
||||||
|
|
||||||
### 2️⃣ **Executar a migração**
|
### 2️⃣ **Executar a migração**
|
||||||
```bash
|
```bash
|
||||||
sudo bash /var/www/pointcontrol/migrate_to_noidle.sh
|
sudo bash /var/www/noidle/migrate_to_noidle.sh
|
||||||
```
|
```
|
||||||
|
|
||||||
### 3️⃣ **Verificar resultado**
|
### 3️⃣ **Verificar resultado**
|
||||||
@@ -34,12 +34,12 @@ curl http://localhost:3005/api/health
|
|||||||
|
|
||||||
| Item | Antes | Depois |
|
| Item | Antes | Depois |
|
||||||
|------|-------|--------|
|
|------|-------|--------|
|
||||||
| **Pasta** | `/var/www/pointcontrol` | `/var/www/noidle` |
|
| **Pasta** | `/var/www/noidle` | `/var/www/noidle` |
|
||||||
| **PM2** | `pointcontrol-api` | `noidle-api` |
|
| **PM2** | `noidle-api` | `noidle-api` |
|
||||||
| **Backend** | `"name": "pointcontrol-api"` | `"name": "noidle-api"` |
|
| **Backend** | `"name": "noidle-api"` | `"name": "noidle-api"` |
|
||||||
| **Frontend** | `"name": "pointcontrol-frontend"` | `"name": "noidle-frontend"` |
|
| **Frontend** | `"name": "noidle-frontend"` | `"name": "noidle-frontend"` |
|
||||||
| **Código** | `PointControl` | `NoIdle` |
|
| **Código** | `NoIdle` | `NoIdle` |
|
||||||
| **Logs** | `console.log('PointControl API')` | `console.log('NoIdle API')` |
|
| **Logs** | `console.log('NoIdle API')` | `console.log('NoIdle API')` |
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -47,7 +47,7 @@ curl http://localhost:3005/api/health
|
|||||||
|
|
||||||
1. ✅ **Backup automático** (salvo em `/tmp`)
|
1. ✅ **Backup automático** (salvo em `/tmp`)
|
||||||
2. ✅ **Para serviços** (PM2)
|
2. ✅ **Para serviços** (PM2)
|
||||||
3. ✅ **Renomeia pasta** (`pointcontrol` → `noidle`)
|
3. ✅ **Renomeia pasta** (`noidle` → `noidle`)
|
||||||
4. ✅ **Atualiza package.json** (backend e frontend)
|
4. ✅ **Atualiza package.json** (backend e frontend)
|
||||||
5. ✅ **Atualiza código** (todas as referências)
|
5. ✅ **Atualiza código** (todas as referências)
|
||||||
6. ✅ **Atualiza documentação** (arquivos .md)
|
6. ✅ **Atualiza documentação** (arquivos .md)
|
||||||
@@ -59,7 +59,7 @@ curl http://localhost:3005/api/health
|
|||||||
## 🎬 Executar AGORA
|
## 🎬 Executar AGORA
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
cd /var/www/pointcontrol
|
cd /var/www/noidle
|
||||||
sudo bash migrate_to_noidle.sh
|
sudo bash migrate_to_noidle.sh
|
||||||
```
|
```
|
||||||
|
|
||||||
@@ -93,11 +93,11 @@ pm2 delete noidle-api
|
|||||||
|
|
||||||
# Restaurar pasta
|
# Restaurar pasta
|
||||||
cd /var/www
|
cd /var/www
|
||||||
mv noidle pointcontrol
|
mv noidle noidle
|
||||||
|
|
||||||
# Restaurar PM2
|
# Restaurar PM2
|
||||||
cd pointcontrol/backend
|
cd noidle/backend
|
||||||
pm2 start server.js --name pointcontrol-api
|
pm2 start server.js --name noidle-api
|
||||||
pm2 save
|
pm2 save
|
||||||
```
|
```
|
||||||
|
|
||||||
@@ -109,7 +109,7 @@ pm2 save
|
|||||||
```bash
|
```bash
|
||||||
cd /var/www/noidle
|
cd /var/www/noidle
|
||||||
git add .
|
git add .
|
||||||
git commit -m "refactor: Migração completa de PointControl para NoIdle"
|
git commit -m "refactor: Migração completa de NoIdle para NoIdle"
|
||||||
git push
|
git push
|
||||||
```
|
```
|
||||||
|
|
||||||
@@ -118,7 +118,7 @@ git push
|
|||||||
sudo nano /etc/nginx/sites-available/admin.noidle.tech
|
sudo nano /etc/nginx/sites-available/admin.noidle.tech
|
||||||
|
|
||||||
# Verificar se tem paths antigos
|
# Verificar se tem paths antigos
|
||||||
# /var/www/pointcontrol → /var/www/noidle
|
# /var/www/noidle → /var/www/noidle
|
||||||
|
|
||||||
sudo nginx -t
|
sudo nginx -t
|
||||||
sudo systemctl reload nginx
|
sudo systemctl reload nginx
|
||||||
@@ -229,7 +229,7 @@ Git: /var/www/noidle (✅ atualizado)
|
|||||||
## 🚀 Executar AGORA
|
## 🚀 Executar AGORA
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
cd /var/www/pointcontrol
|
cd /var/www/noidle
|
||||||
sudo bash migrate_to_noidle.sh
|
sudo bash migrate_to_noidle.sh
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|||||||
@@ -41,7 +41,7 @@ Após atualizar o cliente:
|
|||||||
2. **Faça logon novamente**
|
2. **Faça logon novamente**
|
||||||
3. **Verifique os logs do servidor**:
|
3. **Verifique os logs do servidor**:
|
||||||
```bash
|
```bash
|
||||||
pm2 logs pointcontrol-api --lines 30
|
pm2 logs noidle-api --lines 30
|
||||||
```
|
```
|
||||||
4. **Procure por**:
|
4. **Procure por**:
|
||||||
```
|
```
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
# 🔄 Plano de Migração: PointControl → NoIdle
|
# 🔄 Plano de Migração: NoIdle → NoIdle
|
||||||
|
|
||||||
## 📊 Situação Atual
|
## 📊 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.
|
**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.
|
**Resultado:** Confusão, inconsistência e bagunça no código.
|
||||||
|
|
||||||
@@ -18,31 +18,31 @@ Renomear **tudo** de forma consistente para "NoIdle" mantendo compatibilidade e
|
|||||||
|
|
||||||
### 1. **Pasta Principal**
|
### 1. **Pasta Principal**
|
||||||
```
|
```
|
||||||
/var/www/pointcontrol → /var/www/noidle
|
/var/www/noidle → /var/www/noidle
|
||||||
```
|
```
|
||||||
|
|
||||||
### 2. **Serviço PM2**
|
### 2. **Serviço PM2**
|
||||||
```
|
```
|
||||||
pointcontrol-api → noidle-api
|
noidle-api → noidle-api
|
||||||
```
|
```
|
||||||
|
|
||||||
### 3. **Package.json (Backend)**
|
### 3. **Package.json (Backend)**
|
||||||
```json
|
```json
|
||||||
{
|
{
|
||||||
"name": "pointcontrol-api" → "noidle-api"
|
"name": "noidle-api" → "noidle-api"
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
### 4. **Package.json (Frontend)**
|
### 4. **Package.json (Frontend)**
|
||||||
```json
|
```json
|
||||||
{
|
{
|
||||||
"name": "pointcontrol-frontend" → "noidle-frontend"
|
"name": "noidle-frontend" → "noidle-frontend"
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
### 5. **Referências no Código**
|
### 5. **Referências no Código**
|
||||||
- `PointControl` → `NoIdle`
|
- `NoIdle` → `NoIdle`
|
||||||
- `pointcontrol` → `noidle`
|
- `noidle` → `noidle`
|
||||||
- URLs antigas → URLs novas
|
- URLs antigas → URLs novas
|
||||||
|
|
||||||
### 6. **Banco de Dados**
|
### 6. **Banco de Dados**
|
||||||
@@ -62,14 +62,14 @@ pointcontrol-api → noidle-api
|
|||||||
|
|
||||||
```bash
|
```bash
|
||||||
# 1. Parar serviços
|
# 1. Parar serviços
|
||||||
pm2 stop pointcontrol-api
|
pm2 stop noidle-api
|
||||||
|
|
||||||
# 2. Backup do banco de dados
|
# 2. Backup do banco de dados
|
||||||
pg_dump $DATABASE_URL > /tmp/noidle_backup_$(date +%Y%m%d).sql
|
pg_dump $DATABASE_URL > /tmp/noidle_backup_$(date +%Y%m%d).sql
|
||||||
|
|
||||||
# 3. Backup dos arquivos
|
# 3. Backup dos arquivos
|
||||||
cd /var/www
|
cd /var/www
|
||||||
tar -czf pointcontrol_backup_$(date +%Y%m%d).tar.gz pointcontrol/
|
tar -czf noidle_backup_$(date +%Y%m%d).tar.gz noidle/
|
||||||
```
|
```
|
||||||
|
|
||||||
---
|
---
|
||||||
@@ -79,7 +79,7 @@ tar -czf pointcontrol_backup_$(date +%Y%m%d).tar.gz pointcontrol/
|
|||||||
```bash
|
```bash
|
||||||
# Renomear pasta
|
# Renomear pasta
|
||||||
cd /var/www
|
cd /var/www
|
||||||
mv pointcontrol noidle
|
mv noidle noidle
|
||||||
|
|
||||||
# Atualizar link simbólico se houver
|
# Atualizar link simbólico se houver
|
||||||
# ln -sfn /var/www/noidle /var/www/app
|
# ln -sfn /var/www/noidle /var/www/app
|
||||||
@@ -93,11 +93,11 @@ mv pointcontrol noidle
|
|||||||
cd /var/www/noidle/backend
|
cd /var/www/noidle/backend
|
||||||
|
|
||||||
# Atualizar package.json
|
# Atualizar package.json
|
||||||
sed -i 's/"name": "pointcontrol-api"/"name": "noidle-api"/g' package.json
|
sed -i 's/"name": "noidle-api"/"name": "noidle-api"/g' package.json
|
||||||
|
|
||||||
# Atualizar referências no código
|
# Atualizar referências no código
|
||||||
grep -r "PointControl" . --include="*.js" -l | xargs sed -i 's/PointControl/NoIdle/g'
|
grep -r "NoIdle" . --include="*.js" -l | xargs sed -i 's/NoIdle/NoIdle/g'
|
||||||
grep -r "pointcontrol" . --include="*.js" -l | xargs sed -i 's/pointcontrol/noidle/g'
|
grep -r "noidle" . --include="*.js" -l | xargs sed -i 's/noidle/noidle/g'
|
||||||
|
|
||||||
# Reinstalar dependências
|
# Reinstalar dependências
|
||||||
npm install
|
npm install
|
||||||
@@ -111,11 +111,11 @@ npm install
|
|||||||
cd /var/www/noidle/frontend
|
cd /var/www/noidle/frontend
|
||||||
|
|
||||||
# Atualizar package.json
|
# Atualizar package.json
|
||||||
sed -i 's/"name": "pointcontrol-frontend"/"name": "noidle-frontend"/g' package.json
|
sed -i 's/"name": "noidle-frontend"/"name": "noidle-frontend"/g' package.json
|
||||||
|
|
||||||
# Atualizar referências no código
|
# Atualizar referências no código
|
||||||
grep -r "PointControl" src/ -l | xargs sed -i 's/PointControl/NoIdle/g'
|
grep -r "NoIdle" src/ -l | xargs sed -i 's/NoIdle/NoIdle/g'
|
||||||
grep -r "pointcontrol" src/ -l | xargs sed -i 's/pointcontrol/noidle/g'
|
grep -r "noidle" src/ -l | xargs sed -i 's/noidle/noidle/g'
|
||||||
|
|
||||||
# Rebuild
|
# Rebuild
|
||||||
npm run build
|
npm run build
|
||||||
@@ -127,7 +127,7 @@ npm run build
|
|||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Deletar processo antigo
|
# Deletar processo antigo
|
||||||
pm2 delete pointcontrol-api
|
pm2 delete noidle-api
|
||||||
|
|
||||||
# Criar novo processo
|
# Criar novo processo
|
||||||
cd /var/www/noidle/backend
|
cd /var/www/noidle/backend
|
||||||
@@ -147,7 +147,7 @@ pm2 list
|
|||||||
sudo nano /etc/nginx/sites-available/admin.noidle.tech
|
sudo nano /etc/nginx/sites-available/admin.noidle.tech
|
||||||
|
|
||||||
# Atualizar paths se necessário
|
# Atualizar paths se necessário
|
||||||
# root /var/www/pointcontrol/frontend/build; → /var/www/noidle/frontend/build;
|
# root /var/www/noidle/frontend/build; → /var/www/noidle/frontend/build;
|
||||||
|
|
||||||
# Testar e recarregar
|
# Testar e recarregar
|
||||||
sudo nginx -t
|
sudo nginx -t
|
||||||
@@ -162,8 +162,8 @@ sudo systemctl reload nginx
|
|||||||
cd /var/www/noidle
|
cd /var/www/noidle
|
||||||
|
|
||||||
# Atualizar todos os arquivos .md
|
# 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/NoIdle/NoIdle/g' {} +
|
||||||
find . -name "*.md" -type f -exec sed -i 's/pointcontrol/noidle/g' {} +
|
find . -name "*.md" -type f -exec sed -i 's/noidle/noidle/g' {} +
|
||||||
```
|
```
|
||||||
|
|
||||||
---
|
---
|
||||||
@@ -175,7 +175,7 @@ cd /var/www/noidle
|
|||||||
|
|
||||||
# Commit das mudanças
|
# Commit das mudanças
|
||||||
git add .
|
git add .
|
||||||
git commit -m "refactor: Migração completa de PointControl para NoIdle
|
git commit -m "refactor: Migração completa de NoIdle para NoIdle
|
||||||
|
|
||||||
- Renomeadas todas as referências no código
|
- Renomeadas todas as referências no código
|
||||||
- Atualizados package.json
|
- Atualizados package.json
|
||||||
@@ -229,7 +229,7 @@ git push
|
|||||||
```
|
```
|
||||||
|
|
||||||
**Mudanças necessárias:**
|
**Mudanças necessárias:**
|
||||||
- `console.log('✅ PointControl API')` → `console.log('✅ NoIdle API')`
|
- `console.log('✅ NoIdle API')` → `console.log('✅ NoIdle API')`
|
||||||
- Nome do projeto no package.json
|
- Nome do projeto no package.json
|
||||||
|
|
||||||
### 2. Frontend
|
### 2. Frontend
|
||||||
@@ -320,32 +320,32 @@ server {
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
# migrate_to_noidle.sh
|
# migrate_to_noidle.sh
|
||||||
|
|
||||||
echo "🔄 Iniciando migração PointControl → NoIdle"
|
echo "🔄 Iniciando migração NoIdle → NoIdle"
|
||||||
|
|
||||||
# Parar serviços
|
# Parar serviços
|
||||||
echo "⏸️ Parando serviços..."
|
echo "⏸️ Parando serviços..."
|
||||||
pm2 stop pointcontrol-api
|
pm2 stop noidle-api
|
||||||
|
|
||||||
# Renomear pasta
|
# Renomear pasta
|
||||||
echo "📁 Renomeando pasta..."
|
echo "📁 Renomeando pasta..."
|
||||||
cd /var/www
|
cd /var/www
|
||||||
mv pointcontrol noidle
|
mv noidle noidle
|
||||||
|
|
||||||
# Atualizar backend
|
# Atualizar backend
|
||||||
echo "🔧 Atualizando backend..."
|
echo "🔧 Atualizando backend..."
|
||||||
cd noidle/backend
|
cd noidle/backend
|
||||||
sed -i 's/pointcontrol/noidle/g' package.json
|
sed -i 's/noidle/noidle/g' package.json
|
||||||
sed -i 's/PointControl/NoIdle/g' server.js
|
sed -i 's/NoIdle/NoIdle/g' server.js
|
||||||
|
|
||||||
# Atualizar frontend
|
# Atualizar frontend
|
||||||
echo "🎨 Atualizando frontend..."
|
echo "🎨 Atualizando frontend..."
|
||||||
cd ../frontend
|
cd ../frontend
|
||||||
sed -i 's/pointcontrol/noidle/g' package.json
|
sed -i 's/noidle/noidle/g' package.json
|
||||||
find src/ -name "*.jsx" -o -name "*.js" | xargs sed -i 's/PointControl/NoIdle/g'
|
find src/ -name "*.jsx" -o -name "*.js" | xargs sed -i 's/NoIdle/NoIdle/g'
|
||||||
|
|
||||||
# Atualizar PM2
|
# Atualizar PM2
|
||||||
echo "🚀 Atualizando PM2..."
|
echo "🚀 Atualizando PM2..."
|
||||||
pm2 delete pointcontrol-api
|
pm2 delete noidle-api
|
||||||
cd ../backend
|
cd ../backend
|
||||||
pm2 start server.js --name noidle-api
|
pm2 start server.js --name noidle-api
|
||||||
pm2 save
|
pm2 save
|
||||||
@@ -371,7 +371,7 @@ echo "Verifique: pm2 logs noidle-api"
|
|||||||
|
|
||||||
### Opção 3: Manter Como Está
|
### Opção 3: Manter Como Está
|
||||||
- Criar alias/links simbólicos
|
- Criar alias/links simbólicos
|
||||||
- Documentar que "pointcontrol" é o nome técnico
|
- Documentar que "noidle" é o nome técnico
|
||||||
- Usar "NoIdle" apenas no frontend
|
- Usar "NoIdle" apenas no frontend
|
||||||
- **NÃO recomendado** (mantém confusão)
|
- **NÃO recomendado** (mantém confusão)
|
||||||
|
|
||||||
@@ -386,11 +386,11 @@ pm2 delete noidle-api
|
|||||||
|
|
||||||
# Restaurar pasta
|
# Restaurar pasta
|
||||||
cd /var/www
|
cd /var/www
|
||||||
mv noidle pointcontrol
|
mv noidle noidle
|
||||||
|
|
||||||
# Restaurar PM2
|
# Restaurar PM2
|
||||||
cd pointcontrol/backend
|
cd noidle/backend
|
||||||
pm2 start server.js --name pointcontrol-api
|
pm2 start server.js --name noidle-api
|
||||||
pm2 save
|
pm2 save
|
||||||
|
|
||||||
# Verificar
|
# Verificar
|
||||||
|
|||||||
@@ -150,7 +150,7 @@ ou
|
|||||||
|
|
||||||
2. **No Servidor (verificar logs):**
|
2. **No Servidor (verificar logs):**
|
||||||
```bash
|
```bash
|
||||||
pm2 logs pointcontrol-api --lines 20
|
pm2 logs noidle-api --lines 20
|
||||||
```
|
```
|
||||||
|
|
||||||
Procure por:
|
Procure por:
|
||||||
|
|||||||
@@ -112,7 +112,7 @@
|
|||||||
|
|
||||||
### Ver logs do servidor:
|
### Ver logs do servidor:
|
||||||
```bash
|
```bash
|
||||||
pm2 logs pointcontrol-api --lines 50
|
pm2 logs noidle-api --lines 50
|
||||||
```
|
```
|
||||||
|
|
||||||
Procure por:
|
Procure por:
|
||||||
@@ -122,7 +122,7 @@ Procure por:
|
|||||||
|
|
||||||
### Verificar dados no banco:
|
### Verificar dados no banco:
|
||||||
```bash
|
```bash
|
||||||
cd /var/www/pointcontrol/backend
|
cd /var/www/noidle/backend
|
||||||
node check_device_status.js DESKTOP-BC16GDH
|
node check_device_status.js DESKTOP-BC16GDH
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|||||||
@@ -295,7 +295,7 @@ pyinstaller --onefile --windowed --name NoIdle CLIENTE_CORRIGIDO.py
|
|||||||
### Criar Tabelas MDM
|
### Criar Tabelas MDM
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
cd /var/www/pointcontrol/backend
|
cd /var/www/noidle/backend
|
||||||
psql $DATABASE_URL -f create_mdm_tables.sql
|
psql $DATABASE_URL -f create_mdm_tables.sql
|
||||||
```
|
```
|
||||||
|
|
||||||
@@ -423,13 +423,13 @@ curl -X POST http://localhost:3005/api/mdm/commands/poll \
|
|||||||
### 1. Backend
|
### 1. Backend
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
cd /var/www/pointcontrol/backend
|
cd /var/www/noidle/backend
|
||||||
|
|
||||||
# Criar tabelas MDM
|
# Criar tabelas MDM
|
||||||
psql $DATABASE_URL -f create_mdm_tables.sql
|
psql $DATABASE_URL -f create_mdm_tables.sql
|
||||||
|
|
||||||
# Reiniciar API
|
# Reiniciar API
|
||||||
pm2 restart pointcontrol-api
|
pm2 restart noidle-api
|
||||||
```
|
```
|
||||||
|
|
||||||
### 2. Cliente
|
### 2. Cliente
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"name": "pointcontrol-api",
|
"name": "noidle-api",
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"main": "server.js",
|
"main": "server.js",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
|||||||
@@ -129,65 +129,49 @@ router.get('/', authenticateToken, async (req, res) => {
|
|||||||
// GET /api/dashboard/stats - Estatísticas expandidas para o novo dashboard
|
// GET /api/dashboard/stats - Estatísticas expandidas para o novo dashboard
|
||||||
router.get('/stats', async (req, res) => {
|
router.get('/stats', async (req, res) => {
|
||||||
try {
|
try {
|
||||||
// Estatísticas principais
|
// Estatísticas básicas (simplificadas para funcionar sempre)
|
||||||
const mainStats = await query(`
|
const usersCount = await query(`SELECT COUNT(*)::int as count FROM users`);
|
||||||
SELECT
|
const devicesCount = await query(`SELECT COUNT(*)::int as count FROM devices`);
|
||||||
(SELECT COUNT(*) FROM users) as users,
|
const activitiesCount = await query(`SELECT COUNT(*)::int as count FROM activities WHERE created_at::date = CURRENT_DATE`);
|
||||||
(SELECT COUNT(*) FROM teams) as teams,
|
const devicesOnline = await query(`SELECT COUNT(*)::int as count FROM devices WHERE is_active = true`);
|
||||||
(SELECT COUNT(*) FROM devices) as devices,
|
|
||||||
(SELECT COUNT(*) FROM policies WHERE enabled = true) as policies,
|
|
||||||
(SELECT COUNT(*) FROM activities WHERE DATE(created_at) = CURRENT_DATE) as activities_today,
|
|
||||||
(SELECT COUNT(*) FROM devices WHERE status = 'online') as devices_online,
|
|
||||||
(SELECT COUNT(*) FROM devices WHERE status = 'offline') as devices_offline,
|
|
||||||
(SELECT COUNT(*) FROM policy_commands WHERE status IN ('pending', 'sent')) as pending_commands
|
|
||||||
`);
|
|
||||||
|
|
||||||
// Alertas e notificações
|
// Times (pode não existir)
|
||||||
const alerts = await query(`
|
let teamsCount = { rows: [{ count: 0 }] };
|
||||||
SELECT
|
try {
|
||||||
(SELECT COUNT(*) FROM devices
|
teamsCount = await query(`SELECT COUNT(*)::int as count FROM teams`);
|
||||||
WHERE last_seen < NOW() - INTERVAL '7 days' OR last_seen IS NULL) as devices_offline_7days,
|
} catch (e) {
|
||||||
|
// Tabela teams pode não existir
|
||||||
(SELECT COUNT(*) FROM devices d
|
}
|
||||||
LEFT JOIN activities a ON d.device_id = a.device_id
|
|
||||||
WHERE a.created_at IS NULL OR a.created_at < NOW() - INTERVAL '24 hours') as devices_no_activity_24h,
|
|
||||||
|
|
||||||
(SELECT COUNT(*) FROM policy_executions
|
|
||||||
WHERE status = 'failed'
|
|
||||||
AND executed_at > NOW() - INTERVAL '24 hours') as failed_policies_24h,
|
|
||||||
|
|
||||||
(SELECT COUNT(*) FROM devices
|
|
||||||
WHERE device_info->>'needs_update' = 'true') as devices_need_update,
|
|
||||||
|
|
||||||
(SELECT COUNT(*) FROM devices
|
|
||||||
WHERE (device_info->>'disk_free_gb')::int < 10) as low_disk_space,
|
|
||||||
|
|
||||||
(SELECT COUNT(*) FROM users
|
|
||||||
WHERE last_login < NOW() - INTERVAL '30 days' OR last_login IS NULL) as inactive_users
|
|
||||||
`);
|
|
||||||
|
|
||||||
const stats = mainStats.rows[0];
|
// Dados MDM (podem não existir)
|
||||||
const alertsData = alerts.rows[0];
|
let policiesCount = { rows: [{ count: 0 }] };
|
||||||
|
let pendingCommands = { rows: [{ count: 0 }] };
|
||||||
|
try {
|
||||||
|
policiesCount = await query(`SELECT COUNT(*)::int as count FROM policies WHERE enabled = true`);
|
||||||
|
pendingCommands = await query(`SELECT COUNT(*)::int as count FROM policy_commands WHERE status IN ('pending', 'sent')`);
|
||||||
|
} catch (e) {
|
||||||
|
// Tabelas MDM não existem ainda
|
||||||
|
}
|
||||||
|
|
||||||
res.json({
|
res.json({
|
||||||
success: true,
|
success: true,
|
||||||
stats: {
|
stats: {
|
||||||
users: parseInt(stats.users) || 0,
|
users: parseInt(usersCount.rows[0].count) || 0,
|
||||||
teams: parseInt(stats.teams) || 0,
|
teams: parseInt(teamsCount.rows[0].count) || 0,
|
||||||
devices: parseInt(stats.devices) || 0,
|
devices: parseInt(devicesCount.rows[0].count) || 0,
|
||||||
policies: parseInt(stats.policies) || 0,
|
policies: parseInt(policiesCount.rows[0].count) || 0,
|
||||||
activities_today: parseInt(stats.activities_today) || 0,
|
activities_today: parseInt(activitiesCount.rows[0].count) || 0,
|
||||||
devices_online: parseInt(stats.devices_online) || 0,
|
devices_online: parseInt(devicesOnline.rows[0].count) || 0,
|
||||||
devices_offline: parseInt(stats.devices_offline) || 0,
|
devices_offline: parseInt(devicesCount.rows[0].count) - parseInt(devicesOnline.rows[0].count) || 0,
|
||||||
pending_commands: parseInt(stats.pending_commands) || 0
|
pending_commands: parseInt(pendingCommands.rows[0].count) || 0
|
||||||
},
|
},
|
||||||
alerts: {
|
alerts: {
|
||||||
devices_offline_7days: parseInt(alertsData.devices_offline_7days) || 0,
|
devices_offline_7days: 0, // TODO: implementar
|
||||||
devices_no_activity_24h: parseInt(alertsData.devices_no_activity_24h) || 0,
|
devices_no_activity_24h: 0, // TODO: implementar
|
||||||
failed_policies_24h: parseInt(alertsData.failed_policies_24h) || 0,
|
failed_policies_24h: 0, // TODO: implementar
|
||||||
devices_need_update: parseInt(alertsData.devices_need_update) || 0,
|
devices_need_update: 0, // TODO: implementar
|
||||||
low_disk_space: parseInt(alertsData.low_disk_space) || 0,
|
low_disk_space: 0, // TODO: implementar
|
||||||
inactive_users: parseInt(alertsData.inactive_users) || 0
|
inactive_users: 0 // TODO: implementar
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ const corsOptions = {
|
|||||||
// Lista de origens permitidas
|
// Lista de origens permitidas
|
||||||
const allowedOrigins = [
|
const allowedOrigins = [
|
||||||
'https://admin.noidle.tech',
|
'https://admin.noidle.tech',
|
||||||
'https://admin.pointcontrol.co',
|
'https://admin.noidle.co',
|
||||||
'http://localhost:3000',
|
'http://localhost:3000',
|
||||||
'http://localhost:3001'
|
'http://localhost:3001'
|
||||||
];
|
];
|
||||||
@@ -81,6 +81,6 @@ app.use((err, req, res, next) => {
|
|||||||
const PORT = process.env.PORT || 3005;
|
const PORT = process.env.PORT || 3005;
|
||||||
|
|
||||||
app.listen(PORT, () => {
|
app.listen(PORT, () => {
|
||||||
console.log(`✅ PointControl API rodando na porta ${PORT}`);
|
console.log(`✅ NoIdle API rodando na porta ${PORT}`);
|
||||||
console.log(`📅 ${new Date().toISOString()}`);
|
console.log(`📅 ${new Date().toISOString()}`);
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user