DeepSeek Harness 站点控制器:统一管理 Web 服务生命周期与 SSH 发布

前言

DSH 插件生态允许在本地运行和管理服务。管理多个 Web 站点或 HTTP 服务时,通常需要处理注册、Git 操作以及 SSH 远程部署等环节。todaywei/dsh-wei-sitecontrol 插件旨在解决这些问题,它将本地或远程的网站登记为一份带依赖信息的注册表,并在 DSH 中统一管理其生命周期、Git 提交与 SSH 发布流程。

是什么

这是一个用于 DeepSeek Harness 的站点控制器插件。它通过内置纯 JS 的 Git (isomorphic-git) 与 SSH 发布客户端 (ssh2),提供一套完整的服务管理方案。

核心功能包括:侧栏管理面板(列表、状态、启停、日志、Git、发布)、给 Agent 的 site_* 工具、系统监视(CPU/内存/磁盘、进程占用、任务名)以及一个功能完备的 HTTP API。插件支持描述驱动建档、定时发布、Release 模式(含回滚)以及密钥保险库。

安装与启用

安装过程包含三步:注册插件包、配置 Profile、登记技能。

  1. 安装插件包
    在 Web Profile 下安装插件包,会自动解析依赖。
    dsh plugin --profile web add <路径>\dsh-wei-sitecontrol-0.1.0.tgz
  1. 配置 Profile
    编辑 %USERPROFILE%\.dsh\profiles\web\cordis.patch.yml,在插件列表中追加插件行。
    - insert:
        - id: wei-sitecontrol
          name: dsh-wei-sitecontrol
  1. 登记技能
    将技能文件复制到 DSH Skills 目录,以便 Agent 自动发现。
    # 将 skill/SKILL.md 复制到 %USERPROFILE%\.dsh\skills\dsh-wei-sitecontrol\SKILL.md
  1. 重启服务
    重启 dsh web 以加载插件。

核心功能

1. 生命周期与监视

管理面板提供站点列表、运行状态控制(启停、重启)、日志查看以及 Git 操作入口。监视功能会实时显示本机的 CPU/内存/磁盘使用情况、各站点进程的占用以及当前 DSH 任务列表。

2. Git 与 SSH 部署

插件内置 isomorphic-git 和 ssh2,不依赖系统 Git。支持在站点目录上执行初始化、状态查看、提交和推送。SSH 部署支持 In-place 模式(直接覆盖)和 Release 模式(基于时间戳的新目录发布,支持回滚)。

3. 描述驱动建档

通过提供环境描述文本,插件可自动解析并连接服务器读取配置(如 Tomcat 的 docBase 或 nginx 的 root),自动回填发布目录、服务类型等字段,减少手工配置。

4. API 与扩展

提供 /dsh-wei-sitecontrol HTTP API,支持站点管理、健康检查、密钥保险库管理、部署脚本存储以及定时发布排期。

典型用法

描述驱动建档

通过 POST 请求向目标服务器发送环境描述,插件会解析文本并自动探测服务器配置。

POST /targets/<name>/provision
{
  "text": "ip:203.0.113.10\nssh端口:TCP:22\n描述:…使用tomcat服务,tomcat应用目录在:/opt/tomcat9。程序发布目录在/srv/www。",
  "user": "root"
}

定时发布

设置排期,到点自动执行与手动发布相同的代码路径。

POST /schedules
{
  "site": "example-site",
  "target": "prod-server",
  "at": "2026-10-06T12:00:00",
  "note": "每日维护"
}

密钥保险库

导入本地私钥文件,内容不进对话或日志,仅存储指纹和元数据。

POST /keys
{
  "name": "prod",
  "path": "E:\\keys\\prod.pem"
}

注意事项

  • 数据落盘位置:注册表、密钥、日志等数据存储在 $DSH_HOME/storages/dsh-wei-sitecontrol/。
  • 密钥安全:密钥文件权限设为 POSIX 600 或 Windows ACL 仅当前用户。密钥内容永不出现在 API、工具或日志输出中,仅返回指纹。
  • SSH 客户端限制:内置 SSH 客户端 (ssh2) 不支持 PKCS#8 格式密钥(-----BEGIN PRIVATE KEY-----)。如需使用,需转换为 PEM 格式。
  • API 语义:POST /targets 为 PATCH 语义,仅支持更新 name 和 envText,不会修改其他字段。
  • 权限要求:插件以当前 DSH 进程权限运行,安装前应检查源码与许可证。
羽毛球分组比赛记分
小程序二维码

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

小夜