Monitoring, checked 2026-10-17

Beszel: Docker configuration reference

Lightweight self-hosted server monitoring hub with a Go agent reporting CPU, memory, disk and container stats.

At a glance

Ports

Ports
PortWhat listensSource
8090HTTP listener for the hub web UI. Point the reverse proxy here.source for port 8090
45876 (beszel-agent)Default agent LISTEN port, used when the hub connects to the agent over SSH. Not needed when the agent connects out to the hub by WebSocket with HUB_URL and TOKEN.source for port 45876

Environment variables

Environment variables
VariableRequiredWhat it doesExampleSource
APP_URLNoPublic URL of the hub, used in notification and agent-config links. Required if the hub is served at a sub-path.https://beszel.example.comsource for APP_URL
TOKENYesWebSocket registration token provided by the hub. The agent uses it with HUB_URL to connect to the hub.generated from the hub's Add System dialogsource for TOKEN
KEYYesPublic SSH key(s) the agent accepts for hub authentication. Provided by the hub when adding a system.public key from the hubsource for KEY
CA_CERT_FILENoPath to a PEM CA certificate. Since 0.19.0 agents verify the hub's HTTPS certificate, so a self-signed or private CA needs to be supplied here or the connection is rejected./certs/ca.pemsource for CA_CERT_FILE
TRUSTED_AUTH_HEADERNoHeader name trusted for forwarded authentication, e.g. behind Cloudflare Access. Bypasses built-in login, so set it only if the gate is enforced; restrict it with TRUSTED_PROXY_IPS (0.20.0).Cf-Access-Authenticated-User-Emailsource for TRUSTED_AUTH_HEADER

Volumes that must persist

Volumes
PathWhat is in itSource
/beszel_dataHub database: users, systems, alerts and history.source for /beszel_data
/var/lib/beszel-agent (beszel-agent)Agent-side state.source for /var/lib/beszel-agent

Behind a reverse proxy

What it needs alongside it

Dependencies
DependencyWhySource
None; agent connects over a unix socket or the hub's websocketThe hub embeds its own SQLite-backed PocketBase database, and the local agent example connects over a shared unix socket volume rather than a network port.source for None; agent connects over a unix socket or the hub's websocket

Release timeline

Releases
VersionDateBreakingWhat changedSource
v0.21.02026-10-02NoAdds pending package update lists, Wi-Fi signal monitoring, TLS certificate expiry checks for HTTPS monitors and a SYNC_SYSTEM_NAMES variable.source for release v0.21.0
v0.20.02026-09-19NoAdds network monitoring from agents, btrfs pool reporting, container image update flags and a TRUSTED_PROXY_IPS allowlist for TRUSTED_AUTH_HEADER.source for release v0.20.0
v0.19.02026-09-03YesAgents now verify the hub's HTTPS certificate; a self-signed or private CA needs CA_CERT_FILE set or the connection is rejected.source for release v0.19.0
v0.18.82026-08-17NoAdds multi-battery monitoring, Linux fan RPM monitoring and Intel Arc GPU monitoring through nvtop.source for release v0.18.8
v0.18.72026-04-05NoAdds more disk I/O metrics and the ability to copy alerts between systems.source for release v0.18.7
v0.18.62026-03-29NoFixes a partition-discovery regression on Docker and a chart display bug.source for release v0.18.6

If it is not coming up

Read from the upstream documentation, repository and container registry by Keita Emsden on 2026-10-17. Every row links the page it came from. Upstream changes without telling anyone, so check the source link before you rely on a value.

Other app references

All app references