# Mise en place de Beszel

Installation de Beszel sur un Mac mini avec Docker Compose pour surveiller simplement plusieurs serveurs, dont celui qui héberge ce wiki.

# Qu'est-ce que Beszel

[![beszel.png](https://librenard.fr/wiki/uploads/images/gallery/2026-06/scaled-1680-/beszel.png)](https://librenard.fr/wiki/uploads/images/gallery/2026-06/beszel.png)

<div class="align-center" id="bkmrk-site-officiel-d%C3%A9p%C3%B4t-" style="margin:16px 0 24px 0;">[ Site officiel ](https://beszel.dev/) [ Dépôt GitHub ](https://github.com/henrygd/beszel)</div>Beszel est un outil de supervision léger qui permet de surveiller plusieurs serveurs depuis une interface web centralisée

Il permet notamment de suivre :

- L'utilisation du processeur
- L'utilisation de la mémoire vive
- L'espace disque disponible
- L'activité du réseau
- Les conteneurs Docker de la machine (s'il y en a)
- L'historique des ressources
- L'état général

[![image.png](https://librenard.fr/wiki/uploads/images/gallery/2026-06/scaled-1680-/ojAimage.png)](https://librenard.fr/wiki/uploads/images/gallery/2026-06/ojAimage.png)

[![image.png](https://librenard.fr/wiki/uploads/images/gallery/2026-06/scaled-1680-/Rabimage.png)](https://librenard.fr/wiki/uploads/images/gallery/2026-06/Rabimage.png)

Dans mon cas, j'ai installé Beszel sur un Mac Mini en utilisant Docker Compose

Le Mac Mini sert de serveur central pour héberger l'interface. Les autres serveurs, comme celui qui héberge ce wiki, sont surveillés grâce à l'installation d'un agent

#### Principe de fonctionnement

Beszel fonctionne avec deux éléments principaux :

- Le **Hub**
- L'**Agent**

Le hub correspond à l'interface web principale, c'est elle qui est hebergée sur le Mac Mini. C'est depuis cette interface que l'on peut consulter l'état des serveurs surveillés.

L'agent lui est installé sur chaque serveur que l'on souhaite monitorer. Il récupère les informations de la machine puis les transmet au Hub

[![mermaid-diagram.png](https://librenard.fr/wiki/uploads/images/gallery/2026-06/scaled-1680-/mermaid-diagram.png)](https://librenard.fr/wiki/uploads/images/gallery/2026-06/mermaid-diagram.png)

# Installation de Beszel

### Prérequis

Pour cette installation, il faut :

- Une machine/serveur disposant de Docker
- Docker Compose d'installé
- Un accès SSH aux serveurs à surveiller
- Un accès administrateur sur les machines concernées
- *Et bien évidemment, un navigateur web pour accéder à l'interface*

<p class="callout info">*Beszel peut être aussi installé autrement (par exemple avec un binaire sur Linux etc.) mais ce guide se concentre sur une installation via Docker Compose*</p>

Ma configuration actuelle pour le projet est un hub Beszel installé sur un Mac Mini M1 via Docker Compose, l'interface utilise le port 8090

### Installation du Hub Beszel

Sur le Mac Mini, j'ai commencé par créer un dossier dédié :

```bash
mkdir -p ~/docker/beszel
cd ~/docker/beszel
```

J'ai ensuite créé dans ce dossier le fichier `docker-compose.yml`

```bash
nano docker-compose.yml
```

Puis j'y ai ajouté la configuration suivante :

```yaml
services:
  beszel:
    image: henrygd/beszel
    container_name: beszel
    restart: unless-stopped
    environment:
      - APP_URL=http://localhost:8090
    ports:
      - 8090:8090
    volumes:
      - ./beszel_data:/beszel_data
```

Cette configuration permet de lancer Beszel sur le port `8090`

Le dossier `beszel_data` permet de conserver les données de Beszel même après un redémarrage ou si je recrée le conteneur

<span>Là, j’ai mis la variable </span>`<span>APP_URL</span>`<span> avec localhost, car je n’utilise pas de domaine pour y accéder, mais si jamais j’utilisais un domaine, j’aurais dû changer cette valeur.</span>

---

<span>Une fois la configuration prête, j'ai démarré le conteneur :</span>

```bash
docker compose up -d
```

<span>Et j'ai vérifié qu'il était bien lancé :</span>

```bash
docker ps
```

Je peux utiliser aussi l'interface de Portainer pour voir si tout va bien !

[![image.png](https://librenard.fr/wiki/uploads/images/gallery/2026-06/scaled-1680-/S9Uimage.png)](https://librenard.fr/wiki/uploads/images/gallery/2026-06/S9Uimage.png)

# Utilisation de Beszel

### Accès a l'interface web

Maintenant que le conteneur est créé et lancé, l'interface web devrait être accessible à l'adresse suivante :

**http://IP\_DU\_MAC\_MINI:8090**

Lors du premier accès, on me demande de créer un compte administrateur en renseignant :

- Un nom d'utilisateur
- Une adresse mail
- Un mot de passe

[![image.png](https://librenard.fr/wiki/uploads/images/gallery/2026-06/scaled-1680-/ZqZimage.png)](https://librenard.fr/wiki/uploads/images/gallery/2026-06/ZqZimage.png)

### Installation de l'agent Beszel sur un serveur Linux/Windows

Pour chaque serveur à surveiller (par exemple celui du wiki), je dois installer un agent.

Depuis l'interface web de Beszel, j'ai ajouté un nouveau serveur en cliquant sur "Ajouter Système" en haut à droite.

[![5d5image.png](https://librenard.fr/wiki/uploads/images/gallery/2026-06/scaled-1680-/fFs5d5image.png)](https://librenard.fr/wiki/uploads/images/gallery/2026-06/fFs5d5image.png)

Dans la fenêtre qui s'est ouverte, j'ai renseigné le nom de la machine (c'est le nom qui s'affichera ensuite dans l'interface de Beszel) ainsi que son adresse IP, pour tout le reste, j'ai laissé par défaut.

Une fois ces informations remplies, j'ai cliqué sur "Copier la commande Linux" en bas à gauche. Beszel génère automatiquement une commande d'installation  
  
Pour une machine Windows, j'aurais pu aller dans le menu déroulant et sélectionner l'option "Copier la commande Windows".

Voici à quoi ressemble une de ces commandes :

```bash
curl -sL https://get.beszel.dev -o /tmp/install-agent.sh && chmod +x /tmp/install-agent.sh && /tmp/install-agent.sh -p 45876 -k "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAH1QasJRwqolr23o2dAHYQeL2Z9avr2m9dVoT74zP9s" -t "1614ac7b-f00c-4221-a5f9-a5ae3fc4bb02" -url "http://localhost:8090"
```

Je me suis connecté en SSH sur le serveur, puis j'ai simplement exécuté la commande fournie. Celle-ci commence par télécharger le script d'installation depuis le site officiel (`curl -sL https://get.beszel.dev -o /tmp/install-agent.sh`), ensuite donne les droits d'exécution (`chmod +x`). Enfin, elle lance le script avec plusieurs paramètres : Le port utilisé par l'agent (`-p 45876`), la clé publique SSH permettant au hub de s’authentifier (`-k`), le token d’enregistrement unique (`-t`) qui associe l’agent au bon hub, ainsi que l’URL du hub Beszel (`-url`). Une fois exécutée, cette commande installe et démarre automatiquement l’agent, qui se connecte ensuite au hub pour remonter les informations du serveur.

<p class="callout warning">Attention : comme j’ai utilisé `localhost` dans la configuration précédente, la commande générée contient également `http://localhost:8090`. Il faut impérativement remplacer cette adresse par l’adresse IP réelle du Mac mini (par exemple `http://192.168.x.x:8090`), sinon l’agent ne pourra pas se connecter au Hub.</p>

J'ai ensuite cliqué sur "Ajouter système" pour faire en sorte que ça prennes en compte que je souhaite ajouter cette machine avec ces paramètres. Le serveur apparait alors comme actif dans l'interface Beszel, sans configuration manuelle supplémentaire

## Surveillance Docker et gestion de Beszel

L’agent Beszel peut remonter les informations des conteneurs Docker via le socket monté en lecture seule :

```bash
- /var/run/docker.sock:/var/run/docker.sock:ro
```

Cela permet de visualiser dans l’interface les conteneurs actifs, leur consommation (CPU, mémoire, réseau) et leur état.

### Exemple avec le serveur du wiki

Le serveur du wiki est surveillé pour suivre rapidement CPU, mémoire, disque, réseau et activité Docker. Cela permet de détecter facilement un comportement anormal.

[![image.png](https://librenard.fr/wiki/uploads/images/gallery/2026-06/scaled-1680-/lgrimage.png)](https://librenard.fr/wiki/uploads/images/gallery/2026-06/lgrimage.png)

### Résultat

Beszel offre une vue simple et rapide de l’état des serveurs. Idéal pour un homelab, il permet de surveiller efficacement sans solution lourde, même si des outils comme Zabbix restent plus adaptés pour des besoins avancés.