dsh-loopback-bridge: 让 DSH Web 设置页在局域网与公网可写

DSH Web 设置页默认只认本机地址。通过局域网 IP 或公网域名访问时,页面会提示设置不可用。dsh-loopback-bridge 插件通过在客户端注入逻辑,欺骗浏览器认为当前访问地址是回环地址,从而解锁设置页的读写权限。

核心功能

  • 远程能改设置:在局域网 IP、NAS 域名或公网域名下打开 DSH,设置页内的模型和 API Key 可以正常修改。
  • 不改官方包:插件是独立安装的,不影响 DSH 官方包的升级与维护。
  • 装完即生效:安装后重启 Web 服务即可使用,无需修改 Nginx 等反代配置。
  • 0.1.2 友好:针对 DSH 0.1.2 版本进行了适配,避免了旧版本中因 Host 绑定导致的 Cookie 校验问题。

安装与启用

  1. 确认服务端信任访问地址

    启动 dsh web 时,必须使用 --trusted-host 参数覆盖实际访问的 hostname 或 IP。

    dsh web --host 127.0.0.1 --port 3080 \
      --trusted-host 192.168.31.229 \
      --trusted-host dsh.example.com
  1. 安装插件

    使用官方插件安装命令,将插件添加到 web profile。

    dsh plugin --profile web add github:johnhom1024/dsh-loopback-bridge
  1. 重启服务

    安装完成后需要重启 dsh web。如果使用 Docker 部署,建议对整个 DSH 栈进行重建,而不是仅重启单个容器。

    安装并重启后,刷新页面,远程打开设置页,模型 tab 不再报错,即可正常保存 API Key。

版本要求与注意事项

  • 版本兼容性:
    • DSH 0.1.2-rc.1 验证通过。
    • DSH 0.1.5 及以上版本必须使用插件的 1.0.1 版本。
    • 更早版本服务端需要手动修改 Host,不推荐使用。
  • --trusted-host 参数:这是开启远程访问的前提,必须与你在浏览器地址栏输入的实际地址一致。
  • 反代 Host 配置:不要将特权 API 的 Host 改写成 127.0.0.1(在 0.1.2 版本中,Cookie 会绑定 Host,修改后会导致 401 认证失败)。
  • 鉴权策略:
    • 局域网信任模型可以“裸奔”,即不额外加鉴权。
    • 挂载公网时,必须在前面加 authentik、oauth2-proxy 等鉴权层。

安全模型

该插件仅修改客户端逻辑。这意味着,谁能打开 DSH 的页面,谁就能修改设置、调用 credentials.set。这种行为在自家反向代理(Reverse Proxy)后面是符合预期的;但在公网环境下,必须配合鉴权组件使用。

总结

dsh-loopback-bridge 解决了 DSH Web UI 在非本机访问场景下功能受限的问题。它通过客户端桥接技术,让开发者可以在任何能访问 Web UI 的地址上管理模型与凭据。如果 DSH 官方在服务端层面支持了 isLoopback 检测的关闭,该插件将失去作用,届时卸载即可。

  • GitHub: https://github.com/johnhom1024/dsh-loopback-bridge
  • 插件目录: https://www.skillhub.cn/plugins/johnhom1024/dsh-loopback-bridge
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