Dashboard web para monitorizar servidores Linux por SSH, con persistencia en MongoDB para hosts e historico de metricas.
- Persistencia en MongoDB:
- Hosts guardados en base de datos
- Historico CPU/RAM por host guardado en base de datos
- Conexion SSH por host:
- Password
- SSH key (passphrase opcional)
- Home (resumen global):
- Total hosts
- Online
- CPU media
- RAM media
- Tabla por host (uptime, containers, ultima lectura)
- Vista por host:
- Recursos en circulos (CPU, RAM, uptime, ratio containers)
- Historico CPU y RAM con graficas y rango seleccionable (
1h,6h,24h,7d,14d) - Tabla Docker con Start/Stop/Logs
- Autorefresco silencioso cada 30s
- Cambio de host refresca automaticamente
- CPU corregida:
- Calculada con 2 lecturas de
/proc/statseparadas por 1s
- Calculada con 2 lecturas de
GET /api/hostsPOST /api/hostsDELETE /api/hosts/:idGET /api/home/summaryGET /api/hosts/:id/detailGET /api/hosts/:id/history?range=1h|6h|24h|7d|14d&limit=240POST /api/hosts/:id/fetchPOST /api/hosts/:id/containers/actionPOST /api/hosts/:id/containers/logs
- SSH accesible
- Comandos base:
free,cat - Docker instalado para funciones de contenedores
- Usuario SSH con permisos para
docker ps -a,docker start,docker stop
docker compose up --build -dAbrir:
http://localhost:8080- o
http://IP_DE_TU_SERVIDOR:8080
Se cargan en este orden:
.env.env.local(sobrescribe.env)
Variables requeridas:
MONGODB_URICREDENTIALS_ENCRYPTION_KEY(clave usada para cifrar/descifrar credenciales SSH con AES-256-GCM)
Para preparar entorno local:
cp .env.example .env.localEjemplo para generar una clave robusta:
openssl rand -base64 32Necesitas MongoDB corriendo y exportar MONGODB_URI.
export MONGODB_URI="mongodb://127.0.0.1:27017/dashboard_monitor"
npm i
npm start- Las credenciales SSH (
password,privateKey,passphrase) se guardan cifradas en MongoDB con AES-256-GCM. - No subas
.envni.env.locala GitHub (ya estan en.gitignore). - Para produccion: cifrar secretos, RBAC, auditoria y HTTPS.