Beszel
Beszel is a lightweight server monitoring platform that includes Docker statistics, historical data, and alert functions.
It has a friendly web interface, simple configuration, and is ready to use out of the box. It supports automatic backup, multi-user, OAuth authentication, and API access.
Web UI / Server
https://github.com/trentnbauer/agg/blob/main/docker-compose/beszel.yml
version: '3.8'
services:
app:
image: ghcr.io/henrygd/beszel/beszel:0.11.1@sha256:b060dd22f29958d1075def8c1c710a5ec208911aebe3b85b21dde361de8b8b14
restart: unless-stopped
networks:
- cloudflare-net
ports:
- ${PORT:-8090}:8090
volumes:
- data:/beszel_data
- ./beszel_socket:/beszel_socket
logging:
driver: "json-file"
options:
max-size: "10m"
max-file: "3"
environment:
#- BESZEL_HUB_DISABLE_PASSWORD_AUTH=true
- BESZEL_HUB_USER_CREATION=true
healthcheck:
test: ['CMD', '/beszel', 'health', '--url', 'http://localhost:8090']
start_period: 30s
interval: 120s
labels:
- autoheal=true
- dockflare.enable=${CFTUNNEL:-true}
- dockflare.0.hostname=${CFSUBDOMAIN}${CFDOMAIN}
- dockflare.0.service=http://${HOSTNAME}:${PORT:-8090}
- dockflare.0.access.policy=${CFPOLICY:-default_tld}
- dockflare.0.zonename=${CFDOMAIN}
- dockflare.0.path=${CFURLPATH:-}
volumes:
data:
networks:
cloudflare-net:
name: cloudflare-net
external: true
Agent
This agent is deployed to all hosts via the 'all' Portainer Stack
Agent with GPU monitoring (Nvidia)
https://github.com/trentnbauer/agg/blob/main/docker-compose/beszel-agent-gpu.yml
services:
app:
image: ghcr.io/arunoruto/beszel-agent:v0.11.1@sha256:f1d36b3c0bd5cac73432ce1b31ebf0c3fc4baa8caa94a5025fa0e4d24c97a943
restart: unless-stopped
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: all
capabilities:
- utility
network_mode: host
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
environment:
LOG_LEVEL: info
PORT: ${PORT:-45876}
GPU: true
KEY: $BESZELKEY
healthcheck:
test: ['CMD', '/agent', 'health'] # Run the health command
start_period: 5s # Check 5 seconds after the container starts
interval: 120s # Then check every 120 seconds after that
labels:
- autoheal=true
Last updated
Was this helpful?