Faites tourner votre propre serveur de surveillance réseau
Installez l'édition headless sur un hôte Linux, Windows ou Docker et DeviceShelf devient un collecteur local pour la découverte d'appareils, l'uptime/SLA, la santé de l'infrastructure, les vérifications de services, les heartbeats, les alertes, les rapports, l'automatisation par API, Prometheus et MCP. Même licence que le bureau et le mobile.
Ce que fait l'édition serveur
Surveillance permanente
Tourne en headless 24/7 et garde un œil sur les réseaux qui comptent — même quand votre ordinateur est éteint.
Suivi d'uptime & SLA
Disponibilité quotidienne par appareil et service, avec relances, dépendances et export CSV.
Des alertes sans le déluge
E-mail/SMTP, ntfy, Gotify et webhooks — avec routage par gravité et regroupement en digest.
Page de statut publique
Une page de santé en lecture seule, optionnelle, visible par tous — sans connexion.
Découverte inter-sous-réseaux
Prise en charge SNMP et multi-NIC pour atteindre des réseaux au-delà du segment local.
Demandez à votre IA (MCP)
Exposez votre inventaire en direct à un assistant IA — strictement local, en lecture seule, désactivé par défaut.
Rapports, statut et sauvegarde
Pourcentage d'uptime, barres de disponibilité quotidiennes, export CSV, page de statut publique en lecture seule et import/export de configuration.
API REST et Prometheus
Tout est scriptable via l'API protégée par jeton, avec `/metrics` pour Grafana et l'automatisation.
Home Assistant
Publie vos appareils dans Home Assistant via MQTT. Présence, fabricant et type, plus des événements réseau auxquels une automatisation peut réagir.
Docker le plus simple
Enregistrez ceci sous docker-compose.yml et lancez docker compose up -d. network_mode: host lui permet de voir votre LAN ; les deux capacités sont expliquées ci-dessous.
services:
deviceshelf:
image: ghcr.io/wealthwallet/deviceshelf-server:1.9.12
network_mode: host
cap_add:
- NET_RAW # ARP scan (raw sockets)
- NET_BIND_SERVICE # passive DHCP fingerprinting (UDP/67) → Fingerbank
volumes:
- ./data:/data # chown 10001:10001 ./data
restart: unless-stopped
# optional: environment: { DEVICESHELF_FINGERBANK_KEY: "<free key from fingerbank.org>" }
Pourquoi ces capacités ? DeviceShelf Server identifie les appareils en partie par leur empreinte DHCP et écoute passivement le port UDP 67. Comme le conteneur tourne délibérément en utilisateur non privilégié (uid 10001), lier ce port système nécessite la capacité étroitement limitée NET_BIND_SERVICE — pas de root, pas de NET_ADMIN, juste l'ouverture de ports bas. Sans elle, le serveur démarre quand même normalement, mais sans identification DHCP/Fingerbank. NET_RAW sert au scan ARP.
Debian / Ubuntu (.deb)
Installez depuis le terminal — ne double-cliquez pas. Sur Ubuntu 24.04, un .deb double-cliqué s'ouvre dans l'App Center, qui peut échouer en silence pour les paquets tiers. Le terminal résout les dépendances et démarre le service deviceshelf-server :
Télécharger .deb — amd64 (Intel/AMD) Télécharger .deb — arm64 (Raspberry Pi)
sudo apt install ./DeviceShelf-Server-*.deb
Sur ARM (Raspberry Pi, serveurs ARM), utilisez le fichier -arm64.deb.
macOS Server (.pkg)
Téléchargez et ouvrez le paquet universel. Il installe le serveur comme LaunchDaemon d'arrière-plan et le maintient actif après la connexion. Le tableau de bord est disponible sur le port 8088 ; les mises à jour préservent les données du serveur et créent d'abord une sauvegarde vérifiée.
Windows Server / Windows 11
Téléchargez le zip, extrayez-le et double-cliquez install.bat — confirmez l'invite d'administrateur Windows (UAC). Il installe et démarre le service 24/7, puis affiche l'URL du tableau de bord et le jeton d'accès et ouvre le tableau de bord. Désinstallez avec uninstall.bat.
Télécharger pour Windows (amd64)
La version Windows n'est pas encore signée, donc Windows peut avertir : sur SmartScreen, cliquez Informations complémentaires → Exécuter quand même ; si Smart App Control est activé, il bloque entièrement les apps non signées jusqu'à ce que nous livrions une version signée. Avant d'extraire, vous pouvez faire un clic droit sur le zip → Propriétés → cocher Débloquer. Tous les détails sont dans le README du zip (7 langues). L'empreinte DHCP passive n'est pas disponible sur Windows ; tout le reste — scan, surveillance, SNMP, alertes, tableau de bord, API — est inclus.
Premier démarrage : le jeton d'accès
Au premier démarrage, le serveur imprime un jeton d'API généré automatiquement dans son journal. Récupérez-le, puis ouvrez l'interface web sur le port 8088 et collez-le :
# .deb / systemd:
journalctl -u deviceshelf-server | grep -iA1 auto-generated
# Docker:
docker logs deviceshelf-server | grep -iA1 auto-generated
Ouvrez ensuite http://<host>:8088 dans votre navigateur et collez le jeton.
Notifications par e-mail (SMTP)
Ajoutez votre propre compte mail comme expéditeur dans les réglages d'alertes du tableau de bord. Pour les fournisseurs courants — Gmail, Yahoo, Outlook/Hotmail, iCloud, GMX et d'autres — laissez le champ serveur SMTP vide ; DeviceShelf détecte le bon serveur automatiquement. À cause de l'authentification à deux facteurs, Gmail, Yahoo et Outlook exigent un mot de passe d'application (créé dans les réglages de sécurité de votre compte mail), pas votre mot de passe normal. Pour tout autre fournisseur ou un serveur auto-hébergé, renseignez le serveur SMTP, le port et la sécurité. Les alertes sont ensuite envoyées via votre compte aux destinataires que vous indiquez.
Surveillance externe
Toutes les alertes de DeviceShelf partent de votre propre machine : aucune ne vous parvient quand c'est justement cette machine qui lâche — coupure de courant, plantage, ligne morte. La surveillance externe couvre ce cas précis. Dans Réglages → Surveillance externe, collez l'URL de heartbeat d'un service de monitoring ; DeviceShelf l'appelle toutes les 60 secondes, et dès que les appels s'arrêtent, ce service vous alerte. Utilisez Healthchecks.io, UptimeRobot (moniteur Heartbeat), Better Stack, Cronitor ou votre propre récepteur — tous proposent une formule gratuite suffisante pour un réseau domestique. Réglez-y le délai de grâce sur environ trois fois l'intervalle, puis appuyez une fois sur Envoyer un ping de test pour vérifier que tout est branché.
Nous n'hébergeons volontairement pas ce service. Une surveillance doit être plus disponible que ce qu'elle surveille et se trouver hors de votre réseau — l'inverse exact de ce pour quoi DeviceShelf est conçu.
Interrogez votre IA sur votre réseau MCP
Le serveur peut exposer votre inventaire en direct à un assistant IA via le Model Context Protocol — vous pouvez ainsi demander « qu'est-ce qui est en ligne maintenant ? », « quels certificats expirent bientôt ? » ou « qu'est-ce qui est vulnérable ? » et obtenir des réponses depuis vos propres données. C'est strictement local : le point d'accès tourne dans votre serveur, derrière le même jeton, joignable uniquement sur votre LAN — il n'y a pas de connecteur cloud DeviceShelf. Désactivé par défaut, en lecture seule, et inclus dans votre licence (fonctionne aussi en essai).
# enable in /etc/deviceshelf/server.env (or your Docker env):
DEVICESHELF_MCP_ENABLE=true
# then point Claude Desktop at it via the mcp-remote bridge:
# http://<host>:8088/mcp (Authorization: Bearer <your-token>)
Voyez l'annonce pour la liste complète des outils et la configuration. Les actions d'écriture (renommer un appareil, acquitter une alarme, lancer un scan) restent désactivées sauf si vous les activez explicitement.
Connectez votre agent IA MCP
Activez d'abord MCP (ci-dessus), puis pointez votre client IA vers le point d'accès /mcp du serveur avec votre jeton d'API. Remplacez <host> et <token> ci-dessous. La plupart des clients parlent Streamable HTTP nativement :
Claude Code
claude mcp add --transport http deviceshelf http://<host>:8088/mcp \
--header "Authorization: Bearer <token>"
Cursor — ~/.cursor/mcp.json
{ "mcpServers": { "deviceshelf": {
"url": "http://<host>:8088/mcp",
"headers": { "Authorization": "Bearer <token>" }
} } }
VS Code (Copilot agent) — .vscode/mcp.json
{ "servers": { "deviceshelf": {
"type": "http",
"url": "http://<host>:8088/mcp",
"headers": { "Authorization": "Bearer <token>" }
} } }
Windsurf — ~/.codeium/windsurf/mcp_config.json (note: serverUrl)
{ "mcpServers": { "deviceshelf": {
"serverUrl": "http://<host>:8088/mcp",
"headers": { "Authorization": "Bearer <token>" }
} } }
Cline — cline_mcp_settings.json ("type": "streamableHttp" is required, else it falls back to SSE and fails)
{ "mcpServers": { "deviceshelf": {
"type": "streamableHttp",
"url": "http://<host>:8088/mcp",
"headers": { "Authorization": "Bearer <token>" }
} } }
Gemini CLI — ~/.gemini/settings.json (note: httpUrl)
{ "mcpServers": { "deviceshelf": {
"httpUrl": "http://<host>:8088/mcp",
"headers": { "Authorization": "Bearer <token>" }
} } }
Claude Desktop — claude_desktop_config.json. It has no native static-token remote support, so bridge it with mcp-remote (keep --allow-http for plain http; the token goes in an env var to avoid a Windows arg-quoting bug). Fully quit and relaunch after saving.
{ "mcpServers": { "deviceshelf": {
"command": "npx",
"args": ["-y", "mcp-remote", "http://<host>:8088/mcp",
"--transport", "http-only", "--allow-http",
"--header", "Authorization:${AUTH}"],
"env": { "AUTH": "Bearer <token>" }
} } }
Les connecteurs ChatGPT tournent dans le cloud d'OpenAI et ne peuvent pas joindre directement un serveur LAN. Pour les utiliser, placez le serveur derrière un tunnel HTTPS public (Secure MCP Tunnel d'OpenAI, ngrok ou Cloudflare Tunnel) pour qu'il ait une adresse https://…/mcp. Pour une configuration strictement locale, préférez un des clients ci-dessus.
Prêt pour un usage permanent
L'édition serveur fait désormais partie de la gamme DeviceShelf classique. Elle évolue encore vite, mais le positionnement est simple : faites-la tourner en continu, gardez vos données en local et utilisez la même clé de licence que les apps bureau et mobile. Voyez les notes de version pour ce qui a changé dans cette version.
Pour la vue d'ensemble, la supervision réseau auto-hébergée explique ce que vous gagnez à faire tourner la surveillance sur votre propre matériel plutôt que sur un tableau de bord cloud.