DeepSeek Harness 插件

dsh-service

DSH Web 自托管运维面板:安全重启、健康监控、备份和 Linux 权限维护。(英文原文)

跳到安装方式

来源信息

GitHub 仓库
gehennawu/dsh-service
最近更新
2026年8月22日
分类
插件开发工具
GitHub stars
2
载体类型
plugin
目录证据
上游声明已找到 dsh.bundle
证据路径
package.json#dsh.bundle
核对版本
0.1.0-rc.8
上游核对日期
2026-08-20

该证据由上游目录提供。本站没有安装、运行或安全审核这个插件。

安装

默认先复制一段 Prompt,让 Agent 读 GitHub 仓库和源码;需要自己装时再切到命令。

复制这段 Prompt,发给 DSH、Codex 或其他 Agent,让它先读 GitHub 仓库和源码。

请先不要安装或执行任何命令。阅读这个插件的 GitHub 仓库、README 和关键源码,然后用清楚、直接的方式回答以下问题,帮助我判断它是否适合我的需求:

1. 这个插件是什么,解决什么问题;
2. 适合哪些用户和典型使用场景;
3. 安装后如何使用,并给出一个最小使用示例;
4. 有哪些已知限制,以及隐私、安全、兼容性或维护风险;
5. 给出“推荐 / 有条件推荐 / 不推荐”的明确建议和理由。

请区分仓库明确说明、根据源码推断和未知信息。证据不足时请明确说明,不要猜测或照抄 README。

GitHub:https://github.com/gehennawu/dsh-service
插件名:dsh-service
作者:gehennawu

检查来源文件

安装前先看这个插件目录里的 README 和其他文件。

文件资源管理器4 个文件
README.md来源说明 · 只读预览
README 语言

dsh-service

English

面向自托管 DSH Web 的服务控制与运维插件。提供安全重启、版本管理与一键升级、健康诊断、模型用量统计、备份管理、任务通知和 Linux 文件权限维护。

![概览](./screenshots/overview.png)

功能

设置页「服务控制」面板包含六个顶部标签:概览、通知、健康诊断、模型统计、备份维护、重启;重启标签还可在设置页左侧标签列底部开启「重启」快捷入口(默认关闭)。

版本与更新

  • 显示当前 DSH 和插件版本,版本号链接到 GitHub Releases
  • 自动检查 npm registry 的正式版和预览版;有新版本时右侧「小三角 + 有新版本」状态文本可点击展开/收起,行内展示当前/最新版本与正式版/预览版双 tag,版本号分别带 npmjs 与 npmmirror 链接(部分网络会被 npmjs.com 拦截,npmmirror 作为镜像入口)
  • 一键升级插件,升级后自动重启;未检测到进程管理器(如在 Windows 终端手动启动)时,升级前先确认后果,安装完成后保持运行并提示手动重启

安全重启

  • 重启前检测活跃 Agent、后台任务和终端,展示清单并要求显式确认
  • 对话中输入 /restart 也可触发,检测到运行中工作时自动拒绝
  • 重启后自动探测新进程并刷新页面,60 秒未恢复时提供手动刷新
  • 疑似终端手动启动时,重启确认流程会提示「退出后不会自动拉起」,健康诊断中以黄色行内警示标注
  • 可在「重启」标签开启「设置页左列显示入口」开关(默认关闭),开启后在设置页左侧标签列底部显示「重启」快捷入口,与「重启」标签共用同一套确认流程

健康诊断

  • 显示运行时间、内存、会话数、活跃 Agent 和后台任务
  • 「进程与运行环境」卡显示平台、架构和 Node 版本
  • 完整诊断检查会话存储、工作区注册表、备份目录、tar 可用性、文件权限、运行环境和 Node 运行时版本;手动启动环境以黄色行内警示标注重启无保障(不触发健康提醒横幅、服务控制提醒和标签 ⚠),未识别环境与空备份为信息级提示(不算警告),均可通过 DSH_SERVICE_RUNTIME_ENV 显式声明
  • 没有备份属于信息级提示,不算警告,也不点亮健康诊断标签的 ⚠
  • 文件权限深检与修复:检查 Agent 是否能读写 DSH_HOME 和工作区,修复需两段式确认

