Guide

What Is Beszel? Features, Use Cases and How to Host It (2026)

12 min read
What Is Beszel? xCloud banner with a server monitoring card showing CPU, memory, disk, Docker and alerts
Summarize with:
Share:

What is Beszel? Beszel is a free, open source server monitoring tool where one central hub shows the CPU, memory, disk, network and container usage reported by a small agent on each machine you run. Think of it as a lighter answer to the classic metrics stack, built for people with a handful of servers rather than a platform team.

A server fills its disk on a Tuesday night, a database stops writing and nobody notices until a customer does. Uptime checks (covered in our guide on what is uptime) tell you a site is down. Resource monitoring tells you why it is about to go down.

This guide covers how Beszel works, its metrics and alerts, who it suits and how it compares with Netdata, Prometheus with Grafana and Uptime Kuma.

TL;DR: Beszel in 60 Seconds

Short on time? Here is the whole guide in a few lines:

  • Beszel is a lightweight, MIT-licensed monitoring platform with two parts: a hub (the dashboard, built on PocketBase) and an agent on every system you watch.
  • It tracks CPU, memory, disk, disk I/O, network, load, temperatures, GPUs, S.M.A.R.T. disk health and per-container usage.
  • Alerts go out by email or to services such as Discord, Slack, Telegram and ntfy.
  • Multi-user access with admin, user and read-only roles, plus OAuth and OIDC sign-in.
  • It is not an uptime checker or a full metrics platform. Pair it with Uptime Kuma, or use Prometheus with Grafana for custom metrics.

What Is Beszel?

Beszel is a self-hosted monitoring platform that collects resource metrics from your servers and containers and shows them, with history and alerts, in one web dashboard.

Think of Beszel like a building’s front desk with a wall of screens. Each room has a small sensor (the agent) that sends readings to the desk (the hub). One person can then watch every room without walking the halls.

A few things worth knowing:

  • Two pieces, installed separately. Nothing shows up in the hub until an agent reports in.
  • Free software. Beszel uses the MIT license, so there is no fee and no feature gate.
  • Built on PocketBase. User accounts, an admin panel, backups and an API come from that base.
  • It watches resources, not pages. Beszel can tell you a server is at 95% memory. It cannot tell you a checkout form is broken.
  • Still pre-1.0. The project ships often, so read the release notes before you upgrade.

Here is a quick reference, checked on November 1, 2026:

Item Detail
License MIT
Language Go (hub and agent), with a web interface
Backend PocketBase
First public release July 2024
Latest release v0.21.1 (October 22, 2026)
Maintainer henrygd on GitHub, plus community contributors
GitHub stars About 26,800
Default hub port 8090
Hub resource floor 256 MB RAM, 1 CPU core, 1 GB disk (xCloud template manifest)

You can read the project’s own overview on the official Beszel GitHub repository.

How Beszel Works: Hub and Agent

Beszel’s design is deliberately small: two programs, one connection and a dashboard on top.

The Hub

The hub is a web application built on PocketBase. It stores your systems, users, alert rules and metrics history. It serves the dashboard on port 8090 by default. It runs as a single binary or as the henrygd/beszel Docker image.

The first account you create becomes the administrator. The Add System button then generates the install command for each new agent.

The Agent

The agent runs on every machine you monitor and sends its metrics to the hub. Install options include Docker or Podman, a single binary, Homebrew on macOS, WinGet or Scoop on Windows and a Home Assistant add-on.

For container stats, the agent needs read-only access to Docker. Without it, you still get host metrics.

How the Two Connect

Here is the part that trips people up. The hub and agent can talk in two directions:

  • WebSocket mode: the agent connects out to your hub URL. The Beszel security guide recommends this mode with an HTTPS hub whenever traffic crosses the public internet.
  • SSH mode: the hub connects to the agent on port 45876 by default. This suits a hub on a private network that agents cannot reach.

Both modes are locked down. The SSH side accepts only the hub’s key and offers no terminal, so nobody can run commands through it. In WebSocket mode, both sides verify each other before any data moves.

7 Beszel Features That Matter

1. Host Metrics at a Glance

Every system shows CPU, memory (including swap and ZFS ARC), disk usage, disk I/O, network and load average, across multiple disks and partitions. Each chart keeps history, so you can tell a one-off spike from a pattern.

2. Docker and Podman Container Stats

Beszel tracks CPU, memory and network usage history for each container, plus the status of every running container. When a server slows down, you see which container ate the memory instead of guessing.

3. Temperatures, GPUs and Disk Health

The agent reads temperature sensors, fan speed on Linux and battery charge where available. It also reports GPU usage and power draw for Nvidia, AMD and Intel cards. S.M.A.R.T. data shows disk health and can notify you when a drive starts to fail.

