@cyber-moshen/dsh-plugin-market:DSH web GUI 的開源插件市場

前言

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 plugin CLI。
  • 安全:安裝前進行 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 plugin CLI。
  • 卡片提供 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_TOKENGH_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
羽毛球分组比赛记分
小程序二维码

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

小夜