dsh-instance-manager:DeepSeek Harness 侧边栏实例管理器

前言

DeepSeek Harness(DSH)允许在本地通过不同端口(如 3080–3129)同时运行多个实例。手动切换标签页查看日志、检查进程状态或停止实例会增加操作成本。dsh-instance-manager 插件通过常驻侧边栏面板,将所有本地实例的监控与控制集中在一处。

这是什么

这是一个常驻 DSH 插件,提供侧边栏面板以统一查看并优雅停止本机 3080–3129 端口的 dsh 实例。项目由 xswt442-cmd 维护,采用 MIT 许可证。

核心功能

插件提供以下核心能力:

  1. 实例列表与详情
    列出每个实例的详细信息,包括端口、PID、运行时长、会话数、常驻内存和版本。当前实例会恒排在列表第一行,其余实例按端口升序排列。

  2. 启动新实例
    在侧边栏面板启动新实例时,如果端口留空,插件会在托管端口段(默认 3080–3129)内自动挑选第一个空闲端口并启动。如果指定端口已被占用,会直接报错而不会尝试占用其他端口。

  3. 打开与跳转
    点击列表中的 :端口 链接可跳转到该实例的界面。插件会自动处理 token 重定向逻辑。

  4. 停止实例
    支持停止单个实例、停止当前实例或停止所有本地实例。所有停止操作均通过目标实例自身的优雅退出流程完成,而非强制杀进程。

  5. 日志与会话查看
    提供每个实例的只读视图,可查看 stdout/stderr 日志以及会话概要。

  6. 远程实例支持
    配置 peer 后,面板可以查看远程实例及其日志。远程实例行只读,不参与 stop-all 操作。

  7. Agent 工具
    提供 instance_list、instance_start、instance_stop、instance_logs、instance_sessions 等命令行工具。

安装与启用

通过 npm 包安装并注册到 web profile。安装后重启 DSH Web 即可生效。

dsh plugin --profile web add dsh-instance-manager

配置

插件支持在 DSH Settings 中配置,也支持通过环境变量设置默认值。主要配置项包括:

  • Dock 位置:控制面板在主界面的停靠位置。
  • 刷新间隔:控制列表数据刷新的频率。
  • 启动端口段:设置实例启动时的可用端口范围。
  • Fleet token:用于远程认证与安全校验。
  • Peers:配置需要监听的远程 peer 地址。

对应的环境变量示例:

$env:DSHIM_DOCK_PLACEMENT = 'main-bottom-left'
$env:DSHIM_REFRESH_INTERVAL_MS = '4000'
$env:DSHIM_PORT_RANGE = '3080-3129'
$env:DSHIM_FLEET_TOKEN = '<long-random-secret>'
$env:DSHIM_PEERS = 'office@http://192.168.1.20:3080'

安全

插件内置了本地守卫机制:

  • 访问控制:拒绝跨站 Origin、非 loopback Host 的请求。
  • Token 验证:Fleet token 的有效性基于真实 TCP 对端地址(socket)判定,而非仅依赖 HTTP Host 头。如果对端地址缺失或无法解析 token,请求会被拒绝。
  • 权限划分:Fleet token 持有者拥有启动或停止本机实例及读取会话信息的权限,但没有操作级权限划分。应仅授予可信设备。
  • 接口开放:Server-Sent Events(SSE)仅向本机开放。

注意事项

  • 远程实例限制:配置 peer 后查看的远程实例为只读状态,不参与本地的一键停止操作。
  • 开发要求:在提交代码前,需要运行 npm test、npm run docs:check 和 npm pack --dry-run。

资源

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