Comment auto-héberger Beszel sur un VPS (Guide complet)
Beszel est un tableau de bord de monitoring auto-hébergé qui vous donne une visibilité en temps réel sur le CPU, la RAM, le disque et les métriques réseau de plusieurs serveurs. Il est extrêmement léger (fonctionne avec 512 Mo de RAM), utilise SQLite pour le stockage et peut être déployé en quelques minutes via Docker. Ce guide couvre tout, de la sélection d’un VPS à la surveillance de votre premier serveur distant.
Prérequis
Avant de commencer, vous avez besoin de :
- Un VPS — 1 Go RAM, 1 vCPU, 10 Go de stockage minimum. Fournisseurs recommandés :
- Hetzner Cloud — 4,15 EUR/mois, 4 Go RAM, 40 Go NVMe (meilleur rapport qualité/prix UE)
- Contabo VPS — 5,99 EUR/mois, 8 Go RAM, 200 Go NVMe (meilleur stockage)
- DigitalOcean — 6 USD/mois, 1 Go RAM (pour débutants)
- Ubuntu 22.04 ou Debian 12 installé sur le VPS.
- Accès SSH au VPS.
- Docker (ou téléchargement direct du binaire Beszel).
- Port 8090 ouvert dans votre pare-feu.
Étape 1 : Se connecter au VPS
ssh root@ip-de-votre-vps
Mettre à jour les paquets :
apt update && apt upgrade -y
Étape 2 : Installer Docker
curl -fsSL https://get.docker.com | sh
systemctl enable --now docker
Vérifier l’installation de Docker :
docker --version
Étape 3 : Ouvrir le port 8090 dans le pare-feu
Avec UFW sur Ubuntu :
ufw allow 8090/tcp
ufw reload
Étape 4 : Déployer le hub Beszel
Option A : Docker Run (démarrage rapide)
docker run -d \
--name beszel \
--restart unless-stopped \
-p 8090:8090 \
-v beszel_data:/beszel_data \
henrygd/beszel
Option B : Docker Compose (recommandé)
Créer un répertoire de projet :
mkdir -p /opt/beszel && cd /opt/beszel
Créer 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:
Démarrer le service :
docker compose up -d
Vérifier le statut :
docker compose ps
docker compose logs -f
Option C : Installation par binaire (sans Docker)
Télécharger la dernière version pour votre architecture :
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
Créer un service systemd /etc/systemd/system/beszel.service :
[Unit]
Description=Beszel monitoring hub
After=network.target
[Service]
ExecStart=/usr/local/bin/beszel serve
WorkingDirectory=/var/lib/beszel
Restart=always
RestartSec=5
[Install]
WantedBy=multi-user.target
Activer et démarrer :
mkdir -p /var/lib/beszel
systemctl daemon-reload
systemctl enable --now beszel
Étape 5 : Première connexion
Ouvrez votre navigateur et naviguez vers :
http://ip-de-votre-vps:8090
Au premier lancement, vous serez invité à créer un compte administrateur. Choisissez un mot de passe fort.
Étape 6 : Ajouter des serveurs à surveiller
Beszel utilise un agent léger installé sur chaque serveur à surveiller.
6.1 Générer une clé agent
Dans le tableau de bord Beszel :
- Cliquer sur Ajouter un serveur.
- Saisir un nom et le nom d’hôte ou l’IP du serveur.
- Copier la Clé agent générée — vous en aurez besoin sur le serveur surveillé.
6.2 Installer l’agent sur le serveur cible
Se connecter en SSH au serveur à surveiller, puis exécuter :
Docker :
docker run -d \
--name beszel-agent \
--restart unless-stopped \
--network host \
-e KEY="<collez-votre-clé-agent-ici>" \
henrygd/beszel-agent
Binaire :
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
Créer /etc/systemd/system/beszel-agent.service :
[Unit]
Description=Beszel monitoring agent
After=network.target
[Service]
ExecStart=/usr/local/bin/beszel-agent
Environment=KEY=<votre-clé-agent>
Restart=always
RestartSec=5
[Install]
WantedBy=multi-user.target
Activer et démarrer :
systemctl daemon-reload
systemctl enable --now beszel-agent
En quelques secondes, le serveur devrait apparaître comme Connecté dans le tableau de bord Beszel.
Étape 7 : (Optionnel) Mettre Beszel derrière un reverse proxy
Pour un accès HTTPS, configurer Caddy ou Nginx devant Beszel.
Exemple Caddy (/etc/caddy/Caddyfile) :
monitor.votredomaine.fr {
reverse_proxy localhost:8090
}
Exemple Nginx :
server {
listen 443 ssl;
server_name monitor.votredomaine.fr;
ssl_certificate /etc/letsencrypt/live/monitor.votredomaine.fr/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/monitor.votredomaine.fr/privkey.pem;
location / {
proxy_pass http://localhost:8090;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
Dépannage
| Problème | Solution |
|---|---|
| Tableau de bord inaccessible | Vérifier le pare-feu (ufw status), vérifier que le conteneur tourne (docker ps) |
| L’agent ne se connecte pas | Vérifier la variable d’env KEY, consulter les logs de l’agent (docker logs beszel-agent) |
| Utilisation disque élevée | Réduire l’intervalle de rétention dans les paramètres Beszel |
| Le conteneur ne démarre pas | Consulter les logs : docker compose logs beszel |
Questions fréquentes
Comment sauvegarder les données Beszel ?
L’intégralité de l’état de Beszel se trouve dans le volume Docker beszel_data. Créer une sauvegarde de la base de données :
docker exec beszel sqlite3 /beszel_data/beszel.db ".backup /beszel_data/beszel.db.bak"
Puis copier le fichier de sauvegarde hors du serveur avec rsync ou scp.
Puis-je surveiller des serveurs Windows avec Beszel ?
L’agent Beszel supporte Linux, macOS et Windows. Installez le binaire Windows et enregistrez-le comme service Windows.
Beszel nécessite-t-il une connexion internet ?
Non. Beszel est entièrement autonome. Le hub et les agents communiquent uniquement entre eux, sans appels externes. Il fonctionne parfaitement sur un réseau privé ou un VPN.