If you've spent any time in the home lab space, you've probably set up Grafana + Prometheus at some point. Maybe you followed a guide, got dashboards running, felt like a proper SRE for about 20 minutes β and then spent the next week debugging PromQL queries and wondering why your node_exporter metrics stopped scraping.
Beszel is the answer most home labbers are landing on in 2026. But whether it should replace your existing monitoring stack depends on what you actually need. This post covers both options end-to-end on Proxmox LXC, with real commands and honest caveats.
What Is Beszel and Why Is It Trending?
Beszel is a lightweight, self-hosted server monitoring platform built on PocketBase. It has two components: a Hub (web UI + backend) and an Agent you run on each host you want to monitor. Communication happens over SSH β no Prometheus scrape configs, no YAML, no dashboards to build from scratch.
What makes it compelling right now:
In a 2026 benchmark by Instapods, Beszel's agent checked in at under 10MB vs Netdata's 35β500MB depending on the configuration. That delta matters when you're running 10+ LXC containers on a single mini PC.
Setting Up Beszel Hub on Proxmox LXC
The easiest path is the community script. Run this in your Proxmox node shell:
bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/ct/beszel.sh)"
Accept the defaults. The script creates a Debian LXC, installs the hub, and outputs the container IP when done. Access the web UI at http:// and create your admin account on first load.
If you'd rather use Docker Compose inside an existing LXC:
services:
beszel:
image: henrygd/beszel:latest
container_name: beszel
restart: unless-stopped
ports:
- 8090:8090
volumes:
- ./beszel-data:/beszel/data
Spin it up with docker compose up -d.
Installing the Beszel Agent on Each Host
For every Proxmox LXC or VM you want to monitor, run the one-liner agent installer. From the hub UI, go to Add System β copy the generated install command. It looks like:
curl -sL https://raw.githubusercontent.com/henrygd/beszel/main/supplemental/scripts/install-agent.sh | bash -s -- -p 45876 -k "your-public-key-here"
Run it on the host. The agent starts as a systemd service and connects back to the hub automatically. You'll see it go green in the dashboard within seconds.
One gotcha: if you want to monitor total Proxmox host resources (not just the LXC container stats), install the agent directly on the Proxmox host, not in a container. You won't see host-level CPU and memory otherwise β only the container's allocated slice.
For Proxmox hardware like the Beelink GTi Ultra or Minisforum MS-01 that are popular mini PC home lab builds, the agent idles at essentially zero β you won't notice it in htop.
Setting Up Grafana + Prometheus on Proxmox (The Full Stack)
For comparison, here's what the traditional Grafana + Prometheus stack looks like on Proxmox. You'll need:
1. Prometheus β the metrics scraper and time-series DB 2. node_exporter β exposes host-level metrics 3. cAdvisor β Docker container metrics 4. Grafana β the dashboard layer
A minimal docker-compose.yml for the full stack:
services: prometheus: image: prom/prometheus:latest container_name: prometheus restart: unless-stopped ports: - 9090:9090 volumes: - ./prometheus.yml:/etc/prometheus/prometheus.yml - prometheus-data:/prometheusnode-exporter: image: prom/node-exporter:latest container_name: node-exporter restart: unless-stopped network_mode: host pid: host volumes: - /proc:/host/proc:ro - /sys:/host/sys:ro - /:/rootfs:ro command: - '--path.procfs=/host/proc' - '--path.sysfs=/host/sys'
grafana: image: grafana/grafana:latest container_name: grafana restart: unless-stopped ports: - 3000:3000 volumes: - grafana-data:/var/lib/grafana
volumes: prometheus-data: grafana-data:
Then your prometheus.yml:
global: scrape_interval: 15s
scrape_configs: - job_name: 'node' static_configs: - targets: ['node-exporter:9100']
Bring it up with docker compose up -d, configure Prometheus as a data source in Grafana, then import a dashboard (Node Exporter Full is dashboard ID 1860).
This works well, but you're looking at ~30β45 minutes of setup before you see a single graph β and that's if nothing breaks. On modest hardware like a Raspberry Pi 5 or a lower-spec LXC, Prometheus's memory footprint alone can be noticeable.
Beszel vs Grafana + Prometheus: Head-to-Head
Resource Usage
Beszel agent: ~10MB RAM, negligible CPU at rest.
Full Grafana + Prometheus stack: Prometheus 200β400MB depending on metric cardinality, Grafana 100β200MB, node_exporter 10β30MB, cAdvisor 50β100MB. Total: easily 400β700MB before your first alert fires.
On a home lab node with 32GB RAM this is fine. On a Beelink SER5 Max or Raspberry Pi with 8β16GB shared across 15 LXCs, every 100MB matters.
Setup Time
Beszel: 5 minutes with the Proxmox community script. Agent is a one-liner per host. Done.
Grafana + Prometheus: 30β60 minutes if you're comfortable with Compose and PromQL. More like 2β3 hours if you want proper alerting, custom dashboards, and cAdvisor wired up correctly.
Feature Depth
Grafana + Prometheus wins here β no contest. PromQL is genuinely powerful. Custom dashboards, cross-service correlation, alert routing to PagerDuty or PagerDuty, multi-tenant setups, long-term storage with Thanos or Cortex β Grafana scales to SRE-level observability.
Beszel covers 80% of what a home lab operator actually checks: CPU, RAM, disk, network, container stats, uptime, and alerts when something dies. It does that 80% extremely well, with zero ongoing maintenance.
Docker Container Visibility
Both give you container metrics. Beszel shows per-container CPU, RAM, and network stats in the hub automatically once the agent is running on the Docker host. cAdvisor + Grafana gives you more granular metrics and better query flexibility.
Alerting
Beszel has built-in alerts β configure thresholds (CPU > 80% for 5 minutes, disk > 90%, etc.) and it notifies via email, Telegram, Discord, Slack, or a webhook. For most home lab use cases, this is plenty.
Grafana Alerting is more powerful but requires more setup: define alert rules in PromQL, configure notification channels, deal with alert states and silences.
Which One Should You Run?
Choose Beszel if:
Choose Grafana + Prometheus if:
/metrics endpoints (like a Kubernetes cluster β see the K3s on Proxmox guide)Run both if you want to learn PromQL β use Beszel as your always-on reliable monitoring, and run Grafana in a separate LXC to experiment without risking your primary visibility.
Hardware Recommendations
If you're building or expanding your home lab and need solid hardware to run either of these stacks:
The Verdict
For most home labs in 2026, Beszel is the better default. It does exactly what you need, costs nothing, and won't consume 500MB of RAM just to tell you your CPU spiked at 2 AM. The Proxmox community script makes it trivially easy to spin up.
Grafana + Prometheus isn't going anywhere β if you need the power, it's still the right tool. But if you've been putting off monitoring because the stack felt heavy, Beszel removes that excuse entirely.
Set up Beszel this weekend. You'll have dashboards running before dinner.
---
Disclosure: This post contains affiliate links. If you purchase through these links, I may earn a small commission at no extra cost to you.