--- type: Entity layer: wiki tags: [stack, dashdescomplicar, backend, integracao, beszel, monitorizacao] title: "Integracao-Beszel" --- # Integracao-Beszel Integração com Beszel Hub (PocketBase API) para monitorização de frota de sistemas. Recolhe métricas de CPU, RAM, disco, containers e uptime de múltiplos hosts. ## Responsabilidades - **Auth**: Autenticação PocketBase (token JWT com cache) - **Fleet Collection**: Recolher métricas de todos os sistemas Beszel - **Storage**: Guardar métricas em `tbl_eal_monitoring` (MySQL) - **Dashboard**: Agregar total/up/down por sistema ## Stack - **API**: PocketBase (`descomplicar-beszel.i7zsqo.easypanel.host`) - **Auth**: Email + password → JWT token (cache em memória) - **Validação**: Zod 4.3 (`BeszelSystemInfo`, `BeszelSystem`, `BeszelListResponse`) - **DB**: MySQL via `db.ts` ## Rotas | Método | Rota | Função | |---|---|---| | `GET` | `/api/beszel` | Fleet data do MySQL | | `POST` | `/api/beszel/collect` | Trigger fresh collection | ## Sistemas Ignorados - `black`, `hp`, `kriku` — Tor exit nodes que duplicam máquinas reais ## Tipos de Dados - `FleetSummary`: total, up, down, systems[] - `FleetSystem`: name, host, status, cpu, mem, disk, containers, load, uptime ## Localizações - **Código**: `api/services/beszel.ts` (249 linhas), `api/routes/beszel.ts` (37 linhas) - **DB**: `tbl_eal_monitoring` (category=beszel) ## Dependências - **Beszel Hub**: PocketBase API (`BESZEL_URL`, `BESZEL_EMAIL`, `BESZEL_PASSWORD`) - **MySQL-Pool**: Armazenamento de métricas ## Fornece a - **Painel-Monitor**: Dados de fleet exibidos na secção "Frota Beszel" - **Express-API**: Rota `/api/beszel`