Repository navigation
Releases: Xinglei-dev/dsh-plugin
Releases · Xinglei-dev/dsh-plugin
Release list
dsh-pairing-entry 0.1.0
给 DSH Web 一个收藏夹里不会失效的入口:访问 /entry/<key>,浏览器被送到当前进程的启动 token 上,登录流程与直接打开 dsh web 打印的地址一致。key 在 Web 设置面板里配置。
安装
dsh plugin --profile web add \
"git+https://github.com/Xinglei-dev/dsh-plugin.git#dsh-pairing-entry-v0.1.0&path:/plugins/dsh-pairing-entry"装完重启 dsh web。
配置
打开 设置 → 插件 → 配对入口,点「随机生成」再保存。面板会显示入口地址,复制进收藏夹即可。也可以直接写 profile 的 cordis.patch.yml:
- id: pairing-entry
config:
key: '<你的 key>'key 至少 32 个字符,只能用 A-Z a-z 0-9 - _。没配 key 时插件照常加载,只是不提供入口页。
行为
GET /entry/<key>返回 303,Location: ../?token=<当前启动 token>,随后由 DSH 照常签发 cookie。- Host、Origin、
Sec-Fetch-Site不可信的请求直接 403,不会把 token 反射给别的站点。 - key 是 volatile 配置:面板里保存或手改 patch 都会立即让路由按新 key 生效,不用重启;删掉 key 则入口页停止服务。
- 取代
dsh-fixed-pairing-token,不兼容旧配置,旧的环境变量和 patch 条目都不再生效。
要求与限制
- DSH
>=0.2.1-rc.2 <0.3.0-0,在0.2.1-rc.2上实测:入口跳转、信任栅栏、热切换 key、清除 key、客户端 bundle 加载。 - Node.js
^22.19.0 || >=24.0.0。 - 经反向代理暴露时需要用
--trusted-host声明外部域名,否则入口页返回 403。 - 浏览器端 bundle 依赖 DSH 未公开的客户端加载契约;版本形状不符时插件在加载阶段报错,不会静默降级。
- 入口地址在面板里按根挂载拼接;给 GUI 加路径前缀的部署需要自行调整。