dsh-plugin-market-selfhosted:自建 DSH 内部插件市场

前言

在 DSH 生态里,插件和技能往往靠 .tgz 在团队里手工传递,谁装了什么、版本是否一致,缺少统一入口。社区目录面向公开发现,并不适合把账号、权限和制品收拢在一处。下面介绍 dsh-plugin-market-selfhosted:由维护者 yanghongqiang3 提供的自建方案,把「市场服务端」和「DSH 客户端插件」拆开,让管理员在服务器上发布与授权,成员从侧栏「内部插件市场」浏览、安装与更新。

这是什么

一句话定位:私有市场服务器 + DSH 客户端插件。它不会把插件压缩包丢进共享目录,而是走受控分发:账户、权限、制品与审计数据都在服务端;本地插件只把服务器已授权的内容写入当前 DSH profile,不做独立授权决策。

部分 位置 职责 是否权威
市场服务端 server/ 账户 / 组 / 规则 / 会话 / 目录 / 制品存储 / 审计 / 统计 是
DSH 客户端插件 lib/ + web/ 安装服务端授权的插件、bundle 与 skill 否

分类为 admin-security;仓库 MIT 许可,当前 package 版本为 0.1.4。DSH 侧 UI(侧栏入口、安装页、控制台)目前为中文;README 与市场元数据为双语。

核心功能

市场服务端

  • 账户与权限:管理员 / 成员角色、权限组、组级 glob 插件规则;默认拒绝(无匹配授权则不可安装,管理员亦然);拒绝规则优先;禁用账户会立即撤销会话。
  • 目录:/dsh-market/catalog 列出制品及 canInstall 与拒绝原因;服务端搜索、筛选(插件 / skill)与分页。
  • 发布:控制台上传 .tar.gz / .tgz / .zip,或 cli.mjs publish --dir;状态含 draft / review / published / revoked,仅 published 可安装;归档校验 package.json、路径遍历、符号链接等。
  • 撤销与召回:revoked 停止分发但已装副本仍可用;recalled 可在客户端下次启动时请求移除已装副本,二者为不同操作。
  • 安装统计:控制台展示各账户已装情况,以及按制品的安装者 / 设备 / 下载量(下载不等于安装)。
  • 身份绑定:DSH 账户与市场账户一对一绑定后,安装页可自动获得会话;仍支持密码登录。
  • 自更新:服务端可发布市场插件新版本(publish:self),客户端启动时比对版本并替换。

DSH 客户端插件

  • 在侧栏底部注册 sidebar.footer.action,打开系统浏览器中的安装页;窄侧栏时收拢为图标。
  • 安装 / 卸载 / 更新经四道门:服务端授权 → 双重 sha256 校验 → 归档安全 → 由归档内 dsh.bundle 驱动注册;bundle 进 dsh.profile.bundles,普通插件进 profile patch 层,skill 进 <profile>/.dsh-market-skills/。

安装与启用

先部署市场服务端(本机、局域网或 Docker,见仓库 README 的 Local setup / Server deployment),再安装客户端插件。桌面应用常用 profile 为 desktop;dsh web 使用 web。

# 桌面端常用 desktop;dsh web 使用 web
dsh plugin --profile desktop add github:yanghongqiang3/dsh-plugin-market-selfhosted

匹配 v* 的标签会通过 GitHub Releases 提供预构建 tarball,也可本地安装:

dsh plugin --profile desktop add ./dsh-plugin-market-selfhosted.tgz

安装后配置 MARKET_SERVICE_URL 并重启 DSH,侧栏底部会出现「内部插件市场」入口。

package.json 中声明的 DSH 引擎范围:

"dsh": ">=0.2.0-rc.2 <0.3.0 || 0.2.1-rc.1 || 0.2.1-rc.2 || 0.2.1-rc.3"

典型用法

README 中归纳的适用方向包括:

  1. 团队内分发 DSH 插件:自研工具、内部集成与 bundle 从同一市场安装,替代手工传 .tgz。
  2. 分发 skill:仅含 SKILL.md 的包可发布,安装后可在会话 skill 目录中使用。
  3. 受控发布:默认拒绝 + 按组与 glob 授权;撤销与召回分开操作。
  4. 统一升级:客户端启动时检查市场插件新版本;市场内插件通过再次安装升级。
  5. 私有部署:服务端无运行时外部依赖,可在笔记本、内网服务器或 Docker 上运行,不依赖外部公共市场。
  6. 可选 SSO:绑定 DSH 与市场账户后,安装页免二次输密码(仍非多租户 SaaS)。

不适合:公开商业市场、按量计费或多租户 SaaS——README 明确这些能力不存在且不在计划中。

适用场景与注意

适合需要在组织内集中管理插件与 skill、并保留审计与统计的团队。插件以当前 DSH 进程权限运行,安装前应阅读仓库源码与 MIT 许可证,确认制品来源与授权策略符合本机安全要求。

DSH 理念是「一切皆插件」;社区插件目录为独立站点,与 DeepSeek / 幻方无官方从属关系,本文所述为第三方自建市场,并非官方应用商店。

结尾

dsh-plugin-market-selfhosted 把授权与制品放在服务端、把安装体验收进 DSH 侧栏,适合内网可控分发。目录页与源码:

  • https://www.skillhub.cn/plugins/yanghongqiang3/dsh-plugin-market-selfhosted
  • https://github.com/yanghongqiang3/dsh-plugin-market-selfhosted
羽毛球分组比赛记分
小程序二维码

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

小夜