模型统计

  • 近 7 天输入/输出/缓存 token 堆叠柱图,蓝/橙/青图例
  • 按项目筛选,鼠标悬停显示精确数值
  • 模型明细为横向堆叠柱形图(沿用主图图例配色),按 token 总量从多到少排序;每行附「x次 · 缓存命中 x% · 输入 xM token · 输出 xM token」明细
  • 提供方未上报 token 用量的模型步骤不纳入统计
  • 最近 24 小时模型/工具报错统计,默认折叠

备份管理

  • 创建会话、配置和插件 profile 清单的 .tar.gz 归档
  • 导出:下载备份到浏览器
  • 恢复:解压覆盖到对应路径,两段式确认后自动重启
  • 导入:选择 .tar.gz 文件上传到备份目录
  • 删除需两段式确认,备份不限份数,不自动清理

任务通知

  • 通知设置位于服务控制顶部的「通知」标签:会话完成一轮任务、或需要你授权/审阅计划/选择答案时发送浏览器通知
  • 点击系统通知弹窗会聚焦到 DSH 页面并关闭该通知
  • 三档开关条:总开关、任务结束通知、授权与提问通知,各自独立控制
  • 对话栏内铃铛图标快速切换总开关
  • 各开关在页面刷新后保持

外部探活

  • GET / HEAD /healthz 返回空的 HTTP 200,其他方法返回 405
  • 适合 Uptime Kuma、Docker、Kubernetes 等外部监控

安装

从 npm 安装(推荐)

dsh plugin --profile web add @gehennawu/dsh-service

从 GitHub 安装

dsh plugin --profile web add github:gehennawu/dsh-service

安装或更新后重启 DSH Web:

dsh web

打开 DSH Web 设置页,进入 服务控制

本地开发安装

dsh plugin --profile web add link:/path/to/dsh-service

自动重启配置

插件只发送退出信号,不负责重新启动进程。没有进程管理器时,点击重启会直接停止 DSH Web。

插件会用被动信号(环境变量、/.dockerenv/proc/1/cgroup、终端 TTY)判断当前是否由进程管理器拉起:检测到 Docker/systemd/pm2/supervisord/Kubernetes 时照常自动重启;都没有且 stdin/stdout 是交互终端时视为「疑似手动启动」,健康诊断会以黄色警示标注,一键升级改为「不自动退出 + 提示手动重启」。启发式无法覆盖输出重定向、NSSM/WinSW 等场景,可用环境变量 DSH_SERVICE_RUNTIME_ENV=managed|manual 显式声明。

Docker Compose

services:
  dsh:
    restart: unless-stopped

systemd

[Service]
ExecStart=/usr/local/bin/dsh web --host 127.0.0.1
Restart=on-failure
RestartSec=2

pm2

pm2 start "dsh web --host 127.0.0.1" --name dsh-web

平台支持

环境插件功能重启后自动拉起验证状态
Linux + Docker Compose支持配置 restart policy 后支持已验证
Linux + systemd / pm2预期支持由进程管理器负责未单独验证
macOS / Windows + pm2 等代码未限制由进程管理器负责未验证
直接运行 dsh web支持不支持预期行为

直接在终端运行(PowerShell/CMD/bash)时,面板会标注「疑似终端手动启动」,一键升级不再自动退出进程。

运行要求:Node.js >=22,DSH Web 能加载 Host 和 Client 两半插件。检查更新需要访问 registry.npmjs.org;网络失败不影响其他功能。

安全设计

  • 浏览器端不能传入 URL、包名、命令或文件路径
  • 更新检查只访问固定的 npm registry 地址
  • RPC channel 仅接受 loopback 调用
  • 模型用量索引不保存消息、Prompt、Tool 参数或凭据
  • 破坏性操作(重启、删除、修复权限)均需两段式确认

许可证

[MIT](./LICENSE)