dsh-web
zhu1090093659/dsh-webDeepSeek Harness(DSH)Web 插件聚合生态包 · 一切皆插件,创意工坊分发(dsh-market.com)
DSH Web GUI 桌面客户端(Electron):双击启动,自动拉起 dsh 服务,内置安装指引
DSH Web GUI 的桌面客户端壳(Electron)。
dist\DSH Desktop-win32-x64\DSH Desktop.exe(或桌面上的 "DSH Desktop" 快捷方式)。http://127.0.0.1:3080,若服务未运行,会自动拉起 dsh --profile web 并等待就绪后进入界面。npm install -g @deepseek-ai/dsh → 点重试。| 变量 | 作用 |
|---|---|
DSH_URL | 覆盖目标地址,默认 http://127.0.0.1:3080(端口变化时自动把该端口传给 dsh web) |
DSH_NO_AUTOSTART=1 | 禁用自动拉起服务 |
DSH_SERVER_PATH | 自定义服务入口脚本(默认为 npm 全局 @deepseek-ai/dsh 的 lib/bin.js,找不到时回退到 PATH 上的 dsh 命令) |
DSH_NODE_PATH | 自定义 node 路径,默认用 PATH 里的 node |
前置:其他用户需自装 Node.js 18+ 和 npm install -g @deepseek-ai/dsh(应用内有指引页)。
npm install # 首次安装依赖(如遇 electron 下载慢,先执行:
# $env:ELECTRON_MIRROR="https://npmmirror.com/mirrors/electron/"
# 再 npm install)
npm run pack:release # 打包到 release-build/ 并生成 release/DSH-Desktop-v<版本>-win32-x64.zip
发布流程(GitHub):
dsh-desktop),把本目录源码推上去(dist/、release/、node_modules/ 已被 .gitignore 排除)。v1.1.0)。release/ 里的 zip 作为附件上传,写清"使用说明:先装 Node + dsh"。DSH Desktop.exe(SmartScreen 提示点"更多信息 → 仍要运行",未签名应用属正常)。进阶(可选):
.github/workflows/release.yml,push tag 时在 windows-latest 上跑 npm ci && npm run pack:release 并上传 zip。npm start # 开发模式启动
npm run icon # 重新生成 build/icon.png 与 build/icon.ico
npm run render-icon # 用 Electron 离屏渲染 SVG 图标(scripts/render-svg.js)
npm run pack # 打包到 dist/(本机自用)
npm run pack:release # 打包 + 打 zip 到 release/(对外发布)
main.js(窗口、托盘、单实例、自动拉起服务、安装指引/离线页、站外链接交给系统浏览器)。http://127.0.0.1:3080 完全一致。DSH_URL。resolvedAppUrl() 加载页面,但带一次性 token 的 URL 是 dsh web 启动后异步打印到 stdout 才被解析的——端口先通、token 行后到,于是仍会加载裸 URL 被 401 拒绝(黑屏)。
handleServerDown 在端口就绪后先等待 token URL 解析(最多 10 秒,每 200ms 轮询 serverTokenUrl),解析到后才加载带 token 的地址完成一次性认证;APP_URL。dsh web(0.1.2-rc.1 起)在启动时打印带 ?token=... 的一次性 URL,直接访问裸 http://127.0.0.1:3080 会被 401 拒绝。本版本在拉起服务后解析该 token URL 并用其加载主窗口,规避由此导致的黑屏。
serverTokenUrl,监听 dsh web 的 stdout 解析 dsh web: <url> 中带 token 的完整 URL;resolvedAppUrl(),能拿到 token 时用之,否则回退裸 APP_URL(兼容旧版服务);