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 進程權限運行,安裝前應檢查源碼與許可證。
羽毛球分组比赛记分
小程序二维码

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

小夜