前言¶
DSH 的理念是「一切皆插件」。插件目錄是獨立站點,與 DeepSeek / 幻方沒有官方從屬關係,不應理解爲官方應用商店。
對智能體開發者來說,一個具體問題是:如何把本機的 DeepSeek Harness Web GUI 發佈到公網,同時避免公網請求直接落到 Web server,並且不直接修改 deepseek-harness 源碼。ai-eks/dsh-auth-tunnel 的做法是在 Web server 前加一個 loopback 密碼門,再由 cloudflared 建立 Cloudflare Tunnel。下面介紹它的安裝和用法。
這是什麼¶
ai-eks/dsh-auth-tunnel 是 ai-eks 維護的 MIT 許可插件。它包含兩個部分:
- 一個 loopback password gate,提供登錄頁和 HMAC cookie;
- 一個通過
cloudflared啓動的發佈通道,支持 quick 或 named-tunnel 模式。
插件目標是在不修改 deepseek-harness 本身的情況下,把 DeepSeek Harness Web GUI 暴露到公網。
核心功能¶
公網暴露¶
- 通過 Cloudflare Tunnel 暴露 DeepSeek Harness Web GUI。
- 在 Web server 前添加 loopback 密碼門,包含登錄頁和 HMAC cookie。
- tunnel 就緒後打印公網 Cloudflare tunnel URL。
兩種發佈模式¶
- Quick 模式。
- Named/tunnel token 模式。
設置與維護¶
- 在
Web Settings → Plugins → Plugin configuration下提供Auth Tunnel設置卡。 - 支持
allowRemoteSettings,允許認證後的公網頁面更新設置,並單獨更新 write-only 的訪問密碼。 - 支持
passwordRef與sessionTtlHours的原地更新。
安裝與啓用¶
前置條件¶
1、dsh CLI 和 pnpm 在 PATH 中。
2、cloudflared 在 PATH 中,或在插件中配置爲絕對可執行文件。
3、準備一個較長的隨機共享密碼,並保存爲 DSH credential。
4、package.json 聲明的 Node 要求是 ^22.19 || >=24。
安裝¶
從 npm 安裝最新發布的 prerelease bundle:
dsh plugin --profile web add dsh-auth-tunnel@next
也可以從 Git 安裝當前源碼:
dsh plugin --profile web add github:ai-eks/dsh-auth-tunnel
當前分支面向 DeepSeek Harness 0.1.1-rc.2。如果使用 0.1.0-rc.8 或更早版本,需要固定一個兼容的 immutable tag 或 revision。
如果使用 pnpm 10 或更高版本,可能需要在 profile 的 pnpm-workspace.yaml 中允許構建。
保存訪問密碼¶
將訪問密碼保存爲 DSH credential:
DSH_WEB_PASSWORD: 'replace-with-a-long-random-password'
保存位置:
$DSH_HOME/.credentials.yaml
啓動 Web profile:
dsh web
典型用法¶
Quick 模式¶
啓動並建立 tunnel 後,終端會打印:
cloudflare tunnel: https://<random>.trycloudflare.com
打開這個 URL,在登錄頁輸入 DSH_WEB_PASSWORD。
Named tunnel / token 模式¶
如果配置 publicHostname,使用 token 模式。示例中使用 DSH_TUNNEL_TOKEN,並在 cordis.patch.yml 中配置:
mode: token
tokenRef: DSH_TUNNEL_TOKEN
publicHostname: gui.example.com
gatePort: 7677
publicHostname 只填寫 DNS hostname,不要包含 https://、端口或路徑。
適用場景與注意¶
適合需要把本地 DeepSeek Harness Web GUI 暴露到公網,同時不希望直接修改 deepseek-harness 的使用者。
使用前注意:
- DSH 插件會以當前
dsh進程權限運行。安裝前應檢查源碼和許可證;本插件許可證爲 MIT。 allowRemoteSettings默認啓用。如果認證後的公網頁面不應管理 tunnel 本身,應關閉它。- 訪問密碼和配置變更不會合併成一個事務提交;訪問密碼通過 write-only 按鈕單獨更新。
- 遠程頁面不能保存會分配新的隨機 Quick URL 的變更;這類變更需要在本地完成。
- 對於認證後的公網頁面,gate 會把
settings.*、credentials.*、llm.*代理給 Host;針對auth-tunnelnamespace 的核心設置寫入會被拒絕,需要走插件的fenced endpoint。
參考¶
- 插件目錄:https://www.skillhub.cn/plugins/ai-eks/dsh-auth-tunnel
- GitHub:https://github.com/ai-eks/dsh-auth-tunnel