---
title: "Deploy Beszel"
description: "Lightweight server monitoring hub: CPU, memory, disk, Docker stats, alerts"
category: "Observability"
url: https://railway.com/deploy/beszel-2
---

# Deploy Beszel

Lightweight server monitoring hub: CPU, memory, disk, Docker stats, alerts

**[Deploy Beszel on Railway](https://railway.com/template/beszel-2)**

Machine-readable deploy manifest (JSON, validated by TemplateCI): https://railway.com/deploy/beszel-2/manifest.json

- **Creator:** Connor Prussin's Projects
- **Category:** Observability

## Template content

### Beszel https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/beszel.png

- **Image:** henrygd/beszel:0.21.0
- **Health check:** /api/health
- **Public domain:** Yes

## Documentation

# Deploy and Host Beszel on Railway

[Beszel](https://github.com/henrygd/beszel) is a lightweight server monitoring platform. A small agent on each machine reports CPU, memory, disk, network, temperature, GPU and per-container Docker stats to the hub, which keeps history and sends alerts.

## About Hosting Beszel

This template runs the hub, the official `henrygd/beszel` image (built on PocketBase), as one service with a volume for its database. The hub is the web UI and the API. The agents run on your own servers and connect to it.

Your account is created on first start from `USER_EMAIL` and `USER_PASSWORD`, so you can log in right away, with no setup page that anyone could claim first. The same account is also the PocketBase superuser (`/_/`).

## Common Use Cases

- Watch a handful of VPSes, home servers or Raspberry Pis from one dashboard.
- Get alerts on high CPU, memory or disk use, or when a server goes down.
- See which Docker container is eating resources, with history.

## Dependencies for Beszel Hosting

- None. One container with a volume.

### Deployment Dependencies

- Upstream: 
- Docs: 

### Implementation Details

| Variable        | Default                              | Notes                                    |
| --------------- | ------------------------------------ | ---------------------------------------- |
| `USER_EMAIL`    | (you set it)                         | Your login                               |
| `USER_PASSWORD` | random                               | Copy it from the service's Variables tab |
| `APP_URL`       | `https://${{RAILWAY_PUBLIC_DOMAIN}}` | Change it if you add a custom domain     |

Add a server:

1. In the hub, click **Add System** and copy the agent command (Docker or binary).
2. Use your Railway URL as the hub URL. The agent connects out to the hub over HTTPS (WebSocket), so the server needs no open port.
3. Run the command on the server.

- Data lives in the `/beszel_data` volume.
- `USER_EMAIL` and `USER_PASSWORD` only apply on first start. Change the password in the UI later.
- Healthcheck: Railway probes `/api/health`.

## Why Deploy Beszel on Railway?

Railway is a single platform for deploying your whole stack: servers, databases, AI agents and more. It handles the infrastructure, so you don't have to manage servers or configure scaling.

When you deploy Beszel on Railway, you're one step closer to running your full stack with minimal effort. Host your servers, databases, AI agents and more on Railway.


## Similar templates

- [Rootprint](https://railway.com/deploy/rootprint-1) — Open-source logs and traces with full-text search on object-storage.
- [Pyroscope profiling](https://railway.com/deploy/pyroscope-profiling) — Protected continuous profiling with durable Pyroscope storage.
- [SigOnly](https://railway.com/deploy/sigonly) — Deploy SigNoz with a working demo app & config in one click

Open this page in a browser: https://railway.com/deploy/beszel-2
