前言¶
DeepSeek Harness(DSH)允許在本地通過不同端口(如 3080–3129)同時運行多個實例。手動切換標籤頁查看日誌、檢查進程狀態或停止實例會增加操作成本。dsh-instance-manager 插件通過常駐側邊欄面板,將所有本地實例的監控與控制集中在一處。
這是什麼¶
這是一個常駐 DSH 插件,提供側邊欄面板以統一查看並優雅停止本機 3080–3129 端口的 dsh 實例。項目由 xswt442-cmd 維護,採用 MIT 許可證。
核心功能¶
插件提供以下核心能力:
-
實例列表與詳情
列出每個實例的詳細信息,包括端口、PID、運行時長、會話數、常駐內存和版本。當前實例會恆排在列表第一行,其餘實例按端口升序排列。 -
啓動新實例
在側邊欄面板啓動新實例時,如果端口留空,插件會在託管端口段(默認 3080–3129)內自動挑選第一個空閒端口並啓動。如果指定端口已被佔用,會直接報錯而不會嘗試佔用其他端口。 -
打開與跳轉
點擊列表中的:端口鏈接可跳轉到該實例的界面。插件會自動處理 token 重定向邏輯。 -
停止實例
支持停止單個實例、停止當前實例或停止所有本地實例。所有停止操作均通過目標實例自身的優雅退出流程完成,而非強制殺進程。 -
日誌與會話查看
提供每個實例的只讀視圖,可查看 stdout/stderr 日誌以及會話概要。 -
遠程實例支持
配置 peer 後,面板可以查看遠程實例及其日誌。遠程實例行只讀,不參與 stop-all 操作。 -
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。