运行 7×24 服务器版
用于持续、全天候监控的无界面构建——没有图形界面。可在 Docker 中运行,或安装到 Windows Server / Windows 11、Debian/Ubuntu(.deb)或 Fedora(.rpm)。已包含在你现有的授权中。
测试版
服务器版能做什么
全天候监控
无界面全天候运行,持续监控你关心的网络——即使桌面端关闭。
正常运行时间与 SLA 跟踪
每台设备和服务的每日可用性,含重试、依赖关系和 CSV 导出。
告警不泛滥
邮件/SMTP、ntfy、Gotify 和 webhook——按严重级别路由并批量摘要。
公开状态页
可选的只读健康状态页,任何人都能查看——无需登录。
跨子网发现
支持 SNMP 和多网卡,可覆盖本地网段以外的网络。
询问你的 AI(MCP)
将实时清单开放给 AI 助手——严格本地、只读、默认关闭。
Docker 最简单
将以下内容保存为 docker-compose.yml 并运行 docker compose up -d。network_mode: host 让它能看到你的局域网;两个 capability 在下方说明:
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>" }
为什么需要这些 capability? DeviceShelf Server 部分通过设备的 DHCP 指纹进行识别,并被动监听 UDP 67 端口。由于容器有意以非特权用户(uid 10001)运行,绑定该系统端口需要范围很窄的 NET_BIND_SERVICE——无需 root,无需 NET_ADMIN,仅用于开放低位端口。没有它服务器仍可正常启动,只是没有 DHCP/Fingerbank 识别。NET_RAW 用于 ARP 扫描。
Debian / Ubuntu (.deb)
请在终端中安装——不要双击。 在 Ubuntu 24.04 上,双击 .deb 会在应用中心打开,对第三方软件包可能会静默失败。终端会解析依赖并启动 deviceshelf-server 服务:
下载 .deb — amd64(Intel/AMD) 下载 .deb — arm64(树莓派)
sudo apt install ./DeviceShelf-Server-*.deb
在 ARM(树莓派、ARM 服务器)上请使用 -arm64.deb 文件。
Windows Server / Windows 11 测试版
下载 zip 并解压,然后双击 install.bat——在 Windows 管理员提示(UAC)中确认。它会安装并启动 24/7 服务,随后显示仪表盘地址和访问令牌并打开仪表盘。卸载请用 uninstall.bat。
此测试版尚未进行代码签名,因此 Windows 可能会警告:在 SmartScreen 上点击更多信息 → 仍要运行;若智能应用控制已开启,它会完全拦截未签名应用,直到我们发布签名版本。解压前可右键 zip → 属性 → 勾选解除锁定。完整说明见 zip 内的 README(7 种语言)。被动 DHCP 指纹识别在 Windows 上不可用;其余功能——扫描、监控、SNMP、告警、仪表盘、API——均包含在内。
首次启动:访问令牌
首次启动时,服务器会在日志中打印一个自动生成的 API 令牌。取出它,然后在 8088 端口打开网页界面并粘贴:
# .deb / systemd:
journalctl -u deviceshelf-server | grep -iA1 auto-generated
# Docker:
docker logs deviceshelf-server | grep -iA1 auto-generated
然后在浏览器中打开 http://<host>:8088 并粘贴该令牌。
电子邮件通知(SMTP)
在仪表板的告警设置中,将你自己的邮箱账户添加为发件人。对于常见的提供商——Gmail、Yahoo、Outlook/Hotmail、iCloud、GMX 等——请将 SMTP 服务器字段留空;DeviceShelf 会自动识别正确的服务器。由于两步登录,Gmail、Yahoo 和 Outlook 需要应用专用密码(在邮箱账户的安全设置中创建),而不是你的常规密码。对于任何其他或自建的提供商,请填写 SMTP 服务器、端口和安全性。之后,告警将通过你的账户发送给你列出的收件人。
用 AI 询问你的网络 MCP
服务器可以通过 Model Context Protocol 将你的实时清单提供给 AI 助手——于是你可以问 “现在有哪些设备在线?”、“哪些证书即将过期?” 或 “哪些存在漏洞?”,并从你自己的数据中得到答案。它完全本地:端点运行在你的服务器内部,使用相同的令牌,仅可在你的局域网内访问——没有任何 DeviceShelf 云连接器。默认关闭、只读,并包含在你的授权中(试用期内同样可用)。
# 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>)
查看发布公告以获取完整的工具列表和设置说明。写入操作(重命名设备、确认告警、触发扫描)默认关闭,除非你明确启用。
连接你的 AI 代理 MCP
先启用 MCP(见上),然后用你的 API 令牌将 AI 客户端指向服务器的 /mcp 端点。替换下面的 <host> 和 <token>。大多数客户端原生支持 Streamable HTTP:
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>" }
} } }
ChatGPT 连接器运行在 OpenAI 的云端,无法直接访问局域网服务器。要使用它们,请将服务器置于公共 HTTPS 隧道之后(OpenAI 的 Secure MCP Tunnel、ngrok 或 Cloudflare Tunnel),使其拥有 https://…/mcp 地址。对于纯本地部署,建议使用上面的某个客户端。