DeepSHPlugins
dsh-server-deck 项目预览
GITHUB / COMMUNITY PROJECT

dsh-server-deck

客户端与终端JavaScriptMIT

DSH 服务器卡片仪表盘:每台主机展示在线状态、CPU、内存、磁盘与延迟,点卡片进入 xterm.js SSH 终端;支持导入 ~/.ssh/config,挂载为 better-sidebar 页签或独立右侧抽屉。

4 Starsmeyaomiao 更新时间 2026-09-04
访问 GitHub 仓库
dsh-server-deck 项目预览
dsh-server-deck 界面截图dsh-server-deck 界面截图dsh-server-deck 界面截图dsh-server-deck 界面截图

项目介绍

中文

DSH 服务器卡片仪表盘:每台主机展示在线状态、CPU、内存、磁盘与延迟,点卡片进入 xterm.js SSH 终端;支持导入 ~/.ssh/config,挂载为 better-sidebar 页签或独立右侧抽屉。

English

Server card dashboard for DSH: per-host status, CPU, memory, disk and latency, with one-click xterm.js SSH terminals; imports ~/.ssh/config and mounts as a better-sidebar tab or a standalone right drawer.

项目信息与收录信号

快照 2026-09-11
作者 / 组织
meyaomiao
仓库
meyaomiao/dsh-server-deck
GitHub Stars
4
Forks
0
开发语言
JavaScript
许可证
MIT
最近推送
2026-09-04
Manifest
数据中检测到声明

公开仓库不自动等于可商用;许可证与当前兼容性以原项目文档为准。Manifest 和数据评分不构成安装安全认证。

数据评分

55/ 100
维护活跃
96
文档与实用信息
50
生态关注度
20
安装便捷信号
100
项目声明信号
100

近 7 天仍在更新;关注度尚低(4);标准命令一键安装。

评分来自已有数据快照的五维模型,仅作浏览参考,不是实际使用评测或安全检测结论。

安装与使用

所有项目资料与许可均以对应 GitHub 仓库为准。

dsh plugin --profile web add github:meyaomiao/dsh-server-deck

复制命令不会自动执行。请先阅读仓库文档,确认环境要求与许可证。

项目截图

仓库 README

GitHub 原文

已保存的仓库文档快照;文档抓取时间未记录,可能与上方目录介绍处于不同版本。安装前请核对当前仓库说明。

DSH Server Deck 🖧

DeepSeek Harness 的服务器卡片仪表盘 —— 已连接服务器的卡片视图(在线状态 / CPU / 内存 / 磁盘 / 延迟),点卡片进入 xterm.js 交互终端;独立趋势视图记录并可视化一段时间的 CPU / 内存 / 磁盘变化。

Awesome DSH Plugin dsh-plugin npm license

服务器卡片仪表盘

✨ 功能一览

卡片式服务器仪表盘

每台服务器一张卡,状态一目了然:

元素说明
🟢🟡🔴⚪ 状态点在线(带呼吸光晕)/ 离线 / 探测中 / 未知
系统信息行OS 名称(Linux PRETTY_NAME / macOS 回退)、运行时长、核数、握手延迟
三条用量条CPU · 内存 · 磁盘,<60% 绿 / ≥60% 黄 / ≥85% 红
错误详情离线时内联展示失败原因(悬停看全文)

自动刷新周期可选 手动 / 10s / 15s / 30s / 60s(读主机侧快照,不再现场 SSH);「刷新」按钮强制立即探测一轮。

📈 趋势视图

卡片与趋势两个独立视图互相切换(不是叠在卡片里)。每台主机 CPU / 内存 / 磁盘各一张独立图(不叠线):

项说明
窗口1 小时(滚动,默认)/ 24 小时(滚动)/ 一周 / 一个月(本地自然日 0 点起,含今天)/ 自定义(≤31 天)
粒度自动 / 10s / 30s / 1m / 5m / 15m / 1h;单次查询上限 1200 点,超限自动升档
摘要最新值 + 窗口均值;悬停竖线读该时刻数值,tooltip 含最高 / 最低 / 样本数
采集主机侧常驻,默认 10s(可选 30s / 1m / 5m),与面板是否打开无关;离线也记一条用于画断档
落盘~/.dsh/server-deck-metrics/{hostId}/:raw 3h、1m 24h、15m 7d、1h 31d;删除主机级联清理
历史回填窗口早于本地记录时,尝试 sar -u / sar -r(sysstat)回填 CPU / 内存;磁盘容量无法回填

打开「服务器」页签 → 点工具栏「📈 趋势」。窗口默认 1 小时滚动;「24 小时」也是滚动过去 24 小时,不是当天 0 点起。刚启用时图上可能只有右侧一小段,等几个采集周期就会铺开。

