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
羽毛球分组比赛记分
小程序二维码

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

小夜