[{"data":1,"prerenderedAt":185},["ShallowReactive",2],{"seo-verification":3,"blog-self-host-beszel-vps-fr":6},{"google":4,"bing":5},"EycwPY2XMyTkVzas3n1ygeNJFGAH513qrMjfDljzsMQ","",{"id":7,"slug":8,"slugs":9,"title":13,"excerpt":14,"readTime":15,"views":16,"isPinned":17,"publishedAt":18,"category":19,"categories":25,"featuredImage":27,"bgImage":28,"posterImage":29,"relatedSolution":30,"intro":33,"sections":34,"ctaTitle":131,"ctaBody":132,"ctaButton":133,"ctaUrl":134,"relatedPosts":135},133,"self-host-beszel-vps",{"fr":8,"en":10,"ar":11,"es":12},"self-host-beszel-multi-server-monitoring-hub-on-your-vps","استضف-beszel-على-vps-مركز-مراقبة-متعدد-الخوادم","alojar-beszel-hub-monitorizacion-vps","Beszel sur VPS : supervision multi-serveurs, alertes et sécurité","Supervisez un parc de VPS depuis un hub Beszel unique : alertes Telegram\u002Fe-mail, 2FA, agents déclarés automatiquement et dépannage des connexions silencieuses.",10,0,false,"2026-02-14T00:00:00+00:00",{"id":20,"name":21,"slug":22,"color":23,"icon":24},8,"Sécurité & Monitoring","securite-monitoring","bg-rose-500\u002F10 text-rose-400","security",[26],{"id":20,"name":21,"slug":22,"color":23,"icon":24},null,"\u002Fblog\u002Fcovers\u002Fbg.svg","\u002Fblog\u002Fcovers\u002Fself-host-beszel-vps-poster.svg",{"categorySlug":31,"appSlug":32},"monitoring","beszel","Faire tourner plusieurs VPS devient la norme dès qu'on se met sérieusement à l'auto-hébergement. Mais vérifier chaque serveur individuellement est lent, et vous passerez à côté de problèmes avant qu'ils ne coûtent cher. Beszel résout cela avec un modèle hub-et-agent : un hub léger, adossé à PocketBase, agrège les métriques en temps réel de tous vos serveurs. Le hub consomme moins de 50 Mo de RAM au repos, les agents sont de minuscules binaires Go, et l'installation complète prend une dizaine de minutes. Ce guide couvre le déploiement complet : mise en route du hub, ajout de plusieurs agents, configuration des alertes, durcissement et résolution des problèmes courants.",[35,39,77,88,91,113,116,119,122,126,128],{"type":36,"title":37,"body":38},"h2","Pourquoi Beszel trouve le juste équilibre pour l'auto-hébergement","Grafana + Prometheus est le standard du secteur, mais s'accompagne d'une mise en place lourde : exporters, configuration Prometheus, sources de données Grafana, tableaux de bord. Uptime Kuma excelle pour les contrôles de disponibilité mais ne fournit pas de métriques de ressources. Netdata est riche en données mais consomme davantage de RAM par nœud et nécessite un compte cloud pour agréger plusieurs hôtes. Beszel se situe entre les deux : métriques de ressources complètes (CPU, RAM, disque, bande passante, températures), stats Docker par conteneur, graphiques historiques et alertes sur seuil — le tout déployé en une seule commande Docker, sans aucun fichier de configuration.\n\nLe hub repose sur PocketBase, ce qui signifie un unique binaire Go avec une base de données embarquée. Pas de Postgres ni de Redis séparés. Aucun YAML à écrire. La contrepartie : Beszel ne permet pas les requêtes personnalisées ni les tableaux de bord libres comme Prometheus\u002FGrafana — pour superviser les ressources d'un parc de serveurs, il est plus rapide à prendre en main et plus simple à maintenir.",{"type":40,"title":41,"headers":42,"rows":47},"comparison","Uptime Kuma · Beszel · Netdata — tableau comparatif",[43,44,45,46],"Critère","Uptime Kuma","Beszel","Netdata",[48,53,58,63,68,72],[49,50,51,52],"Métriques de ressources","Non (sonde HTTP\u002FTCP uniquement)","Oui (CPU, RAM, disque, bande passante, temp.)","Oui (très détaillé)",[54,55,56,57],"Multi-serveurs sans compte cloud","Oui (une instance par serveur)","Oui (hub unique, agents sans limite)","Partiel (room cloud nécessaire pour agréger)",[59,60,61,62],"Consommation RAM hub","\u003C 100 Mo","\u003C 50 Mo","300–500 Mo par nœud",[64,65,66,67],"Stats Docker par conteneur","Non","Oui (automatique)","Oui",[69,70,71,71],"Configuration requise","Interface web","Zéro fichier",[73,74,75,76],"Export Prometheus","Non (natif)","Non natif (via `\u002Fmetrics` expérimental)","Oui (natif)",{"type":78,"title":79,"items":80},"ul","Ce que vous obtenez d'emblée",[81,82,83,84,85,86,87],"Métriques CPU, RAM, disque, bande passante et température mises à jour toutes les 15 secondes.","Stats Docker par conteneur — CPU, RAM et réseau pour chaque conteneur, détectés automatiquement.","Graphiques historiques aux résolutions horaire, quotidienne et mensuelle, sans limite de rétention.","Alertes sur seuil envoyées vers Telegram, Slack, e-mail, Discord, ntfy, PagerDuty et bien d'autres.","Multi-serveurs : un seul hub, un parc d'agents sans limite — pas de frais par serveur ni de fonctionnalités payantes.","Les agents se connectent vers le hub en sortie — aucune règle de pare-feu entrante nécessaire sur les serveurs supervisés.","Licence MIT — totalement open-source, auto-hébergé, sans dépendance au cloud.",{"type":36,"title":89,"body":90},"Prérequis","Le hub est exceptionnellement léger. Il tourne sans peine sur un VPS de 512 Mo \u002F 1 vCPU — de fait, il trouve sa place aux côtés d'autres services sur votre plus petit serveur. Prévoyez 5 à 10 Go de disque pour le répertoire de données PocketBase, qui grossit lentement à mesure que les métriques historiques s'accumulent. Les agents sont encore plus légers : quelques Mo de RAM chacun. Vous pouvez superviser plus de 20 serveurs sans que le hub ne bronche sur un VPS de 1 Go.\n\nDépendances : Docker installé sur le hub (pour le conteneur du hub) et sur chaque serveur supervisé (pour l'agent en mode conteneur). Une alternative binaire sans Docker existe pour les agents — consultez la documentation officielle pour cette variante.",{"type":92,"title":93,"steps":94},"steps","Déployer le hub et ajouter plusieurs agents",[95,98,101,104,107,110],{"title":96,"body":97},"Démarrer le hub","Sur le VPS dédié à la supervision :\n```bash\ndocker run -d --restart=always \\\n  -p 8090:8090 \\\n  --name beszel \\\n  -v \u002Fopt\u002Fbeszel:\u002Fbeszel_data \\\n  henrygd\u002Fbeszel:latest\n```\nLe hub démarre immédiatement — aucune variable d'environnement ni fichier de configuration requis.",{"title":99,"body":100},"Créer le compte administrateur","Ouvrez `http:\u002F\u002F\u003Chub-ip>:8090`. Le premier visiteur voit l'assistant PocketBase qui crée le compte administrateur (e-mail + mot de passe fort). Ce compte contrôle l'intégralité du tableau de bord — choisissez un mot de passe solide, vous activerez le 2FA à l'étape suivante.",{"title":102,"body":103},"Activer le 2FA sur le compte administrateur","Dans PocketBase, allez dans **Settings → Admins**, ouvrez votre profil et activez l'authentification à deux facteurs (TOTP). Scannez le QR code avec un gestionnaire de codes (Aegis, Authy, 1Password). À partir de là, toute connexion exige le code temporaire en plus du mot de passe.",{"title":105,"body":106},"Placer le hub derrière un reverse proxy HTTPS","Pointez un sous-domaine (par exemple `monitor.votre-domaine.com`) vers le VPS du hub. Avec Caddy :\n```bash\napt install -y caddy\n```\nContenu de `\u002Fetc\u002Fcaddy\u002FCaddyfile` :\n```\nmonitor.votre-domaine.com {\n  reverse_proxy localhost:8090\n}\n```\nCaddy provisionne le certificat TLS automatiquement. Fermez ensuite le port 8090 dans votre pare-feu — tout l'accès passe par 443 :\n```bash\nufw delete allow 8090\nufw allow 443\n```",{"title":108,"body":109},"Ajouter chaque serveur supervisé","Dans Beszel, cliquez sur **Add system**, saisissez un nom et l'IP ou le nom d'hôte du serveur (port 45876). Le hub génère une clé publique propre à ce système — copiez-la.",{"title":111,"body":112},"Installer l'agent sur chaque serveur supervisé","Sur chaque serveur à superviser :\n```bash\ndocker run -d --restart=always \\\n  --network host \\\n  --name beszel-agent \\\n  -v \u002Fvar\u002Frun\u002Fdocker.sock:\u002Fvar\u002Frun\u002Fdocker.sock:ro \\\n  -e KEY=\"\u003Cclé-copiée-depuis-le-hub>\" \\\n  henrygd\u002Fbeszel-agent:latest\n```\nL'agent établit une connexion **sortante** vers le hub sur le port 45876 — aucun port entrant à ouvrir sur le serveur supervisé. Les métriques apparaissent dans le tableau de bord en quelques secondes.",{"type":36,"title":114,"body":115},"Configurer les alertes Telegram et e-mail","Dans les réglages Beszel, ouvrez l'onglet **Notifications** et cliquez sur **Add notification**.\n\n**Telegram** (canal recommandé pour sa rapidité) : créez un bot via @BotFather pour obtenir un token, puis récupérez votre `chat_id` en envoyant un message au bot et en appelant `https:\u002F\u002Fapi.telegram.org\u002Fbot\u003Ctoken>\u002FgetUpdates`. Collez le token et le chat ID dans le formulaire. Un message de test confirme la connexion.\n\n**E-mail (SMTP)** : renseignez l'hôte SMTP, le port (587 pour STARTTLS), le nom d'utilisateur, le mot de passe et l'adresse de destination. Sur chaque système supervisé, définissez ensuite des **seuils d'alerte** : par exemple, alerte dès que l'utilisation du disque dépasse 80 %, ou que la RAM reste au-dessus de 90 % pendant 5 minutes. Plusieurs canaux peuvent coexister — Telegram pour les alertes urgentes, e-mail pour les récapitulatifs.",{"type":36,"title":117,"body":118},"Dépannage — agent silencieux, TLS rejeté, port bloqué","**L'agent n'apparaît pas dans le tableau de bord.** Vérifiez d'abord que l'agent tourne réellement : `docker logs beszel-agent`. Un message `connection refused` indique que le port 45876 est bloqué sur le hub — ouvrez-le dans `ufw` du côté hub uniquement (les agents, eux, n'ont pas besoin d'ouvrir de port entrant) :\n```bash\nufw allow 45876\u002Ftcp\n```\nSi les logs montrent une erreur TLS comme `certificate signed by unknown authority`, c'est que le hub est exposé avec un certificat auto-signé ou un certificat d'une CA non reconnue. Deux solutions : utiliser un certificat Let's Encrypt valide (chemin recommandé via Caddy), ou passer la variable `AGENT_SKIP_TLS_VERIFY=true` à l'agent (à éviter en production).\n\n**Le hub est derrière un reverse proxy mais les agents ne se connectent pas.** Le port 45876 est un port TCP direct (pas HTTP) : le reverse proxy Caddy ou nginx ne le proxifie pas de la même façon qu'une requête web. La solution est d'exposer le port 45876 directement sur le hub (pas via le proxy) et de ne mettre que l'interface web (8090) derrière le proxy HTTPS. Autorisez le port 45876 dans votre pare-feu et assurez-vous que le groupe de sécurité de votre VPS l'autorise en TCP entrant depuis les IP de vos agents.\n\n**Métriques Docker absentes.** L'agent doit avoir accès au socket Docker. Vérifiez que `\u002Fvar\u002Frun\u002Fdocker.sock` est monté en lecture seule dans la commande de démarrage de l'agent.",{"type":36,"title":120,"body":121},"Sécuriser le hub","Un hub de supervision agrège des données sensibles (charge, disque, topologie réseau interne). Quelques mesures essentielles :\n\n**Accès restreint au tableau de bord.** Après l'activation du 2FA, ajoutez une couche de restriction IP ou une authentification HTTP basique au niveau du reverse proxy si le hub n'est accessible qu'à une équipe restreinte. Avec Caddy :\n```\nmonitor.votre-domaine.com {\n  basicauth {\n    \u003Cutilisateur> \u003Chash-bcrypt>\n  }\n  reverse_proxy localhost:8090\n}\n```\n\n**Port 45876 non exposé publiquement.** Si tous vos agents sont sur des VPS du même fournisseur et partagent un réseau privé, configurez le hub pour écouter sur l'IP privée uniquement et bloquez 45876 sur l'IP publique. Sinon, restreignez ce port aux IP connues de vos agents dans `ufw`.\n\n**Sauvegardes du répertoire de données.** Le dossier `\u002Fopt\u002Fbeszel` contient la base PocketBase et l'historique de métriques. Incluez-le dans votre routine de sauvegarde — une restauration après sinistre est immédiate si la sauvegarde est à jour.",{"type":123,"title":124,"body":125},"tip","Export vers Prometheus — pour aller plus loin","Si vous avez déjà une stack Prometheus\u002FGrafana et souhaitez centraliser toutes vos métriques, Beszel expose un endpoint expérimental `\u002Fmetrics` au format Prometheus sur le hub. Activez-le dans les réglages avancés et ajoutez un scrape job dans votre `prometheus.yml` :\n```yaml\nscrape_configs:\n  - job_name: beszel\n    static_configs:\n      - targets: ['monitor.votre-domaine.com']\n    scheme: https\n    metrics_path: \u002Fmetrics\n    basic_auth:\n      username: '\u003Cutilisateur>'\n      password: '\u003Cmot-de-passe>'\n```\nCe n'est pas la voie principale de Beszel — si Prometheus\u002FGrafana est déjà en place, vous n'avez peut-être pas besoin de Beszel du tout. Mais pour une équipe qui veut les deux tableaux de bord, c'est une passerelle utile.",{"type":123,"body":127},"Faites tourner le hub Beszel sur un VPS distinct de votre stack principale. Quand votre serveur de production est hors service, vous voulez que le système de supervision soit toujours debout et continue d'envoyer des alertes — pas qu'il tombe en même temps. L'empreinte minuscule du hub en ressources permet de justifier un VPS dédié de 512 Mo pour la supervision sans avoir l'impression de gaspiller de l'argent.",{"type":123,"title":129,"body":130},"La documentation officielle","Pour la configuration avancée et les options propres à l'outil, référez-vous à la \u003Ca href=\"https:\u002F\u002Fbeszel.dev\">documentation officielle de Beszel\u003C\u002Fa>. Ce guide couvre la mise en ligne sur VPS et les cas courants ; la doc éditeur reste la référence pour les mises à jour majeures et les réglages fins.","Surveillez tous vos serveurs depuis un seul hub","Déployez le hub de supervision Beszel sur un VPS ServOrbit — léger, auto-hébergé et gratuit. Supervisez autant de serveurs que vous le souhaitez sans aucun compte cloud.","Déployer Beszel","\u002Fmarketplace\u002Fmonitoring\u002Fbeszel",[136,150,168],{"id":137,"slug":138,"slugs":139,"title":143,"excerpt":144,"readTime":15,"views":16,"isPinned":17,"publishedAt":145,"category":146,"categories":147,"featuredImage":27,"bgImage":28,"posterImage":149,"relatedSolution":27},228,"durcissement-serveur-linux-initial",{"fr":138,"en":140,"ar":141,"es":142},"initial-linux-server-hardening","تصليب-الخادم-linux-الأولي","hardening-inicial-servidor-linux","Durcissement initial d'un serveur Linux","Créez un utilisateur sudo, configurez SSH avec clés, activez UFW et fail2ban sur Ubuntu 22.04 ou Debian 12 en moins d'une heure.","2026-08-06T00:00:00+00:00",{"id":20,"name":21,"slug":22,"color":23,"icon":24},[148],{"id":20,"name":21,"slug":22,"color":23,"icon":24},"\u002Fblog\u002Fcovers\u002Fdurcissement-serveur-linux-initial-poster.svg",{"id":151,"slug":152,"slugs":153,"title":157,"excerpt":158,"readTime":159,"views":16,"isPinned":17,"publishedAt":145,"category":160,"categories":165,"featuredImage":27,"bgImage":28,"posterImage":167,"relatedSolution":27},229,"docker-compose-production-checklist",{"fr":152,"en":154,"ar":155,"es":156},"docker-compose-in-production-10-point-checklist","docker-compose-في-الإنتاج-قائمة-التحقق-من-10-نقاط","checklist-docker-compose-en-produccion","Docker Compose en production : checklist des 10 points","Checklist Docker Compose en production : 10 paramètres essentiels, gestion des secrets sans downtime, sauvegarde volumes sans corruption, CVE-2026-17106.",14,{"id":161,"name":162,"slug":163,"color":164,"icon":163},3,"Déploiement","deploiement","bg-success\u002F10 text-success",[166],{"id":161,"name":162,"slug":163,"color":164,"icon":163},"\u002Fblog\u002Fcovers\u002Fdocker-compose-production-checklist-poster.svg",{"id":169,"slug":170,"slugs":171,"title":175,"excerpt":176,"readTime":177,"views":16,"isPinned":17,"publishedAt":178,"category":179,"categories":180,"featuredImage":27,"bgImage":28,"posterImage":182,"relatedSolution":183},106,"monitoring-vps-grafana-prometheus",{"fr":170,"en":172,"ar":173,"es":174},"vps-monitoring-with-grafana-and-prometheus","مراقبة-الخادم-الافتراضي-vps-باستخدام-grafana-و-prometheus","monitorizacion-vps-grafana-prometheus","Monitoring de VPS avec Grafana et Prometheus","Montez une stack Grafana + Prometheus sur votre VPS pour collecter, stocker et visualiser vos métriques système et applicatives.",4,"2026-03-06T00:00:00+00:00",{"id":20,"name":21,"slug":22,"color":23,"icon":24},[181],{"id":20,"name":21,"slug":22,"color":23,"icon":24},"\u002Fblog\u002Fcovers\u002Fmonitoring-vps-grafana-prometheus-poster.svg",{"categorySlug":31,"appSlug":184},"grafana",1787974981099]