Hoe Zelf-host Beszel op een VPS (Volledige Gids)
Beszel is een zelfgehost dashboard voor serverbewaking dat je realtime inzicht geeft in CPU-, RAM-, schijf- en netwerkstatistieken over meerdere servers. Het is uiterst lichtgewicht (werkt op 512 MB RAM), gebruikt SQLite voor opslag, en kan in minuten worden gedeployed via Docker. Deze gids behandelt alles van het kiezen van een VPS tot het bewaken van je eerste externe server.
Vereisten
Voordat je begint, heb je nodig:
- Een VPS - Minimaal 1 GB RAM, 1 vCPU, 10 GB opslag. Aanbevolen providers:
- Hetzner Cloud - 4,15 EUR/maand, 4 GB RAM, 40 GB NVMe (beste waarde EU)
- Contabo VPS - 5,99 EUR/maand, 8 GB RAM, 200 GB NVMe (beste opslag)
- DigitalOcean - 6 USD/maand, 1 GB RAM (gebruiksvriendelijk voor beginners)
- Ubuntu 22.04 of Debian 12 geรฏnstalleerd op de VPS.
- SSH-toegang tot de VPS.
- Docker (of direct de Beszel binary downloaden).
- Poort 8090 open in je firewall.
Stap 1: Verbinden met je VPS
ssh root@jouw-vps-ip
Update pakketten:
apt update && apt upgrade -y
Stap 2: Installeer Docker
curl -fsSL https://get.docker.com | sh
systemctl enable --now docker
Controleer of Docker draait:
docker --version
Stap 3: Open Firewall Poort 8090
Op Ubuntu met UFW:
ufw allow 8090/tcp
ufw reload
Op Debian met iptables:
iptables -A INPUT -p tcp --dport 8090 -j ACCEPT
Stap 4: Deploy de Beszel Hub
Optie A: Docker Run (Snelle Start)
docker run -d \
--name beszel \
--restart unless-stopped \
-p 8090:8090 \
-v beszel_data:/beszel_data \
henrygd/beszel
Optie B: Docker Compose (Aanbevolen)
Maak een projectmap:
mkdir -p /opt/beszel && cd /opt/beszel
Maak 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:
Start de service:
docker compose up -d
Bevestig dat het draait:
docker compose ps
docker compose logs -f
Optie C: Binary Installatie (Geen Docker)
Download de laatste versie voor jouw architectuur:
curl -sL https://api.github.com/repos/henrygd/beszel/releases/latest \
| grep "browser_download_url.*linux_amd64" \
| cut -d '"' -f 4 \
| xargs curl -Lo /usr/local/bin/beszel
chmod +x /usr/local/bin/beszel
Maak een systemd service aan op /etc/systemd/system/beszel.service:
[Unit]
Description=Beszel bewakingshub
After=network.target
[Service]
ExecStart=/usr/local/bin/beszel serve
WorkingDirectory=/var/lib/beszel
Restart=always
RestartSec=5
[Install]
WantedBy=multi-user.target
Activeer en start:
mkdir -p /var/lib/beszel
systemctl daemon-reload
systemctl enable --now beszel
Stap 5: Eerste Inloggen
Open je browser en navigeer naar:
http://jouw-vps-ip:8090
Je wordt gevraagd een beheerdersaccount aan te maken bij de eerste lancering. Stel een sterk wachtwoord in. Dit maakt de eerste gebruiker aan in de SQLite-database.
Stap 6: Servers Toevoegen om te Bewaken
Beszel gebruikt een lichtgewicht agent die op elke te bewaken server geรฏnstalleerd wordt.
6.1 Genereer een Agent Sleutel
In het Beszel dashboard:
- Klik op Add Server.
- Voer een naam en de hostname of IP van de server in.
- Kopieer de gegenereerde Agent Key - je hebt deze nodig op de gemonitorde server.
6.2 Installeer de Agent op de Doelserver
SSH naar de server die je wilt bewaken, voer dan uit:
Docker:
docker run -d \
--name beszel-agent \
--restart unless-stopped \
--network host \
-e KEY="<plak-je-agent-sleutel-hier>" \
henrygd/beszel-agent
Binary:
curl -sL https://api.github.com/repos/henrygd/beszel/releases/latest \
| grep "browser_download_url.*beszel-agent.*linux_amd64" \
| cut -d '"' -f 4 \
| xargs curl -Lo /usr/local/bin/beszel-agent
chmod +x /usr/local/bin/beszel-agent
Maak /etc/systemd/system/beszel-agent.service aan:
[Unit]
Description=Beszel bewakingsagent
After=network.target
[Service]
ExecStart=/usr/local/bin/beszel-agent
Environment=KEY=<jouw-agent-sleutel>
Restart=always
RestartSec=5
[Install]
WantedBy=multi-user.target
Activeer en start:
systemctl daemon-reload
systemctl enable --now beszel-agent
Binnen enkele seconden zou de server als Connected moeten verschijnen in het Beszel dashboard.
Stap 7: (Optioneel) Plaats Beszel achter een Reverse Proxy
Voor HTTPS-toegang configureer Caddy of Nginx voor Beszel.
Caddy voorbeeld (/etc/caddy/Caddyfile):
monitor.jouwdomein.com {
reverse_proxy localhost:8090
}
Nginx voorbeeld (/etc/nginx/sites-available/beszel):
server {
listen 80;
server_name monitor.jouwdomein.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name monitor.jouwdomein.com;
ssl_certificate /etc/letsencrypt/live/monitor.jouwdomein.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/monitor.jouwdomein.com/privkey.pem;
location / {
proxy_pass http://localhost:8090;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
Probleemoplossing
| Probleem | Oplossing |
|---|---|
| Dashboard niet bereikbaar | Controleer firewall (ufw status), bevestig dat de container draait (docker ps) |
| Agent verbindt niet | Controleer of de KEY-omgevingsvariabele correct is, controleer agentlogs (docker logs beszel-agent) |
| Hoge schijfgebruik | Verlaag de metrics-retentieperiode in de Beszel-instellingen |
| Container start niet | Controleer logs: docker compose logs beszel |
Veelgestelde Vragen
Hoe maak ik een back-up van de Beszel data?
De volledige Beszel-status bevindt zich in het Docker volume beszel_data (of /var/lib/beszel voor binary installs). Maak een back-up van het SQLite-databasebestand met:
docker exec beszel sqlite3 /beszel_data/beszel.db ".backup /beszel_data/beszel.db.bak"
Kopieer daarna /beszel_data/beszel.db.bak van de server met rsync of scp.
Kan ik Windows-servers bewaken met Beszel?
De Beszel agent ondersteunt Linux, macOS en Windows. Installeer de Windows binary en registreer deze als Windows service, en wijs je Beszel hub naar deze server.
Heeft Beszel een internetverbinding nodig?
Nee. Beszel is volledig zelfvoorzienend. De hub en agents communiceren uitsluitend met elkaar, zonder externe oproepen. Het werkt volledig op een privรฉ-netwerk of VPN.