MomomaiHimeki/DeepseekHarnessBootstrapper

DeepseekHarnessBootstrapper

Install the Node.js environment and Deepseek Harness in one go, and launch them via desktop shortcut. 一次性安装node.js环境和Deepseek Harness,以及桌面快捷方式启动

待分类deepseekdeepseek-harnessdeepseek-harness-plugin

DeepSeek Harness Bootstrapper

在 Windows 上一键安装 / 启动 DeepSeek Harness Web UI 的第三方引导器(非官方)。

双击运行,它会:检查 Node.js(缺失或版本不符时从 nodejs.org 安装官方 LTS)→ 启动 DeepSeek Harness → 确认 127.0.0.1:3080 的 Web 服务真的可用 → 自动打开浏览器。 若 DeepSeek Harness 已在运行,则直接复用并打开,不会重复启动,也不会要求新的认证链接。

本项目不是 DeepSeek 官方安装程序,与 DeepSeek 无隶属关系。安装包内不打包 Node.js 与 DeepSeek Harness,运行时才从官方源获取。

English README(英文版说明)

快速开始

  1. 打开 Releases, 下载 DeepSeekHarnessBootstrapper-Setup-vX.YY.exe。
  2. 双击运行。若缺少 Node.js,Windows 会弹出 UAC 请求安装官方 Node.js MSI,请允许。
  3. 首次启动 npx 需要下载 DeepSeek Harness 包,可能耗时数分钟,请等待浏览器自动打开。
  4. 之后从桌面快捷方式 DeepSeek Harness 启动即可。

它做什么

双击 Setup / 快捷方式
      │
      ├─ 检测 127.0.0.1:3080 是否已有 DeepSeek Harness Web 服务?
      │        ├─ 是  → 直接打开浏览器(不重复 npx,不要新认证链接)
      │        ├─ 正在启动 → 等待其就绪,不重复启动
      │        └─ 被其他程序占用 → 明确报错,不杀进程
      │
      └─ 否 → 检查/安装 Node.js LTS
              → npx.cmd --yes @deepseek-ai/dsh web --no-open
              → 轮询并确认 Web 服务真正就绪
              → 打开浏览器 + 创建桌面快捷方式

“已运行”的判定标准:不能只看 node.exe 是否存在或 3080 是否被占用,必须由 HTTP 响应 确认对端确实是 DeepSeek Harness(其未认证根路径的 401 认证提示,或已认证首页中的 DeepSeek Harness 标题与 __DSH_BOOT__ 引导变量)。仅端口打开不算就绪。

安全与隐私

  • 不修改代理、DNS、防火墙、VPN,不装服务/开机启动,不改 PATH。
  • 不修改 PowerShell 执行策略:始终使用 node.exe / npm.cmd / npx.cmd,绝不用 npx.ps1。
  • 无遥测,不采集、不记录 API Key,也不记录完整认证 URL(日志里只写“是否已获取”)。
  • 绝不 taskkill /IM node.exe 或结束任意 node 进程;只结束本项目自己记录、按 PID 定位的 进程树(cmd.exe → npx.cmd → node.exe)。
  • 不删除用户配置 / API Key;卸载时默认保留 Harness 数据与 Node.js,需分别确认后才移除。
  • Node.js 只在缺失或版本不满足 @deepseek-ai/dsh 引擎要求时才安装,且只从 nodejs.org 获取。

常见问题

提示 Port 3080 is in use by another application... 3080 被非 Harness 程序占用。请自行确认并关闭该程序后重试。引导器不会结束它。

提示 PSSecurityException: UnauthorizedAccess(如果你自己跑 npx) PowerShell 可能把 npx 解析成 npx.ps1。本项目通过绝对路径调用 npx.cmd、且不改执行策略, 因此不受影响。

首次下载 npx 包很慢或超时 日志会区分“正在下载(已有子进程)”与“子进程未产生任何进程”。安装包会重试并给出 dsh-*.out.log / dsh-*.err.log 诊断,路径见 %LocalAppData%\DeepSeekHarnessBootstrapper\logs。

nodejs.org 访问瞬时失败 官方索引与 MSI 下载均带指数退避重试(5/10/20 秒封顶 30 秒),并仅在官方镜像主机间回退。

从源码构建

powershell -NoProfile -ExecutionPolicy Bypass -File .\scripts\Build-Release.ps1

使用系统自带的 .NET Framework C# 编译器与 IExpress,不需要 Electron、Tauri、Node 运行时 或任何第三方打包工具。产物在 dist\release\: DeepSeekHarnessBootstrapper-Setup-vX.YY.exe、-Runtime-vX.YY.exe、-Uninstall-vX.YY.exe。

离线检查(不联网、不装任何东西):

powershell -NoProfile -ExecutionPolicy Bypass -File .\tests\SmokeTests.ps1
powershell -NoProfile -ExecutionPolicy Bypass -File .\tests\HarnessReadiness.Tests.ps1

项目结构

路径说明
src/Bootstrapper.ps1主流程:Node 检查、官方 LTS 获取、DSH 启动、就绪确认、重试与日志
src/HarnessReady.ps1运行状态判定共享模块:Harness Web 指纹、端口状态、认证 URL 复用、打开 UI
src/Launcher.ps1桌面启动器逻辑(复用同一判定)
installer/Program.cs.NET Framework 外壳,内嵌 PowerShell 负载(Setup / Runtime / Uninstall 三种模式)
installer/Install.ps1、Install.cmd安装到 %LocalAppData%\DeepSeekHarnessBootstrapper 并校验快捷方式
installer/Uninstall.ps1分步确认的卸载
scripts/Build-Release.ps1生成 ICO 并编译三个 EXE
tests/语法检查与离线判定用例
VERSION.txt唯一版本号来源

日志位于 %LocalAppData%\DeepSeekHarnessBootstrapper\logs,不在仓库内。

版本与发布

VERSION.txt 是唯一版本来源,正式发布按 0.01 递增(v0.01 → v0.02 → v0.03 …)。 每个版本在 Releases 中附带三个安装包,包名必须包含版本号。

系统要求与限制

  • Windows 10 / 11 x64(ARM64 亦按官方 LTS 选择对应架构)。
  • 需要访问 nodejs.org 与 npm registry;Node.js MSI 安装需要 UAC 授权,无需重启。
  • 图标来源见下节;DeepSeek Harness 需要 npx 首次下载,网络状况会影响首次启动耗时。

第三方说明

Node.js 仅从 nodejs.org 获取,遵循其自身许可;DeepSeek Harness 通过 npm 包 @deepseek-ai/dsh 安装,遵循其上游许可与条款。本仓库不包含这两个产品及其品牌资源。

assets/dsh.png / assets/dsh.ico 为本地开发用图标资源;本项目不主张对 DeepSeek Harness 标识的所有权。若上游不允许再分发该图标,请在构建时替换或移除 assets/ 中的图像。

许可

见 LICENSE。