前言¶
用 DSH 做開發時,常見的麻煩是本機服務散落在各處:有的藏在安裝目錄裏,有的是端口監聽進程,有的是 npm 或用戶 bin 目錄下的命令包裝腳本,還有隨手寫的 bat 批處理。想停掉一個服務,得先想起來它裝在哪、啓動腳本叫什麼名字、日誌寫到哪個目錄。
下面介紹 liuhuan007/dsh-service-hub。它把本機服務、一次性腳本和終端工具登記成一個列表,然後在 DSH 側欄裏提供啓動、停止、重啓、看日誌、刷新這些操作,不用去記啓動器在哪。
它是一個客戶端分類的插件,由 liuhuan007 維護,許可證爲 MIT,包版本見 README 中的 package.json。
這是什麼¶
一句話定位:一個 DSH 服務面板插件,用來啓停和監控你本機上自己登記的服務、腳本和終端工具。
它解決的核心問題是入口分散。README 的說法是,這樣你就不用記住每個啓動器放在哪。插件自帶一個零依賴的控制台守護進程(console/,只用 Node 標準庫),裝上插件即可用,不用再單獨裝別的工具,也沒有機器相關的硬編碼路徑需要下載或配置。
核心功能¶
插件激活後,Host 端會在 127.0.0.1:3999 啓動自帶的控制台守護進程;插件卸載時隨之停止。註冊數據和日誌放在 ~/.dsh-service-hub/,因此升級或重裝插件後服務列表仍保留。
DSH 側欄獲得一個 Service 選項卡,列出每條已登記條目,並顯示實時狀態、健康信息、端口和快捷訪問 URL,同時提供 start / stop / restart / logs / refresh 按鈕,以及一個可在手機上打開的 LAN 地址。
因爲進程控制歸守護進程所有,所以即使你關掉面板,已啓動的服務也會繼續運行。
從 0.3.0 起插件自帶控制台,無需額外安裝第三方插件。
發現與登記¶
面板支持掃描未登記的可執行文件和監聽端口。Scan 會給每個候選先給出一個建議類型:安裝目錄下的程序和快捷方式爲 app,監聽端口的程序爲 service,npm 或用戶 bin 目錄下的命令包裝爲 terminal,其他批處理文件爲 script。發現對話框裏帶類型選擇器,這個猜測始終可以覆蓋。系統目錄(C:\Windows\...)會被跳過。
安全邊界¶
README 中寫明的邊界如下,都是可對照的設計約束:
- 客戶端 bundle 只對
http://127.0.0.1:3999發起fetch,只訪問 localhost。 - 自帶守護進程只綁定
127.0.0.1,不綁定任何對外接口。 - 插件自身不做遙測,也沒有對外網絡請求。
- 守護進程只啓停你登記過的命令,不會自行運行任何東西;每條命令在面板中可見,並存放於
~/.dsh-service-hub/data/registry.json。
防護細節¶
自帶控制台只監聽 127.0.0.1,並對隨手觸發的使用做了防護:
- 不返回 CORS 頭,其他來源的瀏覽器請求會在預檢階段失敗,隨機網站讀不到
/api/state,也調不動修改類接口。 - Origin / Sec-Fetch / Host 校驗會攔截腳本發起的跨站請求並返回
403;頂級導航和 iframe 導航仍然放行,面板可以嵌入頁面。 - 條目 id 限制爲
[A-Za-z0-9._-]{1,64},日誌路徑全部解析在日誌目錄內,因此/api/items/<id>/logs讀不到其他文件。 /healthz只暴露{ ok, version, pid }和X-LC-Daemon頭,Host 用它確認自己連的是這個插件的守護進程,而不是恰好佔用 3999 端口的無關進程。
這些保證有對應的迴歸測試,npm test 即可運行。
安裝與啓用¶
官方安裝命令,按官方 README 原文:
dsh plugin --profile desktop add dsh-service-hub
然後重啓 DeepSeek Harness(或重載窗口),打開 Service 選項卡。
在 npm 正式發佈之前,從源碼安裝的命令是:
dsh plugin --profile desktop add github:liuhuan007/dsh-service-hub
前置條件¶
| 要求 | 原因 |
|---|---|
| DeepSeek Harness 0.2.1+,帶 Web/Desktop UI | 客戶端 bundle 面向 platform: web |
dsh-better-sidebar |
面板通過該服務的機制註冊側欄選項卡 |
| Node 18+ | 運行自帶的控制台守護進程(桌面應用自帶一個) |
| Windows | 進程管理使用 PowerShell 和 tasklist/netstat |
端口 3999 必須空閒。如果已有另一個控制台在監聽該端口,插件會複用它,而不是再啓動一個。
典型用法¶
下面按 README 的可復現路徑走一遍。
1、安裝插件並重載窗口。
dsh plugin --profile desktop add dsh-service-hub
2、在面板裏掃描本機候選。發現對話框會列出未註冊的可執行文件和監聽端口,每條帶建議類型,可當場修改。
3、把需要的服務加入列表。每條條目的命令在面板中可見,同時寫入 ~/.dsh-service-hub/data/registry.json。
4、通過面板的啓動 / 停止 / 重啓按鈕管理進程,用 logs 查看日誌,用 refresh 刷新狀態。
5、如需查看回歸測試和發佈文件清單:
npm test
npm pack --dry-run
注意:以當前 dsh 進程權限運行¶
插件運行在當前 dsh 進程的權限下,它能啓動和停止你登記的命令。安裝前應先檢查源碼與許可證,確認 registry.json 裏登記的命令符合預期,再按需啓停。
其他來自官方 README 的已知限制:
- 面板從會話頭部打開(⚙ 服務)。安裝
dsh-better-sidebar會額外在左側欄加一個同樣的面板選項卡,這一步是可選的。 - 面板文本目前只有中文;
locale/下的meta.title/meta.description有英文和中文兩版,供插件清單使用。 - 控制台 URL 固定爲
127.0.0.1:3999。
兼容性方面,README 給出的範圍是 DSH >=0.2.1,UI 爲 Web / Desktop(側欄選項卡),對 TUI 和 headless profile 無效果,OS 爲 Windows。
小結¶
這個插件的價值在於把本機服務的入口收進 DSH 側欄,並提供狀態、健康、端口與日誌的統一視圖,同時用一個只綁定 localhost 的自帶守護進程承擔進程控制。如果你的服務清單已經點狀分佈在安裝目錄、bin 目錄和批處理文件裏,可以先按上面的安裝命令試一遍,再用 Scan 逐步登記。
插件目錄頁:https://www.skillhub.cn/plugins/liuhuan007/dsh-service-hub
源碼:https://github.com/liuhuan007/dsh-service-hub