← All templates · Analytics and monitoring
Deploy Beszel in one click
Lightweight server monitoring: CPU, memory, disk, network and Docker stats, with history and alerts
What is Beszel?
Beszel is a lightweight server monitoring platform in two parts: the hub, a web app built on PocketBase, which this template runs, and an agent on each machine you watch. Agents report CPU, memory, disk usage and I/O, network, load, temperatures, GPUs, S.M.A.R.T. health and systemd services, plus the CPU, memory and network of each Docker or Podman container. The hub draws their history and alerts you through Telegram, Discord, Slack, ntfy, email and other services when a system goes down or a value crosses its threshold.
People run Beszel to see every server, VPS and home lab box on one page without setting up Prometheus and Grafana. A hub at a public address suits agents behind a home router: an agent connects out to the hub over WebSocket with its token, so nothing has to be opened on the machine it watches. The hub’s first account is made from the fields, and an administrator can share systems with users who only read. The catch: history is kept for 30 days at most, and phone apps are third-party ones.
Hosting Beszel on Pethost
- You sign in to Pethost with a passkey, GitHub or Google. No machine yet? You pick a plan, and the link waits until it is ready.
- New project opens at Beszel. You fill in what it asks for and click Create project: Email, Admin password.
- In a minute or two Beszel is live at its own address with HTTPS. Its secrets are made at random, and its data is in the nightly backup.
- It is a project like any other: you or your agent can change it, roll it back or restore it.
Questions about Beszel
Is Beszel free?
Yes. Beszel is open source under the MIT license, and its maker says no feature will be put behind a paywall. There is no paid or hosted edition.
Do I need to open a port on the servers Beszel monitors?
No, when the agent connects to the hub over WebSocket: it only makes an outgoing connection, with its token. In the older SSH mode the hub connects to the agent on port 45876, which then has to be reachable.
How does Beszel monitor Docker containers?
The agent reads the Docker socket, which the docker-compose.yml from Add System mounts read-only, or a socket proxy named in DOCKER_HOST. It then charts each container’s CPU, memory and network.
Is Beszel a replacement for Prometheus and Grafana?
For keeping an eye on servers, yes: its maker built it to show CPU, memory and disk without setting up Prometheus and Grafana. Its charts are fixed and it keeps 30 days of history, so long-term custom dashboards remain Grafana’s job.
Is there a Beszel mobile app?
Not an official one. Third-party apps such as Beszel Companion for iOS and Beszel Mobile for Android and iOS connect to a hub, and the web page works in a phone’s browser.
How much memory and disk does Beszel need?
Beszel’s hub is very light: about 20 MB of memory, and it keeps at most 30 days of history per system, so its data stays small. On Pethost the Starter plan is enough for it, with room for other apps beside it.
Beszel Docker Compose file
The template is this compose.yaml and the variables written into the project’s .env as it is created. Pethost runs the file as it is written.
Containers: beszel (henrygd/beszel:0.21).
Volumes, in the nightly backup: data.
services:
beszel:
image: henrygd/beszel:0.21
restart: unless-stopped
environment:
APP_URL: ${URL}
# A new hub offers whoever opens it first to make the first account: this one is made from
# the fields before the hub answers, so nobody else can.
USER_EMAIL: ${ADMIN_EMAIL}
USER_PASSWORD: ${ADMIN_PASSWORD}
volumes:
- data:/beszel_data
volumes:
data:
More in Analytics and monitoring
- UmamiWeb analytics for your sites, without cookies
- Uptime KumaUptime monitoring with alerts and status pages
- KenerA status page with uptime monitors and incidents
- changedetection.ioWatches web pages and tells you when they change: prices, restocks, news
- CheckmateUptime, page speed and infrastructure monitoring, with status pages
- GotifyA push message server: scripts send over a REST API, and the web app and the Android app show it live