4. Alerts That Reach a Human

You can set alerts for a system going down, plus CPU, memory, disk, bandwidth, temperature, load average, GPU and battery. Alerts go out by email or to services such as Discord, Slack, Telegram, ntfy, Gotify, Pushover, Matrix and Microsoft Teams.

5. Network Monitors From Each Agent

Since agent version 0.20.0, each agent can probe targets with ICMP, TCP, HTTP or DNS checks and report response time and packet loss. Results show the network from that server’s point of view.

6. Multi-User Access and Sign-In Options

Beszel has three roles: admin, user and read-only. Users manage their own systems, and admins can share chosen systems, so a client can get a read-only view of just their servers. Sign-in supports many OAuth2 and OIDC providers, and password login can be switched off.

7. Automatic Backups and an API

The hub can back itself up to disk or to S3-compatible storage. Because it runs on PocketBase, you can also read or update data through PocketBase’s API.

What Is Beszel Used For?

Agencies and Freelancers With a Small Fleet

You host client sites on several VPS servers across a few providers. Beszel puts them all on one page, so a disk alert reaches you before a client’s site stops saving orders.

Busy Docker Hosts

One server runs a database and three web apps in containers. When memory climbs, per-container history shows which one is growing. Our explainer on what Docker is and how its components fit together covers the basics if containers are new to you.

Home Labs and GPU Machines

Temperature and S.M.A.R.T. alerts matter more on hardware you own. GPU support also helps on a machine that runs local AI models or media transcoding.

Beszel vs Netdata vs Prometheus and Grafana vs Uptime Kuma

These four tools often appear in the same conversation, yet they solve different problems. Beszel’s small scope is a choice: no logs, no request tracing, no custom metrics and no status pages.

Beszel Netdata Prometheus + Grafana Uptime Kuma
Main job Server and container resource monitoring Detailed real-time system and service monitoring General metrics platform with custom dashboards Uptime checks and status pages
How it collects Agent on each machine reports to one hub Agent on each machine Prometheus pulls metrics from exporters Checks targets from outside
Setup effort Low Low to medium High Low
Metric depth Focused, curated set Very deep, per-second Anything you can export and query Up or down, response time
Alerts Built in Built in Through Alertmanager or Grafana Built in
Best for Small fleets, Docker hosts, home labs Deep troubleshooting on each node Platform teams and custom app metrics Knowing when a site goes down

Beszel vs Netdata

Netdata collects far more detail, with per-second metrics and automatic discovery of a very wide range of services. Netdata Cloud adds a central view across nodes. Beszel shows less, but it is simpler to read and keeps every server in your own hub.

Rule of thumb: pick Netdata when you need to dig into why one server misbehaves. Pick Beszel when you want a calm overview of many.

Beszel vs Prometheus and Grafana

Prometheus is a time-series database that pulls metrics from exporters and answers questions in PromQL. Grafana turns those metrics into dashboards and alerts. Together they can measure almost anything, including your own app’s numbers. xCloud runs both as one-click apps: Grafana hosting and Prometheus on xCloud.

The trade-off is effort. You choose exporters, write queries, design dashboards and maintain three moving parts. Beszel gives you sensible host and container charts in minutes, but you cannot add custom metrics to it.

Beszel vs Uptime Kuma: Resources vs Uptime

This is the comparison people mix up most. Uptime Kuma checks your sites from outside and publishes status pages: is the page loading, is the certificate valid? Beszel looks from inside the server: how full is the disk, which container is growing?

Beszel’s agent probes overlap a little, but they run from your own servers, so they go quiet when those servers do. If you only remember one line: Uptime Kuma tells you something broke, Beszel tells you something is about to.

Many teams run both, and xCloud offers Uptime Kuma hosting as a one-click app too.

Self-Hosting Beszel: Requirements and Options

The hub is light. The xCloud template manifest asks for 256 MB of RAM, one CPU core and 1 GB of disk as a floor. Metrics history grows with every system you add, so leave room.

A few practical requirements apply whichever way you run it:

  • An agent on every machine, with Docker access for container stats.
  • An HTTPS hub URL, so agents connect safely over the internet.
  • If you use SSH mode, an open port on each agent. Our guide to firewall management in xCloud shows how to open and restrict ports.
  • A reverse proxy that passes WebSocket traffic and leaves compression off for the live stats stream.

Option 1: Run It Yourself With Docker or a Binary

The Beszel getting started guide takes a few minutes: start the hub, create your account, click Add System and run the generated command on the target machine.

The catch worth knowing: the install is the easy part. After it, you own the domain, the SSL certificate, the firewall, backups of beszel_data and every upgrade. Your time is the hidden cost, and the monitoring hub is the one server you cannot let die silently at 3 a.m.

