DSH Web GUI 的界面是爲桌面設計的,在手機上操作體驗較差。dsh-deepsleep 專門解決這兩個問題:一是通過插件適配手機佈局,二是提供一個帶密碼保護的局域網代理,讓你能用手機直接訪問。
這是什麼¶
這是一個 DSH 的客戶端插件,由 xxxsirrrr 維護。它包含兩大部分:一是手機佈局適配插件,二是局域網訪問代理。插件遵循 MIT 協議。
核心功能¶
手機佈局適配
桌面三欄佈局在手機寬度下自動切換爲單欄對話流、抽屜式側欄及詳情欄浮層。插件會根據視口寬度自動調整佈局結構。
移動端細節優化
支持 100dvh 動態視口、safe-area 劉海適配、輸入框防縮放、代碼塊橫向滾動、44px 觸控目標。
Polyfill 支持
提供 crypto.randomUUID polyfill 以支持非 localhost 環境,確保 DSH 客戶端在局域網 HTTP 上能正常工作。
密碼保護的局域網代理
提供帶密碼保護的局域網訪問代理。手機訪問時自動處理 Host 頭改寫,以支持 WebSocket/SSE。
安裝與啓用¶
將本目錄作爲 web profile 的 bundle 安裝。
dsh plugin --profile web add -w <path-to-this-directory>
安裝完成後,需要重啓 dsh web(插件集合變更需重啓才生效)。在桌面寬度下它不產生任何可見改動,移動端則會自動激活。
典型用法¶
啓動代理
可以使用 PowerShell 腳本或直接運行 MJS 文件。
# 使用 PowerShell 腳本(會交互式提示密碼和端口)
powershell -ExecutionPolicy Bypass -File start-mobile-link.ps1
# 或直接運行代理(默認端口 3082)
node lan-proxy-3080.mjs
訪問方式
手機打開 http://<電腦局域網IP>:<代理端口>。首次訪問會顯示登錄頁,輸入正確的密碼後即可正常使用。
適用場景與注意¶
適用場景
建議僅在安全、可信的網絡(如家庭 Wi-Fi)內使用。它適合需要在移動設備上查看 DSH 運行狀態或進行簡單交互的開發者。
安全警告
1. 代理走的是 HTTP 明文傳輸,密碼在局域網內不加密,擋不住抓包監聽。
2. dsh 自身無鑑權層,本代理僅提供密碼門。
3. proxy-password.txt 已被 .gitignore 排除,切勿提交到代碼庫。
4. 公共網絡請勿啓用此代理,需要強保護請使用 Tailscale 或 HTTPS。
總結¶
dsh-deepsleep 將 DSH 的手機體驗和遠程訪問能力整合在了一起,適合希望在移動場景下操作 DSH 的用戶。