Independent testing Updated April 2026 387 self-hosting guides 5 VPS providers tested

guide

Beszel on VPS: Your Lightweight Monitoring Hub in 2026

Complete guide to running Beszel on a VPS. Covers what Beszel is, VPS sizing, Docker installation, and first-run dashboard setup.

Beszel on VPS: Your Lightweight Monitoring Hub in 2026

Server monitoring does not have to mean heavyweight stacks. Beszel is an open-source, lightweight monitoring dashboard that gives you real-time CPU, RAM, disk I/O, and network stats across your entire fleet — all from a single web UI backed by SQLite. This guide walks you through choosing a VPS, deploying Beszel via Docker, and getting your first server into the dashboard.

What Is Beszel?

Beszel (GitHub: henrygd/beszel) is a self-hosted server monitoring solution built for developers and homelabbers who want visibility without operational overhead. Key characteristics:

Compared to alternatives like Netdata (heavier, more complex) or Uptime Kuma (service health checks, not system metrics), Beszel is purpose-built for clean system metrics dashboards.

Why Use a VPS for Beszel?

Running Beszel on a dedicated VPS makes sense for several reasons:

VPS Comparison for Beszel

ProviderPriceRAMStorageBest For
Contabo VPS5.99 EUR/mo8 GB200 GB NVMeLong metrics retention, EU
Hetzner Cloud4.15 EUR/mo4 GB40 GB NVMeBest price/perf, EU
DigitalOcean6 USD/mo1 GB25 GB SSDBeginners
Vultr6 USD/mo1 GB25 GB SSDGlobal locations
Linode (Akamai)5 USD/mo1 GB25 GB SSDBudget, reliable

For a homelab or small fleet, Hetzner Cloud at 4.15 EUR/mo hits the sweet spot: NVMe storage, reliable uptime, and a great API for automation. For maximum storage headroom, Contabo at 5.99 EUR/mo gives you 200 GB NVMe — ideal if you retain months of metrics across many servers.

Installation: Beszel via Docker

Prerequisites

Step 1: Install Docker

sudo apt update && sudo apt install -y ca-certificates curl
curl -fsSL https://get.docker.com | sudo sh
sudo usermod -aG docker $USER

Step 2: Deploy the Beszel Hub

docker run -d \
  --name beszel \
  --restart unless-stopped \
  -p 8090:8090 \
  -v beszel_data:/beszel_data \
  henrygd/beszel

Or use Docker Compose — create docker-compose.yml:

services:
  beszel:
    image: henrygd/beszel:latest
    container_name: beszel
    restart: unless-stopped
    ports:
      - "8090:8090"
    volumes:
      - beszel_data:/beszel_data

volumes:
  beszel_data:

Then run:

docker compose up -d

Step 3: Open the Dashboard

Navigate to http://your-vps-ip:8090 in your browser. On first launch, you will be prompted to create an admin account. Set a strong password.

Step 4: Add a Server Agent

For each server you want to monitor, install the Beszel agent. On the monitored server:

docker run -d \
  --name beszel-agent \
  --restart unless-stopped \
  --network host \
  -e KEY="<your-agent-key-from-dashboard>" \
  henrygd/beszel-agent

The agent key is generated in the Beszel hub UI when you click Add Server. Copy it and paste it into the command above.

Dashboard Overview

Once a server is connected, the Beszel dashboard shows:

Charts are interactive and support custom time ranges. All data is stored in SQLite under /beszel_data/.

FAQs

Does Beszel support alerting?

Beszel supports basic alerting via webhooks. You can configure alert thresholds in the dashboard for CPU, memory, and disk usage, with notifications sent to services like Discord, Slack, or any webhook endpoint.

Can I put Beszel behind a reverse proxy?

Yes. Beszel works well behind Nginx, Caddy, or Traefik. Configure your proxy to forward HTTPS traffic to port 8090. Add SSL via Let’s Encrypt for a production setup.

Is Beszel data persistent across container restarts?

Yes, as long as you mount a named volume (beszel_data). The SQLite database persists all metrics history. Always include the volume in your Docker Compose file.

For more VPS recommendations suited to monitoring workloads, see our full VPS comparison.