Die 24/7-Server-Edition betreiben

Ein headless Build für durchgehende Überwachung rund um die Uhr — ohne GUI. Betreibe sie in Docker oder installiere sie auf Windows Server / Windows 11, Debian/Ubuntu (.deb) oder Fedora (.rpm). Von deiner bestehenden Lizenz abgedeckt.

Beta
DeviceShelf server dashboard — 43 devices with vendors, open ports and response times
Das Dashboard: dein ganzes Netzwerk auf einen Blick — jedes Gerät mit Hersteller, Typ, offenen Ports und Antwortzeit.
DeviceShelf server security findings — exposed Docker API, VNC, SNMP and SMB
Die Sicherheitsansicht: priorisierte Funde — exponierte Dienste, schwache Konfigurationen und Standard-Zugangsdaten, je mit Schweregrad.

Was die Server-Edition kann

Dauerüberwachung

Läuft headless rund um die Uhr und behält die Netzwerke im Blick, die dir wichtig sind — auch wenn dein Desktop aus ist.

Uptime- & SLA-Tracking

Tägliche Verfügbarkeit pro Gerät und Dienst, mit Retries, Abhängigkeiten und CSV-Export.

Alarme ohne Flut

E-Mail/SMTP, ntfy, Gotify und Webhooks — mit Schweregrad-Routing und Digest-Bündelung.

Öffentliche Status-Seite

Eine optionale, schreibgeschützte Status-Seite, die jeder sehen kann — ohne Login.

Subnetz-übergreifende Erkennung

SNMP- und Multi-NIC-Unterstützung, um Netzwerke jenseits des lokalen Segments zu erreichen.

Frag deine KI (MCP)

Gib einem KI-Assistenten Zugriff auf dein Live-Inventar — strikt lokal, schreibgeschützt, standardmäßig aus.

Docker am einfachsten

Speichere das als docker-compose.yml und starte docker compose up -d. network_mode: host lässt sie dein LAN sehen; die beiden Capabilities sind unten erklärt:

services:
  deviceshelf:
    image: ghcr.io/wealthwallet/deviceshelf-server:1.5.15
    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>" }

Wozu diese Capabilities? DeviceShelf Server identifiziert Geräte u. a. über ihren DHCP-Fingerprint und lauscht dafür passiv auf UDP-Port 67. Da der Container bewusst als nicht-privilegierter Benutzer (uid 10001) läuft, braucht das Binden dieses System-Ports die eng begrenzte Capability NET_BIND_SERVICE — kein Root, kein NET_ADMIN, nur das Öffnen niedriger Ports. Ohne sie startet der Server normal weiter, nur ohne DHCP-/Fingerbank-Identifikation. NET_RAW ist für den ARP-Scan.

Debian / Ubuntu (.deb)

Im Terminal installieren — nicht doppelklicken. Unter Ubuntu 24.04 öffnet eine doppelgeklickte .deb das App Center, das bei Dritt-Paketen kommentarlos fehlschlagen kann. Das Terminal löst Abhängigkeiten auf und startet den deviceshelf-server-Dienst:

.deb herunterladen — amd64 (Intel/AMD) .deb herunterladen — arm64 (Raspberry Pi)

sudo apt install ./DeviceShelf-Server-*.deb

Auf ARM (Raspberry Pi, ARM-Server) die -arm64.deb-Datei nehmen.

Windows Server / Windows 11 beta

Zip herunterladen, entpacken und install.bat doppelklicken — die Windows-Admin-Nachfrage (UAC) bestätigen. Der 24/7-Dienst wird installiert und gestartet, danach werden Dashboard-URL und Zugangs-Token angezeigt und das Dashboard geöffnet. Deinstallieren mit uninstall.bat.

Für Windows herunterladen (amd64)

Diese Beta ist noch nicht signiert, daher warnt Windows evtl.: bei SmartScreen auf Weitere Informationen → Trotzdem ausführen; ist Smart App Control aktiv, blockiert es unsignierte Apps komplett, bis wir einen signierten Build ausliefern. Vor dem Entpacken kannst du per Rechtsklick auf die Zip → Eigenschaften → Zulassen ankreuzen. Alle Details stehen in der README in der Zip (7 Sprachen). Passives DHCP-Fingerprinting ist unter Windows nicht verfügbar; alles andere — Scannen, Monitoring, SNMP, Alarme, Dashboard, API — ist dabei.

Erster Start: der Zugriffs-Token

Beim ersten Start schreibt der Server einen automatisch generierten API-Token ins Log. Hol ihn dir, öffne dann die Web-UI auf Port 8088 und füge ihn ein:

# .deb / systemd:
journalctl -u deviceshelf-server | grep -iA1 auto-generated

# Docker:
docker logs deviceshelf-server | grep -iA1 auto-generated

Dann http://<host>:8088 im Browser öffnen und den Token einfügen.

E-Mail-Benachrichtigungen (SMTP)

Hinterlege in den Alarm-Einstellungen des Dashboards dein eigenes Mail-Konto als Absender. Bei gängigen Anbietern — Gmail, Yahoo, Outlook/Hotmail, iCloud, GMX u. a. — lässt du das SMTP-Server-Feld leer; DeviceShelf erkennt den richtigen Server automatisch. Wegen der Zwei-Faktor-Anmeldung verlangen Gmail, Yahoo und Outlook ein App-Passwort (in den Sicherheitseinstellungen deines Mail-Kontos erstellt), nicht dein normales Passwort. Bei jedem anderen oder selbst gehosteten Anbieter trägst du SMTP-Server, Port und Sicherheit ein. Die Alarme werden dann über dein Konto an die eingetragenen Empfänger verschickt.

Frag deine KI über dein Netzwerk MCP

Der Server kann dein Live-Inventar über das Model Context Protocol einer KI zugänglich machen — so kannst du fragen: „Was ist gerade online?“, „Welche Zertifikate laufen bald ab?“ oder „Was ist verwundbar?“ und bekommst Antworten aus deinen eigenen Daten. Es ist strikt lokal: Der Endpunkt läuft in deinem Server, hinter demselben Token, erreichbar nur in deinem LAN — es gibt keinen DeviceShelf-Cloud-Connector. Standardmäßig aus, nur lesend und in deiner Lizenz enthalten (funktioniert auch in der Testphase).

# 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>)

Siehe die Ankündigung für die vollständige Tool-Liste und Einrichtung. Schreib-Aktionen (Gerät umbenennen, Alarm quittieren, Scan auslösen) bleiben aus, bis du sie ausdrücklich aktivierst.

KI-Agent verbinden MCP

Aktiviere zuerst MCP (oben), dann richte deinen KI-Client auf den /mcp-Endpoint des Servers mit deinem API-Token. Ersetze unten <host> und <token>. Die meisten Clients sprechen Streamable HTTP nativ:

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>" }
} } }

Clinecline_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 Desktopclaude_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>" }
} } }

ChatGPT-Connectors laufen in OpenAIs Cloud und erreichen einen LAN-Server nicht direkt. Dafür muss der Server hinter einem öffentlichen HTTPS-Tunnel liegen (OpenAIs Secure MCP Tunnel, ngrok oder Cloudflare Tunnel), damit er eine https://…/mcp-Adresse hat. Für ein rein lokales Setup nimm besser einen der Clients oben.

Es ist eine Beta

Die Server-Edition ist neu — rechne mit ein paar Ecken und Kanten. Fehler gefunden oder ein Feature-Wunsch? Schreib uns — dein Feedback bestimmt die Richtung. Was in diesem Build steckt, steht in den Release-Notes.