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