Substitui navegacao por header/menu mobile por sidebar lateral colapsavel
com toggle, persistencia localStorage e responsividade automatica.
- Novo componente Layout.tsx com sidebar, tooltips e overlay mobile
- Estado colapsado persistido em localStorage (desktop)
- Colapsada por defeito em mobile com drawer animado
- Animacoes suaves via framer-motion (spring)
- Removida navegacao duplicada de App.tsx, Monitor.tsx e Financial.tsx
- Rotas envolvidas pelo Layout via React Router Outlet
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Hierarchical layout: cluster overview, VM grid (2x2), detail categories
- VM cards for Server/Easy/Dev/Gateway with CPU/RAM/Disk metrics
- WP Updates per-site detail from descomplicar-monitor plugin
- ProgressBar with inverted prop for container health
- Mock data reflecting real cluster infrastructure
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>
New backup_manager2 monitoring added to collect-backups.sh on CWP server.
Dashboard backups section now shows 5 items instead of 4.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Nixpacks was auto-detecting Vite and using 'npx serve dist' which only
serves the frontend. The API server handles both API routes and SPA fallback.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Remove PieChart (caused empty space above legend)
- Show clean category list with colored dots directly
- Add total sum row at bottom with separator line
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Reduce pie chart height from 240px to 180px (less empty space)
- Increase legend text from text-xs to text-sm
- Larger color dots (w-3 h-3) and more spacing between items
- Bold values with tabular-nums for alignment
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- New /financial page with sales/expenses cards, monthly bar chart and
expense distribution pie chart (Recharts)
- New API endpoint GET /api/financial with queries on tblinvoices and
tblexpenses
- Compact services grid (2-col dots layout) in Monitor page
- Add Syncthing to critical services monitoring
- Add Financeiro nav link to Dashboard, Monitor and Financial headers
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Replace sshpass with ssh2 Node.js library for reliable SSH connections.
Add all 6 servers (CWP, EasyPanel, MCP Hub, Meet, WhatsApp, WhatSMS).
Add 5-minute auto-collection scheduler in production mode.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Renomear "Plan EAL" para "Dashboard Descomplicar" (header + footer)
- Adicionar menu hamburger mobile com navegacao Dashboard/Monitor
- Excluir leads com lembrete futuro da seccao "Contactar" (NOT EXISTS tblreminders)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Added static file serving in Express for production
- Added SPA fallback for client-side routing
- Created Dockerfile with NODE_ENV=production
- Frontend now properly served at dash.descomplicar.pt
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Changed fetch URL from /api/monitor.php to /api/monitor
- Updated MonitorData interface to match API response structure
- Fixed stats calculation (MySQL returning strings instead of numbers)
- Updated mock data with realistic values from production DB
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Change build script to compile API TypeScript to api/dist/
- Update start script to use compiled JS
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add POST /api/wp-monitor endpoint for WP plugin data
- Add GET /api/wp-monitor for listing monitored sites
- Add checkSiteAvailability() function for HTTP health checks
- Add checkAllSitesAvailability() for batch checking
- Add /api/scripts/check-sites.ts for cron execution
- Add POST /api/monitor/check-sites for manual trigger
DeskCRM Task: #1556
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Adiciona dotenv para carregar variáveis de ambiente
- Configura DB_HOST para servidor remoto (176.9.3.158)
- Cria endpoint /api/diagnostic para testes
- Actualiza título: "Plan EAL" → "Dashboard Descomplicar"
- Adiciona tsconfig.json para pasta /api
- Fix: Carrega .env antes de inicializar MySQL pool
Tarefa: #1556
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
- React Router para SPA routing
- Página /monitor com status de sistemas
- Cards de servidores, serviços, sites, containers
- Barras de progresso animadas
- Auto-refresh de 60s
- Link no header do dashboard
DeskCRM Task: #1604
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>