前言¶
DeepSeek Harness (DSH) 是基于插件架构的系统,开发者通常在本地构建后通过 Web 界面或 CLI 使用。如果需要将 Harness 部署为独立的桌面应用程序,直接操作 Electron 封装较为繁琐。
dsh-desktop-packager 插件解决了这个问题。它通过 Electron 封装已构建的 Harness checkout,生成 .app 和 .dmg 文件,并允许通过 Web Settings 进行配置定制。
核心功能¶
- 桌面打包工具:注册工具
dsh_package_desktop,将已构建的 deepseek-harness 封装为.app+.dmg。 - Web 配置界面:在 dsh web 的 Settings 中新增「桌面打包」菜单,包含 4 个 Tab:
- 设计方案:配置应用名、Logo、主题色、背景色。
- 插件设置:选择打包进 App 的插件。
- 模型设置:选择打包进 App 的模型。
- 权限设置:配置用户账号、密码及权限。
- 定制化配置:
- 主题变量注入:支持自定义颜色并注入 Electron 主题变量。
- 插件与模型过滤:通过写入
DSH_HOME/desktop-config.json实现运行时过滤。 - 用户登录控制:通过 Electron 实现登录门,密码使用 scrypt 加盐哈希存储。
- 双端架构:采用 Host(原生 TS)+ Client(浏览器 Bundle)的双端架构,Host 提供服务与工具注册,Client 提供 Web UI。
安装¶
在终端执行以下命令安装插件:
dsh plugin --profile web add /path/to/dsh-desktop-packager
安装后需重启 dsh web 以使配置生效。
使用步骤¶
- 配置打包参数:打开 dsh web,进入 Settings 的「桌面打包」菜单。在「设计方案」中设置应用名、Logo 路径及主题色;在「插件设置」和「模型设置」中勾选需要包含的内容;在「权限设置」中配置用户及权限。
- 执行打包命令:调用注册的工具
dsh_package_desktop。示例参数如下:
dsh_package_desktop \
--dshCheckoutDir /path/to/deepseek-harness \
--out ~/Desktop/DeepSeek-Harness-dist \
--appName "DeepSeek Harness" \
--bundleId com.deepseek.harness \
--arch arm64
打包工具会读取 Web Settings 中的配置,生成定制化的桌面应用。
注意事项¶
- 运行环境:依赖 macOS 系统,需要 Node.js 版本 ≥ 22.19。
- 依赖项:必须提供一个已构建的 deepseek-harness checkout(包含
apps/cli/lib/bin.js和apps/web/dist)。 - 签名与分发:默认为 ad-hoc 签名,分发给其他用户时需配合 Developer ID 签名与公证。
- 安全性:用户密码仅保存 scrypt 加盐哈希,不会以明文形式存储。
- 配置文件:定制化状态存于
~/.dsh/desktop-packager/config.json,改动源码或配置后建议重启服务。
结语¶
dsh-desktop-packager 为 DSH 用户提供了将本地开发环境打包为独立 macOS 应用的能力,适合需要分发特定配置或私有化部署 Harness 的场景。