The checkAllSitesAvailability() function did HEAD requests from EasyPanel to check sites. Many WordPress sites block HEAD or return errors, causing all sites to show as DOWN while keeping valid response times from the CWP collector. The CWP collector (collect-sites.sh) is the single source of truth for site status. Removed: - checkSiteAvailability() and checkAllSitesAvailability() from monitoring service - POST /api/monitor/check-sites endpoint - api/scripts/check-sites.ts cron script Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Dashboard Descomplicar API
API Node.js/Express com queries diretas à BD Desk CRM.
Estrutura
api/
├── server.ts # Express server
├── db.ts # MySQL connection pool
├── services/
│ ├── calendar.ts # Google Calendar API
│ ├── dashboard.ts # Dashboard queries
│ └── monitoring.ts # Monitoring queries
└── routes/
├── dashboard.ts # GET /api/dashboard
└── monitor.ts # GET /api/monitor
Endpoints
GET /api/dashboard
Retorna dados do dashboard principal:
- Tarefas (urgente, alta, vencidas, testes, semana)
- Tickets abertos
- Leads (contactar, followup, proposta)
- Projectos activos
- Timesheet semanal
- Billing 360
- Pipeline de vendas
- Eventos Google Calendar (hoje + semana)
GET /api/monitor
Retorna status de monitorização:
- Servidores (CPU, RAM, Disco)
- Serviços web
- Sites WordPress
- Containers Docker
GET /api/health
Health check endpoint
Setup
- Instalar dependências:
npm install
- Configurar .env:
cp .env.example .env
# Editar .env com credenciais correctas
- Desenvolvimento:
npm run dev # Vite + API (ambos)
npm run dev:api # API apenas
npm run dev:ui # Vite apenas
- Produção:
npm run build
npm start
Queries Migradas do PHP
Todas as queries do index.php e monitor.php foram migradas para TypeScript:
- ✅ Tasks (urgente, alta, vencidas, testes, semana, monday mood)
- ✅ Tickets
- ✅ Leads (contactar, followup, proposta)
- ✅ Projectos
- ✅ Timesheet semanal
- ✅ Billing 360
- ✅ Pipeline (leads, estimates, proposals)
- ✅ Google Calendar (eventos pessoais + profissionais)
- ✅ Monitorização (tbl_eal_monitoring)
BD Necessárias
ealmeida_desk24(BD principal Perfex CRM)- Tabelas Perfex:
tbltasks,tblleads,tblprojects,tbltickets, etc. - Tabelas custom:
billing_360_clients,billing_360_invoices,tbl_eal_monitoring
Google Calendar API
Credenciais OAuth2 configuradas em services/calendar.ts:
- Client ID
- Client Secret
- Refresh Token
Calendários:
primary- Eventos pessoaisemanuel@descomplicar.pt- Eventos profissionais