dsh-https-fix
DeepSeek Harness plugin: built-in HTTPS reverse proxy with configurable settings (设置→插件配置→Https Fix)
- Stars
- 2
- Language
- JavaScript
- Created
- Aug 21, 2026
- Updated
- Sep 16, 2026
Introduction
dsh-https-fix
一句话:让 dsh 的 Web GUI 能从外网访问。 自带 HTTPS 反向代理、受信域名注册、客户端热补丁、Web 账密登录、证书管理(自动自签 / 自有证书 / 无域名用 IP)。
本项目主要服务于作者本人使用。更新节奏与作者升级 dsh 的节奏绑定,不定期、无法预测;请自行拉取最新代码并自行承担适配成本。
⚠️ 高危插件:先读完这三条再装
- 它改了 dsh 的源码。 dsh 没有官方扩展点,插件靠给 dsh 安装目录里的
@deepseek-ai/dsh-client-connection/lib/client.js打运行时热补丁来放行设置页。dsh 一升级就被覆盖,需要重新打补丁。 - 装错版本 = dsh 直接起不来(不是"功能不可用")。插件版本必须与 dsh 版本严格一致:
dsh --version的输出 = 要装的分支名 = 插件version。升 dsh 之前,先把插件切到对应分支,或者先禁用插件。 - 它把 dsh 暴露到公网。 dsh 里的 agent 能在你机器上执行命令;请务必改掉默认密码、配好防火墙白名单。默认账密是
admin/admin,登录页的「忘记密码?」里有重置办法。
🔴 dsh 更新时必须同时处理这个插件
dsh 一升级,旧插件会让 dsh 完全起不来。 所以升级 dsh 前二选一,不能跳过:
先把插件关掉:
dsh plugin --profile web remove dsh-https-fix,或者在$DSH_HOME/profiles/web/cordis.patch.yml里给https-fix那一行加上disabled: true;或者让 agent 一并更新:把下面这句话交给你的 agent ——
“我要把 dsh 从 <旧版本> 升到 <新版本>。请按
AGENTS.md的升级顺序,先把 dsh-https-fix 切到dsh-<新版本>分支(上游没有该分支就先禁用插件),再升级 dsh;重启后跑完 12 项校验、重打热补丁,最后把结果报给我。”顺序永远是:先处理插件,再升级 dsh。 反过来就是 dsh 起不来的事故(
plugin(s) failed to load)。
安装(可以直接把下面这段丢给 agent 让它干)
复制这句话给你的 agent: “读
https://github.com/MingYU-kalo/dsh-https-fix/blob/main/AGENTS.md,按它安装 dsh-https-fix;安装前先问我它要求的四个必问问题。”agent 版完整步骤、四个必问问题(http 是否公网 / IP 还是域名 / 自签还是自有证书 / 是否启用账密登录)、装完验证、以及重置登录账密的方法都在 AGENTS.md。
自己动手就三步:
dsh --version # 1) 记下版本,例如 0.1.5-rc.2
dsh plugin --profile web add github:MingYU-kalo/dsh-https-fix#dsh-<版本> # 2) 装同名分支
# 3) 重启 dsh web,浏览器打开 https://<域名或IP>:<https端口>,用 admin/admin 登录
首次进入后到 设置 → 插件配置 → Https Fix:填域名或 IP、选证书(两个路径都留空 = 自动自签)、点「一键打热补丁」,再点「校验 HTTPS 可用性」应当 12 项全绿。
本地路径安装必须带 file: 前缀(裸路径会被装成 link: 依赖,dsh 直接起不来):
dsh plugin --profile web add file:/path/to/dsh-https-fix
版本对应表
| dsh 版本 | 装哪个分支(= 插件版本) |
|---|---|
0.1.5-rc.2(当前) | dsh-0.1.5-rc.2、main |
0.1.5-rc.1 | dsh-0.1.5-rc.1 |
0.1.5-alpha.1 | dsh-0.1.5-alpha.1 |
0.1.2-rc.1 | dsh-0.1.2-rc.1 |
0.1.1-rc.2 | dsh-0.1.1-rc.2 |
自检:
dsh --version必须与插件package.json的version完全一致;不一致就是装错分支了。
dsh 起不来时怎么自救
# 方式 1:卸载插件
dsh plugin --profile web remove dsh-https-fix
# 方式 2:只禁用这一行($DSH_HOME/profiles/web/cordis.patch.yml 必须是顶层数组)
- insert:
- id: https-fix
name: dsh-https-fix
disabled: true
改完重启 dsh web 即可恢复。
功能一览(都在卡片里配置,一行一个设置)
- HTTPS 反代:插件自己监听 TLS,反代到
127.0.0.1:<httpPort>,不依赖 nginx - 受信域名:运行时把域名/IP 注册进
trustedHosts,不用改 dsh 启动参数 - 客户端热补丁:一键给 dsh 的
connection.isLoopback打豁免(含还原),让经域名/IP 访问的设置页可用 - TLS 证书:自动自签(含公网 IP,无域名也能用)或填自己的 cert/key 路径(Let's Encrypt 的 IP 证书也行)
- Web 账密登录:默认开启;账号明文保存、密码只存 SHA-256;会话 7 天;只作用于插件端口
- 访问与安全:关闭 http 外网访问、自动模式(网页 token)、http 端口、核对版本号(不一致拒绝启动 HTTPS)
- 诊断:「校验 HTTPS 可用性」(12 项,含登录项)、「一键打热补丁」「还原补丁」
文档
- AGENTS.md —— 给 agent 的安装/维护手册(四个必问问题 + 重置密码步骤)
- docs/MAINTENANCE.md —— 内部机制、代码地图、排障手册
- docs/REQUIREMENTS.md —— 最早的需求文档
许可
MIT © 2026 MingYU-kalo