Beszel Docker Compose es la solución definitiva para monitorizar servidores y contenedores Docker con un consumo mínimo de recursos. En esta guía completa de Beszel Docker Compose, aprenderás a desplegar esta plataforma de manera profesional, configurar alertas avanzadas, y vigilar tus sistemas críticos 24/7 consumiendo solo 25-35 MiB de RAM, hasta 5 veces menos que alternativas populares como Grafana o Uptime Kuma.
¿Qué es Beszel?
Beszel es una plataforma de monitorización de servidores ligera y moderna que incluye estadísticas Docker, datos históricos y sistema de alertas. A diferencia de soluciones tradicionales que requieren múltiples contenedores y configuraciones complejas, Beszel Docker Compose ofrece todo en una arquitectura simple de hub-agent.
Con más de 19,000 estrellas en GitHub y una comunidad activa en 2026, Beszel se ha convertido en la alternativa preferida para homelabs y entornos de producción que necesitan monitorización sin sacrificar recursos del sistema.
Características principales
- Ultra ligero: Consume 25-35 MiB de RAM (vs 150 MiB de Uptime Kuma)
- Monitorización Docker: Estadísticas de CPU, memoria y red por contenedor
- Datos históricos: Gráficas de rendimiento con retención configurable
- Sistema de alertas: Notificaciones para CPU, memoria, disco, temperatura y estado
- Multi-usuario: Gestión de permisos y equipos integrada
- GPU support: Compatible con Nvidia, AMD e Intel
- OAuth/OIDC: Autenticación con proveedores externos
- Backups automáticos: S3 o almacenamiento local
Arquitectura de Beszel Docker Compose
La arquitectura de Beszel Docker Compose se basa en dos componentes principales que trabajan en conjunto para proporcionar monitorización completa:
Hub (Centro de Control)
El Hub es la aplicación web central construida sobre PocketBase que:
- Recopila métricas de todos los agentes
- Almacena datos históricos en SQLite
- Genera dashboards y gráficas en tiempo real
- Gestiona usuarios, equipos y permisos
- Procesa y envía alertas configuradas
Agent (Agente de Monitorización)
El agente es un binario ligero que se instala en cada servidor monitorizados y:
- Recopila métricas del sistema operativo
- Captura estadísticas de contenedores Docker/Podman
- Monitoriza discos, red, CPU, memoria y temperatura
- Envía datos al Hub de forma segura
- Consume recursos mínimos del sistema
Requisitos Previos para Beszel Docker Compose
Antes de instalar Beszel Docker Compose, asegúrate de cumplir con estos requisitos mínimos:
Software necesario
- Docker: Versión 20.10 o superior
- Docker Compose: Versión 2.0 o superior
- Sistema operativo: Linux, FreeBSD, macOS o Windows
Hardware mínimo
- CPU: 1 núcleo (suficiente para hub + agent)
- RAM: 512 MB (hub: 200 MB, agent: 25-35 MB)
- Disco: 500 MB para datos históricos
- Red: Conectividad entre hub y agents
Estos requisitos hacen que Beszel Docker Compose sea ideal incluso para Raspberry Pi y VPS de bajo costo.
Instalar Beszel Docker Compose Paso a Paso
La instalación de Beszel Docker Compose se divide en dos fases: desplegar el Hub central y configurar los agentes en cada servidor.
Paso 1: Desplegar el Hub de Beszel
Crea un directorio para el proyecto y el archivo docker-compose.yml del Hub:
mkdir -p ~/beszel
cd ~/beszel
cat << 'EOF' > docker-compose.yml
version: '3.8'
services:
beszel:
image: henrygd/beszel:latest
container_name: beszel-hub
restart: unless-stopped
ports:
- "8090:8090"
volumes:
- ./beszel_data:/beszel_data
environment:
# Opcional: configurar zona horaria
- TZ=Europe/Madrid
EOF
Inicia el Hub:
docker compose up -d
Accede a la interfaz web en http://tu-servidor:8090 y crea tu cuenta de administrador.
Paso 2: Configurar Agente en el Mismo Servidor
Para monitorizar el mismo servidor donde corre el Hub, añade el servicio del agente al docker-compose.yml:
cat << 'EOF' >> docker-compose.yml
beszel-agent:
image: henrygd/beszel-agent:latest
container_name: beszel-agent
restart: unless-stopped
network_mode: host
volumes:
- ./beszel_agent_data:/var/lib/beszel-agent
- /var/run/docker.sock:/var/run/docker.sock:ro
environment:
LISTEN: "45876"
KEY: "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIExamplePublicKey"
HUB_URL: "http://localhost:8090"
TOKEN: "your-universal-token-here"
EOF
Importante: Desde el Hub web, ve a Settings → Add System para obtener tu KEY y TOKEN únicos.
Paso 3: Configurar Agente en Servidor Remoto
Para monitorizar servidores adicionales con Beszel Docker Compose, crea un docker-compose.yml en cada servidor remoto:
# En el servidor remoto
mkdir -p ~/beszel-agent
cd ~/beszel-agent
cat << 'EOF' > docker-compose.yml
version: '3.8'
services:
beszel-agent:
image: henrygd/beszel-agent:latest
container_name: beszel-agent
restart: unless-stopped
network_mode: host
volumes:
- ./agent_data:/var/lib/beszel-agent
- /var/run/docker.sock:/var/run/docker.sock:ro
environment:
LISTEN: "45876"
KEY: "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIExamplePublicKey"
HUB_URL: "http://IP-DEL-HUB:8090"
TOKEN: "your-universal-token-here"
EOF
docker compose up -d
El agente aparecerá automáticamente en el dashboard del Hub tras unos segundos.
Configurar Beszel Docker Compose con Reverse Proxy
Para exponer Beszel Docker Compose de forma segura con SSL, integra Caddy o Nginx Proxy Manager.
Integración con Caddy
Modifica tu docker-compose.yml para incluir Caddy:
version: '3.8'
services:
beszel:
image: henrygd/beszel:latest
container_name: beszel-hub
restart: unless-stopped
expose:
- "8090"
volumes:
- ./beszel_data:/beszel_data
networks:
- beszel-net
caddy:
image: caddy:2-alpine
container_name: beszel-caddy
restart: unless-stopped
ports:
- "80:80"
- "443:443"
volumes:
- ./Caddyfile:/etc/caddy/Caddyfile
- caddy_data:/data
- caddy_config:/config
networks:
- beszel-net
networks:
beszel-net:
driver: bridge
volumes:
caddy_data:
caddy_config:
Crea el Caddyfile:
cat << 'EOF' > Caddyfile
beszel.tudominio.com {
reverse_proxy beszel:8090
}
EOF
Caddy gestionará automáticamente los certificados SSL de Let’s Encrypt para tu instalación de Beszel Docker Compose.
Gestión Avanzada con Beszel Docker Compose
Configurar Alertas Personalizadas
Desde el Hub web, configura alertas para recibir notificaciones cuando se superen umbrales:
- Ve a Settings → Alerts
- Configura webhooks (Discord, Slack, Telegram, Gotify)
- Define umbrales por sistema: CPU >80%, RAM >90%, Disco >85%
- Establece períodos de cooldown para evitar spam
Monitorización de GPU
Beszel soporta monitorización de GPU Nvidia, AMD e Intel. Para habilitar soporte Nvidia en tu stack de Beszel Docker Compose, modifica el agente:
services:
beszel-agent:
image: henrygd/beszel-agent:latest
# ...
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: all
capabilities: [gpu]
environment:
NVIDIA_VISIBLE_DEVICES: all
Backups Automáticos
Configura backups a S3 desde el Hub web:
- Ve a Settings → Backups
- Configura endpoint S3 (AWS, Backblaze, MinIO)
- Define frecuencia (diaria, semanal)
- Establece retención de backups
Optimización y Best Practices
Seguridad
- Deshabilita autenticación por contraseña: Usa OAuth exclusivamente en producción
- Tokens únicos: Genera un token diferente por servidor
- Firewall: Restringe puerto 45876 del agente a IPs del Hub
- Docker socket read-only: Monta siempre
/var/run/docker.sock:ro - HTTPS obligatorio: Nunca expongas el Hub sin SSL en producción
Rendimiento
- Ajusta retención de datos: Reduce históricos si el Hub se ralentiza
- Limita contenedores monitorizados: Excluye contenedores temporales con labels
- Usa Unix socket: Para agente local, usa socket en lugar de localhost
- Recursos del Hub: Asigna 512 MB RAM mínimo para >50 sistemas
Mantenimiento
Script para actualizar automáticamente Beszel Docker Compose:
#!/bin/bash
cd ~/beszel
docker compose pull
docker compose up -d --force-recreate
docker image prune -f
Programa este script semanalmente con cron para mantener Beszel actualizado.
Troubleshooting Beszel Docker Compose
Agente no aparece en el Hub
Síntoma: El agente está corriendo pero no envía datos al Hub.
Solución:
# Verifica logs del agente
docker logs beszel-agent
# Verifica conectividad al Hub
docker exec beszel-agent curl -v http://IP-HUB:8090
# Valida KEY y TOKEN correctos
docker exec beszel-agent env | grep -E '(KEY|TOKEN)'
Estadísticas Docker no aparecen
Síntoma: Métricas del sistema funcionan pero contenedores no se muestran.
Solución: Verifica que el socket Docker esté montado correctamente:
docker exec beszel-agent ls -l /var/run/docker.sock
# Debe mostrar: srw-rw---- 1 root docker
Error «Permission denied» en Docker socket
Síntoma: Got permission denied while trying to connect to the Docker daemon socket
Solución: Añade el usuario del contenedor al grupo docker del host:
# Opción 1: Cambiar permisos del socket (no recomendado)
sudo chmod 666 /var/run/docker.sock
# Opción 2: Ejecutar agente con usuario root (en environment)
user: "0:0"
Alto consumo de CPU del Hub
Síntoma: El Hub consume >20% CPU constantemente.
Solución: Reduce la frecuencia de actualización o limita históricos:
- Ve a Settings → Systems
- Aumenta intervalo de actualización de 5s a 15s
- Reduce retención de datos históricos
Comparación: Beszel vs Uptime Kuma vs Grafana
¿Cuándo usar cada herramienta?
| Característica | Beszel | Uptime Kuma | Grafana |
|---|---|---|---|
| Consumo RAM | 25-35 MiB | 150 MiB | 400+ MiB |
| Estadísticas Docker | ✅ Nativo | ❌ No | ✅ Con Prometheus |
| Recursos sistema | ✅ Sí | ❌ No | ✅ Sí |
| Monitoreo uptime | ✅ Básico | ✅ Avanzado | ✅ Con exporters |
| Configuración | Simple | Simple | Compleja |
| Multi-servidor | ✅ Hub-agent | ❌ Instancias separadas | ✅ Con agentes |
Recomendación: Usa Beszel Docker Compose para monitorización de recursos y Docker stats, y complementa con Uptime Kuma para checks de disponibilidad HTTP/TCP externos.
Conclusión
Beszel Docker Compose representa un equilibrio perfecto entre funcionalidad y eficiencia de recursos. Con solo 25 MiB de RAM, obtienes monitorización completa de sistemas, contenedores Docker, alertas configurables y dashboards históricos que competirían con soluciones empresariales.
Su arquitectura hub-agent facilita escalar desde un único servidor hasta cientos de sistemas distribuidos, mientras que su integración nativa con Docker elimina configuraciones complejas de exporters y colectores.
Si buscas una alternativa ligera a Grafana+Prometheus o necesitas complementar Uptime Kuma con métricas de recursos, Beszel Docker Compose es la elección correcta para tu homelab o infraestructura de producción.
FAQ sobre Beszel Docker Compose
¿Cuántos recursos necesita Beszel Docker Compose?
El Hub consume aproximadamente 200 MiB de RAM y cada agente solo 25-35 MiB. Puedes ejecutar Beszel Docker Compose en un Raspberry Pi o VPS con 512 MB de RAM sin problemas. Es ideal para entornos con recursos limitados.
¿Puedo usar Beszel Docker Compose en producción?
Sí, Beszel Docker Compose es estable para producción siempre que configures autenticación OAuth, SSL con reverse proxy, y backups automáticos. Muchas empresas lo usan para monitorizar flotas de servidores por su bajo overhead.
¿Cómo actualizo Beszel Docker Compose?
Ejecuta docker compose pull && docker compose up -d --force-recreate en el directorio del Hub y en cada servidor con agente. Los datos históricos se preservan automáticamente en los volúmenes.
¿Beszel soporta Podman?
Sí, Beszel es compatible con Podman. Monta el socket de Podman en /var/run/podman/podman.sock en lugar del socket de Docker. Las estadísticas de contenedores funcionan idénticamente con Beszel Docker Compose.
¿Qué diferencia hay entre Beszel y Netdata?
Netdata ofrece más métricas detalladas pero consume significativamente más recursos (200+ MiB por agente). Beszel Docker Compose es más minimalista y centralizado con su arquitectura hub-agent, ideal para gestionar múltiples servidores desde un único dashboard.
Recursos Adicionales
- GitHub oficial de Beszel – Repositorio principal con 19K+ stars
- Documentación oficial – Guías completas y referencia API
- Docker Hub – Beszel Hub
- Docker Hub – Beszel Agent
- Comunidad Matrix – Soporte y discusiones
- Más tutoriales Docker Compose – Artículos relacionados
- Uptime Kuma Docker Compose – Complementa con monitoring de uptime
