前言¶
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 的場景。