Our honest advice: put the hub on a different server from the machines it watches. Otherwise, one outage takes down both the server and the dashboard that should warn you. To learn which signals to watch first, read our guide on how to monitor website RAM and CPU usage.

Option 2: Use a Managed One-Click Hub

A managed host runs the hub’s server, certificate and backups for you, while you keep control of the agents. The trade-off is a monthly bill instead of hours of upkeep, as our comparison of self-managed vs managed hosting explains.

Beszel Pros and Cons

Pros Cons
✅ Free and open source under MIT ❌ Pre-1.0, so upgrades need care
✅ Light hub and simple setup ❌ An agent is needed on every machine
✅ Per-container Docker and Podman stats ❌ No custom app metrics or query language
✅ GPU, temperature and S.M.A.R.T. health ❌ No logs, tracing or public status pages
✅ Alerts by email and many chat services ❌ Sharing systems is set in the PocketBase admin panel
✅ Roles, OAuth and OIDC sign-in ❌ Support comes through GitHub and the community

Deploy Your Beszel Hub on xCloud in One Click

xCloud runs the Beszel hub for you on a dedicated Cloud VPS. The one-click template brings up the official henrygd/beszel 0.21.0 image, pinned by an immutable digest, with HTTPS on your own domain.

Getting started takes three steps:

  1. Sign up and pick Beszel Hub from the One-Click Apps catalog.
  2. Let xCloud deploy it. The hub starts with its data on a persistent beszel_data volume and a free SSL certificate.
  3. Create the first user, which becomes the administrator. Then click Add System in the hub and run the agent command it generates on each machine you want to watch.

A few honest notes before you click:

  • The template installs the hub only. It adds no agent, mounts no Docker access and grants no host access, so it does not monitor the xCloud server itself.
  • Updates are your call. The hub stays on the version chosen at install. Back up beszel_data, read the upstream release notes, then change the image yourself.
  • Beszel is an independent project. xCloud runs the server, while agent and alert questions belong with the Beszel community.

Plans start with the Cloud VPS 6 GB at $24.99 per month, with 4 vCPU cores, 100 GB NVMe SSD and 30 TB of bandwidth. A 16 GB size at $59.99 per month leaves room for other apps and longer history.

Billing is monthly with no lock-in, and server backups and security updates are included. You can also connect your own server for a per-server management fee.

To protect your metrics history, set up backups in xCloud for the server that holds the beszel_data volume.

Ready to watch every server from one dashboard? Deploy Beszel Hub hosting on xCloud and connect your first agent today.

👉 Follow the step-by-step guide on how to use One-Click App templates in xCloud.

Start Watching Your Servers Before They Fail

So, what is Beszel in one line? A light hub and agent pair that shows your servers’ resource use, keeps the history and warns you before small problems become outages. It does not try to replace an uptime checker or a full metrics platform.

This week, pick the servers that worry you most, add their agents and set alerts for disk, memory and system status. Next month, check which alerts fired and decide whether you need Uptime Kuma or Grafana alongside it.

If you have found this blog helpful, feel free to subscribe to our blogs for valuable tutorials, guides, knowledge and tips on web hosting and server management. You can also join our Facebook community to share insights and engage in discussions.

Frequently asked questions

What is Beszel used for?

Beszel is used to watch the resource usage of your servers and containers from one dashboard. It shows CPU, memory, disk, network, temperature and Docker stats with history, and it sends alerts when a value crosses a limit you set.

Is Beszel free?

Yes. Beszel is open source under the MIT license, so the software has no fee. You only pay for the servers that run the hub and the machines you monitor.

Can Beszel replace Uptime Kuma?

Not fully. Beszel watches server resources from the inside and can probe targets from each agent, while Uptime Kuma is built for outside uptime checks and public status pages. Many teams run both, ideally on separate servers.

Should I choose Beszel or Prometheus with Grafana?

Choose Beszel if you want host and container dashboards with alerts in under an hour. Choose Prometheus with Grafana if you need custom application metrics, flexible queries and dashboards you design yourself. The second path takes far more setup and care.

I added a system but the agent will not connect. What should I check?

First, check the logs in the hub’s PocketBase admin panel for the exact error. Then make sure the agent can reach the hub URL, or that the hub can reach the agent’s port if you use SSH mode. If the hub sits behind a reverse proxy, the proxy must pass WebSocket connections.

How much RAM does Beszel need?

Very little. The xCloud Beszel Hub template asks for 256 MB of RAM, one CPU core and 1 GB of disk as its floor. Plan more room if you keep a long metrics history for many systems.

← All articles