Running a self-hosted stack feels great. You spin up your first container, set up your first Nginx reverse proxy, maybe a Plex or Jellyfin server. It all feels great running your server, owning your hardware, software stack, data, and defining your own rules. Except when it comes crashing down. Trust me, as a seasoned self-hoster, even I'm guilty of losing track of what's happening under the hood. As your stack grows, containers crash, memory spikes happen, hard disks or SSDs start filling up, and you find yourself SSH-ing into your machine trying to make sense of everything.
Well, there's a solution. Beszel, an open-source Docker utility, has quickly become the nerve center of my self-hosted stack and an easy recommendation for everyone running Docker containers. Now, before I dive deep into it, at first glance, it looks like another server monitor, but there's much more here than meets the eye. Beszel simplifies the process of monitoring your Docker containers and hardware without requiring heavy-duty tools like Prometheus or Grafana. All that to say, it earned a permanent spot in my self-hosted stack.
This free and open-source lightweight server monitor changed how I keep an eye on my home lab
Beszel has become my go-to utility for monitoring the server rigs, SBCs, NAS units, and mini-PCs in my home lab
Beszel keeps things lightweight
A simple setup for easy and effective monitoring
Look, Prometheus and Grafana are powerful tools, but they are also overkill for someone who just wants to see how their containers and servers are doing at a glance. They require a fairly complex setup, equally complex configuration, and a decent amount of maintenance. All of which is just a bit too much if you're a first-time home labber. Even if you're not a small homelab or production setup with a handful of services, it doesn't need all that.
Beszel, on the other hand, is designed for speed and simplicity. The app is split into two components — a hub and an agent. The hub runs as a web app handling your dashboard, user management, server management, and data storage. The agent is the component that runs on all your individual machines and needs to be monitored, and it feeds real-time stats back to the central hub.
Set up is easy. You just pull both containers, point the agent to your hub's IP address, and it immediately starts showing CPU, memory, disk usage, and container stats in a clean, responsive web dashboard. There's no dependence on external databases, reverse proxies, and YAML configurations to connect the agent and hub. It's refreshing just how simple it is.
It's not just host monitoring either. Beszel agent reads data directly from the Docker socket, giving you granular information on resource usage for every container on your server. You can see at a glance just how much memory a Plex container or Jellyfin might be using, or whether an alpha state container you're using might be behaving. For someone like me who is constantly mucking around with new apps, services, and containers, it feels like having a clear window into what's happening on my server.
The dashboard is smooth and completely responsive, which means you can easily pull it up on a smartphone. Graphs load pretty much instantly, and there's little to no performance overhead. None that I noticed anyway. And of course, Bezel displays the full array of temperature sensors, network usage, and even GPU metrics if your host has one.
Smart alerts when things invariably go wrong
Easily monitor multiple servers from one dashboard
One of my personal favorite features of Beszel is the built-in alerting system. It lets you set thresholds for CPU load, memory usage, or disk space, and Beszel will automatically notify you if a specific parameter crosses the line. It's saved me a couple of times when an essential container was misbehaving after a bad update. It's probably not going to replace a dedicated alert manager, but for most use cases, it is exactly what you need.
Because of its hub and agent model, it is a cinch to integrate Beszel with multiple home servers or NAS drives. This lets you monitor all your servers from a single dashboard. Of course, since Beszel runs locally, there is no need to expose any ports to the internet. If you want to access the app from the internet, you can optionally add HTTPS using a reverse proxy on Synology or using Traefik to access Beszel remotely, but that's up to personal preference.
Simple, efficient, and made for self-hosters with a light setup
I've been searching for a monitoring tool that covers the essentials without requiring significant configuration or work on my part. Beszel is the first app that truly checked all those boxes for me. It gives me visibility across all my containers and hosts without the overhead of larger monitoring stacks. The interface is clean, the setup is simple, and the performance is excellent with no noticeable performance penalty.
In fact, that simplicity is what makes Beszel stand out, letting you keep an eye on your systems without becoming a full-time project. If all you need to do is monitor a few simple containers, I'd highly recommend giving Beszel a shot in your self-hosted stack.
Beszel
Beszel is a lightweight server and container monitoring utility that can be used to track multiple servers via a single dashboard.
