前言¶
DSH 強調「一切皆插件」,web GUI 要接入社區插件時,常見的問題是:插件在哪裏看,哪些已經安裝,哪些有更新,安裝壞了怎麼辦。@cyber-moshen/dsh-plugin-market 把這些問題集中在一個 Settings → Plugin Workshop 頁面裏處理。
它提供一個卡片式目錄,展示社區插件的 tags、GitHub stars、last-commit freshness 和 installed version / update state,並支持搜索、過濾、安裝、更新、卸載。需要明確,它是社區維護的目錄方案,不應被理解成官方應用商店;插件會在當前 DSH 進程權限下運行,使用前要檢查源碼和許可證。
這是什麼¶
@cyber-moshen/dsh-plugin-market 是面向 DSH web GUI 的開源插件市場,許可證爲 MIT。倉庫 owner / npm scope 爲 cyber-moshen,GitHub 地址是:
https://github.com/cyber-moshen/dsh-plugin-market
它主要解決三類事情:
- 發現:用卡片網格展示社區插件,顯示 tags、GitHub stars、last-commit freshness、installed version / update state。
- 操作:搜索、過濾、安裝、更新、卸載,後臺運行
dsh pluginCLI。 - 安全:安裝前進行 dependency audit,安裝後執行 boot-composition check,失敗時自動回滾。
目錄數據來自本倉庫的 data/plugins.json,支持通過 PR 上架插件。
核心功能¶
下面是倉庫資料中明確列出的能力:
- 提供
Settings → Plugin Workshop頁面。 - 以卡片網格展示社區插件。
- 卡片顯示 tags、GitHub stars、last-commit freshness、installed version / update state。
- 支持按插件名稱、作者、標籤搜索。
- 點擊卡片上的
#tag可以按該標籤搜索。 - 提供 always-visible filter bar。
- 可按 installed state、stars/commit 排序、maintenance state 過濾。
- 支持一鍵安裝和更新,後臺運行
dsh pluginCLI。 - 卡片提供 GitHub 圖標按鈕,跳轉對應倉庫。
- 設置彈窗包含 GitHub Token 字段和 startup auto-update 開關。
- 跟隨應用語言,支持中文 / English。
- 純 JS 插件的安裝、更新、卸載可熱重載。
- 攜帶 native modules 的插件會提示重啓。
- 安裝前進行 dependency audit,安裝後執行 boot-composition check,失敗時自動回滾。
- 目錄數據來自本倉庫
data/plugins.json,支持通過 PR 上架插件。
安裝與啓用¶
倉庫給出的安裝命令爲:
dsh plugin --profile web add @cyber-moshen/dsh-plugin-market
安裝後重啓 web server,再打開 Settings → Plugin Workshop。
後續如果安裝、更新、卸載的是純 JS 插件,可以熱重載;如果插件攜帶 native modules,會提示重啓。
需要注意,README 中的安裝命令帶有 “once published to npm” 的說明,已抓取資料未確認當前 npm 發佈狀態。
典型用法¶
1、打開 Settings → Plugin Workshop。
2、按插件名稱、作者或標籤搜索;點擊卡片上的 #tag 可以按該標籤搜索。
3、使用 filter bar 切換 installed state、按 stars 或 commit 排序、按 maintenance state 過濾。
4、未安裝時點擊 Install;已安裝且有新版本時點擊 Update;已安裝插件可點擊 Uninstall。
5、在 Settings 彈窗中填寫 GitHub Token 並保存;要刪除已保存 token 時點擊 Clear。
6、啓用 Auto-update installed plugins on startup 後,web server 啓動時會檢查並更新已安裝插件。
7、如果要上架插件,編輯 data/plugins.json 並創建 PR。
8、如果 profile 已經損壞,可運行離線修復腳本:
node <dsh-plugin-market checkout>/scripts/repair.mjs --profile web
GitHub Token 與自動更新¶
GitHub Token 是可選配置。填入後可將 API 限頻從 60 requests/hour 提升到 5000 requests/hour。
如果環境中設置了 GITHUB_TOKEN 或 GH_TOKEN,它們優先於保存在插件設置裏的 token。
保存空的 Token 輸入框不會清除已保存 token;需要刪除時點擊 Clear。Token 具有倉庫寫權限,需要保密。
安裝安全¶
安裝一個壞插件可能讓 DSH 無法啓動,這是市場類插件需要重點避免的情況。該插件在安裝流程中加入檢查:
- 安裝前:dependency audit。
- 安裝後:boot-composition check。
- 檢查失敗:自動回滾。
目標是避免把 profile 留在不可啓動狀態。
對於已經損壞的 profile,可以使用前文的 offline repair script 做修復。
適用場景與注意¶
它比較適合 DSH web GUI 的日常使用:查看社區插件、比較插件狀態、安裝和更新已保存的插件,並通過 PR 參與目錄維護。
使用前注意:
- 許可證爲 MIT。
- 插件以當前
dsh進程權限運行,安裝前應檢查源碼、依賴和許可證。 - 插件安裝和更新通過 npm 包進行,不使用 GitHub installs。
- 目錄數據運行時即時獲取本倉庫
data/plugins.json,沒有離線緩存或快照。 - 倉庫資料可見
peerDependencies包含react ^18.2.0和多個@deepseek-ai包,實際兼容情況以 DSH 環境爲準。
結尾¶
@cyber-moshen/dsh-plugin-market 的價值是把 DSH web GUI 的插件瀏覽、安裝、更新和卸載集中在一個頁面裏,同時加入安裝前後的安全檢查和回滾。它是社區目錄方案,適合需要管理 DSH web GUI 插件的開發者使用。
GitHub:
https://github.com/cyber-moshen/dsh-plugin-market