Eseguire l’edizione server 24/7

Una build headless per un monitoraggio continuo, sempre attivo — senza interfaccia. Eseguila in Docker o installala su Windows Server / Windows 11, Debian/Ubuntu (.deb) o Fedora (.rpm). Coperta dalla tua licenza esistente.

Beta
DeviceShelf server dashboard — 43 devices with vendors, open ports and response times
La dashboard: tutta la rete a colpo d'occhio — ogni dispositivo con produttore, tipo, porte aperte e tempo di risposta.
DeviceShelf server security findings — exposed Docker API, VNC, SNMP and SMB
La vista sicurezza: risultati prioritizzati — servizi esposti, configurazioni deboli e credenziali predefinite, ciascuno con una gravità.

Cosa fa l'edizione server

Monitoraggio continuo

Funziona headless 24/7 e tiene d'occhio le reti che ti interessano, anche a desktop spento.

Monitoraggio uptime e SLA

Disponibilità giornaliera per dispositivo e servizio, con tentativi, dipendenze ed esportazione CSV.

Avvisi senza diluvio

Email/SMTP, ntfy, Gotify e webhook — con instradamento per gravità e raggruppamento in digest.

Pagina di stato pubblica

Una pagina di stato facoltativa di sola lettura, visibile a tutti — senza login.

Rilevamento tra sottoreti

Supporto SNMP e multi-NIC per raggiungere reti oltre il segmento locale.

Chiedi alla tua IA (MCP)

Esponi il tuo inventario in tempo reale a un assistente IA — rigorosamente locale, di sola lettura, disattivato per impostazione predefinita.

Docker più semplice

Salva questo come docker-compose.yml ed esegui docker compose up -d. network_mode: host le permette di vedere la tua rete; le due capacità sono spiegate sotto:

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

Perché queste capacità? DeviceShelf Server identifica i dispositivi in parte tramite la loro impronta DHCP e ascolta passivamente sulla porta UDP 67. Poiché il container viene eseguito deliberatamente come utente non privilegiato (uid 10001), aprire quella porta di sistema richiede la capacità ristretta NET_BIND_SERVICE — niente root, niente NET_ADMIN, solo l’apertura di porte basse. Senza di essa il server si avvia normalmente, solo senza l’identificazione DHCP/Fingerbank. NET_RAW serve per la scansione ARP.

Debian / Ubuntu (.deb)

Installa dal terminale — non fare doppio clic. Su Ubuntu 24.04 un .deb aperto con doppio clic si apre nell’App Center, che con i pacchetti di terze parti può fallire silenziosamente. Il terminale risolve le dipendenze e avvia il servizio deviceshelf-server:

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

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

Su ARM (Raspberry Pi, server ARM) usa il file -arm64.deb.

Windows Server / Windows 11 beta

Scarica lo zip, estrailo e fai doppio clic su install.bat — conferma la richiesta di amministratore di Windows (UAC). Il servizio 24/7 viene installato e avviato, poi vengono mostrati l'URL della dashboard e il token di accesso e la dashboard si apre. Disinstalla con uninstall.bat.

Scarica per Windows (amd64)

Questa beta non è ancora firmata, quindi Windows può avvisare: su SmartScreen clicca Ulteriori informazioni → Esegui comunque; se Smart App Control è attivo, blocca del tutto le app non firmate finché non rilasciamo una build firmata. Prima di estrarre, clic destro sullo zip → Proprietà → spunta Annulla blocco. Tutti i dettagli sono nel README dentro lo zip (7 lingue). Il fingerprinting DHCP passivo non è disponibile su Windows; tutto il resto — scansione, monitoraggio, SNMP, avvisi, dashboard, API — è incluso.

Primo avvio: il token di accesso

Al primo avvio il server scrive un token API generato automaticamente nel suo log. Prendilo, poi apri l’interfaccia web sulla porta 8088 e incollalo:

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

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

Poi apri http://<host>:8088 nel browser e incolla il token.

Notifiche e-mail (SMTP)

Aggiungi il tuo account di posta come mittente nelle impostazioni di avviso della dashboard. Per i provider comuni — Gmail, Yahoo, Outlook/Hotmail, iCloud, GMX e altri — lascia vuoto il campo del server SMTP; DeviceShelf rileva automaticamente il server giusto. A causa dell'accesso a due fattori, Gmail, Yahoo e Outlook richiedono una password per app (creata nelle impostazioni di sicurezza del tuo account), non la tua password abituale. Per qualsiasi altro provider o server self-hosted, inserisci server SMTP, porta e sicurezza. Gli avvisi vengono quindi inviati tramite il tuo account ai destinatari indicati.

Chiedi alla tua IA della tua rete MCP

Il server può esporre il tuo inventario in tempo reale a un assistente IA tramite il Model Context Protocol — così puoi chiedere «cosa è online in questo momento?», «quali certificati scadono presto?» o «cosa è vulnerabile?» e ottenere risposte dai tuoi stessi dati. È strettamente locale: l'endpoint gira dentro il tuo server, dietro lo stesso token, raggiungibile solo sulla tua LAN — non c'è alcun connettore cloud DeviceShelf. Disattivato per impostazione predefinita, di sola lettura e incluso nella tua licenza (funziona anche durante la prova).

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

Consulta l'annuncio per l'elenco completo degli strumenti e la configurazione. Le azioni di scrittura (rinominare un dispositivo, confermare un allarme, avviare una scansione) restano disattivate se non le abiliti esplicitamente.

Collega il tuo agente IA MCP

Attiva prima MCP (sopra), poi punta il tuo client IA all'endpoint /mcp del server con il tuo token API. Sostituisci <host> e <token> sotto. La maggior parte dei client parla Streamable HTTP nativamente:

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

I connettori di ChatGPT girano nel cloud di OpenAI e non possono raggiungere direttamente un server LAN. Per usarli, metti il server dietro un tunnel HTTPS pubblico (Secure MCP Tunnel di OpenAI, ngrok o Cloudflare Tunnel) così da avere un indirizzo https://…/mcp. Per una configurazione strettamente locale, preferisci uno dei client sopra.

È una beta

L’edizione server è nuova — aspettati qualche imperfezione. Hai trovato un bug o vuoi una funzione? Scrivici — il tuo feedback la plasma. Vedi le note di rilascio per i contenuti di questa build.