tttnny/my-dsh--plugins-dsh-qr-access ↗★ 4
@lynn123411/dsh-qr-access
DSH 扫码访问:设置页实时生成当前实例(DSH Desktop / 任意 dsh)带 token 的访问地址二维码,手机扫码直连,免复制粘贴;Desktop 另附局域网 HTTPS 与本地 CA 证书码,地址实时跟随 DSH 重启后的 token 轮换。
安装
$
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:tttnny/my-dsh#46eb212fa958c3fccd76ab644ed83d68bda6fd60&path:plugins/dsh-qr-access说明文档
阅读完整 README ↗@lynn123411/dsh-qr-access
把当前 DSH 实例的浏览器访问地址变成二维码。在设置页新增「扫码访问」分区,实时生成带 token 的访问地址大尺寸二维码——手机相机一扫直达,免复制粘贴、免发消息传 URL。DSH Desktop 与任意 dsh --profile web 实例通用。
访问 token 随每次宿主重启(换代)轮换,本插件不做任何缓存:二维码每次都从当前实例现取,重启后扫到的永远是当前代的最新地址。
特性
- 扫码直连:二维码编码带 token 的完整访问 URL,手机相机一扫即打开 DSH,免去「电脑复制 → 传到手机」两步。
- 双数据源,自动选择:
- DSH Desktop(优先):读桌面同源接口
/api/desktop/settings,拿到局域网 HTTPS 地址、局域网状态四态与本地 CA 证书信息; - 任意 dsh 实例(兜底):读本插件宿主半区的
GET /api/qr-access/urls,拿到本机回环、局域网(绑定0.0.0.0时)、--trusted-host受信主机与当前页面地址。
- DSH Desktop(优先):读桌面同源接口
- 地址清单点选:当前页面地址 / 本机回环 / 局域网 / 受信主机(隧道·反代)逐条列出,点哪个生成哪个的码;不做网卡猜测,
--trusted-host声明什么就列什么。 - CA 证书码(Desktop):一键切到「CA 证书」页,扫码直达
.well-known/dsh-desktop-ca.crt下载页;证书地址按所选主机自动配对,附 SHA-256 指纹与 iOS / Android 信任引导。通用实例无 CA 数据,该页自动隐藏。 - 实时跟随 token 轮换:面板挂载期间每 30 秒轻量轮询 + 手动「刷新」按钮 + 页面重新可见即刷新,宿主重启后二维码自动变为新地址,无需任何操作。
- 状态可视化:Desktop 显示局域网 HTTPS「已就绪 / 启动中 / 未启用 / 失败」徽标与错误原因;通用实例显示「可跨设备 / 仅本机」,并直接说明「只监听 127.0.0.1」时手机为何连不上、该怎么起隧道。
- 安全边界明确:唯一宿主改动是注册一条只读路由,挂在 DSH 自带
/api前缀下,自动继承 Host/Origin 栅栏与浏览器会话鉴权;只为回环、局域网字面量、--trusted-host声明项与当前页面 authority 铸 token,响应一律no-store,不新增端口与凭据面。
安装
dsh plugin --profile web add @lynn123411/dsh-qr-access
限制:DSH 当前版本(0.1.5-rc.1)的 CLI 拒绝
--host 0.0.0.0,所以通用实例只能监听127.0.0.1,此时二维码只能在这台电脑上打开;跨设备需在本机起隧道 / 反向代理指向127.0.0.1:,并用--trusted-host声明该地址,插件会自动把它列出来。Desktop 的局域网 HTTPS 不受此限制。本地开发流程见 docs/local-dev.md。