VPS 4: Implementación de un panel de estadísticas en tiempo real
Posted on January 31, 2025 • 2 minutes • 302 words • Other languages: English
Esta es la cuarta parte de mi VPS blog series .
Glances con Docker Compose
Es hora de implementar nuestro primer proyecto: un panel de estadísticas del servidor en tiempo real. Usaremos Glances , una herramienta liviana basada en Python.
- Crea un nuevo proyecto: Lo llamaremos
vps-stats
. De manera predeterminada, estará en unEntorno: Producción
- Añadir recurso: Elige Docker Compose
- Pegue el archivo glances YAML : Debe adaptarlo un poco para Coolify. Esta es la versión final en funcionamiento:
version: '3'
services:
monitoring:
image: nicolargo/glances:latest
restart: always
pid: host
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /etc/os-release:/etc/os-release:ro
environment:
- "GLANCES_OPT=-w"
- Configure el dominio y despliegue:
stats.yourdomain.com:61208
Una vez que esté activo, visite stats.yourdomain.com
para ver su panel de control
Protección con Caddy Basic Auth
¿Por qué?
- El panel de control expone métricas del servidor que podrían ser confidenciales, pero que no deberían ser públicas.
- Es un buen ejercicio.
Genera un hashed password
Caddy tiene un comando caddy hash-password
caddy hash-password
[-p, --plaintext <password>]
[-a, --algorithm <name>]
Si por alguna razón tienes Caddy instalado en tu máquina, puedes ejecutarlo allí. No tengo Caddy en la mía, pero el VPS tiene Docker instalado, así que podemos:
- Iniciar sesión en el VPS:
ssh user-with-sudo@yourdomain.com
- Poner en marcha un contenedor Docker:
sudo docker run --rm caddy caddy hash-password -p "yoursupersecretpassword"
- Copiar la salida del hash bcrypt (comienza con
$2b$
). - Cerrar sesión.
Agregue al servicio docker-compose.yml la etiqueta caddy
Ahora debería verse algo como esto:
version: '3'
services:
monitoring:
image: 'nicolargo/glances:latest'
restart: always
pid: host
volumes:
- '/var/run/docker.sock:/var/run/docker.sock'
- '/etc/os-release:/etc/os-release:ro'
environment:
- GLANCES_OPT=-w
labels:
- 'caddy_0.basicauth.0_YOURUSERHERE=YOURHASHEDPASSWORDHERE'
Reinicia el servicio y visita stats.yourdomain.com
. Ahora deberías ver un mensaje de autenticación.