Fai girare il tuo server di monitoraggio di rete
Installa l'edizione headless su un host Linux, Windows o Docker e DeviceShelf diventa un collector locale per scoperta dei dispositivi, uptime/SLA, salute dell'infrastruttura, controlli dei servizi, heartbeat, avvisi, report, automazione via API, Prometheus e MCP. Stessa licenza di desktop e mobile.
Cosa fa l'edizione server
Monitoraggio sempre attivo
Gira headless 24/7 e continua a sorvegliare le reti a cui tieni — anche quando il tuo desktop è spento.
Tracciamento uptime & SLA
Disponibilità giornaliera per dispositivo e servizio, con tentativi ripetuti, dipendenze ed export CSV.
Avvisi senza il diluvio
E-mail/SMTP, ntfy, Gotify e webhook — con instradamento per gravità e raggruppamento in digest.
Pagina di stato pubblica
Una pagina di salute in sola lettura, opzionale, che chiunque può vedere — senza login.
Scoperta 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, in sola lettura, disattivato di default.
Report, stato e backup
Percentuale di uptime, barre di disponibilità giornaliere, export CSV, pagina di stato pubblica in sola lettura e import/export della configurazione.
API REST e Prometheus
Tutto è programmabile tramite l'API protetta da token, con `/metrics` per Grafana e l'automazione.
Home Assistant
Pubblica i tuoi dispositivi in Home Assistant via MQTT. Presenza, produttore e tipo, più eventi di rete a cui un'automazione può reagire.
Docker il più semplice
Salva questo come docker-compose.yml e avvia docker compose up -d. network_mode: host gli permette di vedere la tua LAN; le due capability sono spiegate sotto.
services:
deviceshelf:
image: ghcr.io/wealthwallet/deviceshelf-server:1.9.4
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 capability? DeviceShelf Server identifica i dispositivi in parte dalla loro impronta DHCP e ascolta passivamente la porta UDP 67. Poiché il container gira deliberatamente come utente non privilegiato (uid 10001), collegare quella porta di sistema richiede la capability ristretta NET_BIND_SERVICE — niente root, niente NET_ADMIN, solo l'apertura di porte basse. Senza di essa il server si avvia comunque normalmente, solo senza 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 con doppio clic si apre nell'App Center, che può fallire in silenzio per i pacchetti di terze parti. 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.
macOS Server (.pkg)
Scarica e apri il pacchetto universale. Installa il server come LaunchDaemon in background e lo tiene in esecuzione dopo il login. La dashboard è disponibile sulla porta 8088; gli aggiornamenti preservano i dati del server e creano prima un backup verificato.
Windows Server / Windows 11
Scarica lo zip, estrailo e fai doppio clic su install.bat — conferma la richiesta di amministratore di Windows (UAC). Installa e avvia il servizio 24/7, poi mostra l'URL della dashboard e il token di accesso e apre la dashboard. Disinstalla con uninstall.bat.
La build per Windows non è ancora firmata, quindi Windows potrebbe avvisare: su SmartScreen fai clic su 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, puoi fare clic destro sullo zip → Proprietà → spuntare Sblocca. 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 stampa 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 via e-mail (SMTP)
Aggiungi il tuo account di posta come mittente nelle impostazioni degli avvisi della dashboard. Per i provider comuni — Gmail, Yahoo, Outlook/Hotmail, iCloud, GMX e altri — lascia vuoto il campo del server SMTP; DeviceShelf rileva il server giusto automaticamente. A causa dell'accesso a due fattori, Gmail, Yahoo e Outlook richiedono una password per app (creata nelle impostazioni di sicurezza del tuo account di posta), non la tua password normale. Per qualsiasi altro provider o self-hosted, inserisci server SMTP, porta e sicurezza. Gli avvisi vengono poi inviati tramite il tuo account ai destinatari che indichi.
Sorveglianza esterna
Ogni avviso di DeviceShelf parte dal tuo computer, quindi nessuno di essi ti raggiunge quando è proprio quel computer a mancare: blackout, crash, linea morta. La sorveglianza esterna copre esattamente questo caso. In Impostazioni → Sorveglianza esterna incolli l'URL di heartbeat di un servizio di monitoraggio; DeviceShelf lo chiama ogni 60 secondi e, quando le chiamate si interrompono, quel servizio ti avvisa. Puoi usare Healthchecks.io, UptimeRobot (monitor Heartbeat), Better Stack, Cronitor o un ricevitore tuo — tutti hanno un piano gratuito che basta per una rete domestica. Imposta lì il periodo di tolleranza su circa il triplo dell'intervallo e premi una volta Invia ping di prova per confermare che tutto funziona.
Questo servizio non lo gestiamo noi, ed è una scelta. Un sistema di sorveglianza deve essere più disponibile di ciò che sorveglia e deve stare fuori dalla tua rete: l'esatto contrario di ciò per cui DeviceShelf è nato.
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 adesso?», «quali certificati scadono presto?» o «cosa è vulnerabile?» e ottenere risposte dai tuoi dati. È rigorosamente locale: l'endpoint gira dentro il tuo server, dietro lo stesso token, raggiungibile solo sulla tua LAN — non c'è alcun connettore cloud DeviceShelf. Disattivato di default, in sola lettura e incluso nella tua licenza (funziona anche nella 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>)
Vedi 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 a meno che non le attivi 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 in modo nativo:
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 sulla LAN. Per usarli, metti il server dietro un tunnel HTTPS pubblico (Secure MCP Tunnel di OpenAI, ngrok o Cloudflare Tunnel) così ha un indirizzo https://…/mcp. Per una configurazione rigorosamente locale, preferisci uno dei client sopra.
Pronto per l'uso continuo
L'edizione server fa ora parte della normale linea di prodotti DeviceShelf. Si muove ancora in fretta, ma il posizionamento è semplice: falla girare in continuo, tieni i tuoi dati in locale e usa la stessa chiave di licenza delle app desktop e mobile. Vedi le note di rilascio per cosa è cambiato in questa build.
Per il quadro generale, il monitoraggio di rete self-hosted spiega cosa ti offre eseguire la sorveglianza sul tuo hardware rispetto a una dashboard cloud.