趋势视图:每机三张独立 CPU / 内存 / 磁盘图

⌨ 点卡片进交互终端

xterm.js 全功能终端:5000 行回滚、256 色、窗口尺寸实时同步、光标闪烁。Node 半区做 WebSocket ↔ ssh2 shell 双向桥。

交互终端

⤓ 一键导入 ~/.ssh/config

解析标准 ssh config(Host / HostName / User / Port / IdentityFile / ProxyJump),自动:

  • 跳过通配条目(Host *)与已存在主机;
  • 跳过 Git 托管平台密钥别名(如 Host github.com-xxx / User git——它们不是可管理的服务器);
  • 多别名行(Host 1.2.3.4 prod-gw)优先取语义化别名做展示名。

+ 手动添加主机

密码 / 私钥文件(+口令)/ SSH Agent 三种认证;连接测试按钮即时反馈延迟。

添加服务器表单

🔀 双形态挂载

环境形态
安装了 dsh-better-sidebar注册为侧边栏「🖥 服务器」页签(order 45),原生 tab chrome、设置页开关、visible 门控轮询
未安装自绘右侧可展开/收起面板:右缘竖条开关 + 拖缘调宽,宽度持久化

装载顺序无关:client 入口不声明强制依赖,由内层动态子插件等待服务就绪后注册页签并自动收起独立面板。

📦 安装

# 方式〇:npm 安装(推荐)
dsh plugin --profile web add dsh-server-deck

# 方式一:从 GitHub 直接装(dsh CLI,免 npm)
dsh plugin --profile web add github:meyaomiao/dsh-server-deck

# 方式二:克隆后本地挂载
git clone https://github.com/meyaomiao/dsh-server-deck.git
cd dsh-server-deck && pnpm install && pnpm build
dsh plugin --profile web add .

安装后重启 dsh web(host 半新增了路由与常驻采集器),浏览器 Ctrl+F5 强刷。侧边栏「+」菜单出现「服务器」页签即成功。

🔐 安全模型

  • 所有 API 与 PTY 升级路由仅回环放行(127.0.0.1/::1),防 DNS rebinding 与局域网直连;
  • 密码 / 私钥口令单独存放 ~/.dsh/server-deck.secrets.json(0600),台账文件不含秘密,API 响应永不回传;
  • 删除主机仅移出台账并断开连接池,不会在远端执行任何操作;
  • 指标采集通过一段只读 POSIX sh 探针(固定交给 /bin/sh,不经过登录壳)。Linux 读 /proc,兼容 Ubuntu / Debian / RHEL / Alpine / Arch(含 fish、zsh 登录壳);macOS 走 Darwin 回退。解析失败的字段显示「—」。

🏗️ 架构

┌─ Client(lib/client.js)──────────────────┐   ┌─ Host(lib/index.js)─────────────────────┐
│ better-sidebar 页签 ⇄ 独立抽屉 双形态     │◄──│ /server-deck/api/*  REST(仅回环)         │
│ React 卡片网格 / 趋势图 / 表单 / xterm.js │WS▶│ /server-deck/ws/pty ws↔ssh2 PTY 桥      │
└─────────────────────────────────────────┘   │ ssh2 连接池 · 台账 ~/.dsh/*.json         │
                                              │ MetricRecorder 常驻采集(默认 10s)        │
                                              └─────────────────────────────────────────┘

🛠️ 开发

pnpm install
pnpm build       # esbuild:server bundle + client bundle(ModuleLoader 包装)
pnpm typecheck   # tsc --noEmit
pnpm test        # ssh config / 探针解析 / 台账校验 / 窗口粒度 / sar 回填 / 时序落盘

📋 兼容性

  • DeepSeek Harness 0.1.2-rc.1(仍兼容 0.1.1-rc.2 与 0.1.2-alpha.4,web profile)
  • DSH 0.1.2-alpha.1 起已删除 @deepseek-ai/dsh-client-runtime;本包从 0.1.1 起不再把它写进 dsh.client.inject
  • dsh-better-sidebar 可选(未装时走独立抽屉形态);侧栏请用 [email protected]
  • Node ≥ 20;被管理服务器只需开放 SSH 且有 /bin/sh(或 sh)。登录壳可以是 bash / fish / zsh。趋势回填依赖远端 sar(sysstat),未装则静默跳过。

改仓库前先读 CONTRIBUTING.md(Issue → 分支 → Draft PR)。思考原则见 AI-ISSUE-WORKFLOW.md。

License

MIT

使用前核对

安装步骤、兼容版本与授权范围以原项目当前文档为准。Stars 和评分是快照中的导航信号。

安装与排错 · 项目问题反馈

同类项目