前言¶
DeepSeek Harness (DSH) 的 Web 運行時默認通常綁定在本地迴環地址上,這限制了在局域網內其他設備訪問 Web GUI 的能力。同時,在開發或運維過程中,直接在命令行或腳本中處理 DeepSeek 官方接口(如查詢餘額)需要暴露 API Key,存在安全風險。dsh-lan 作爲一個 bundle 插件,解決了這兩個問題:它將 Web GUI 綁定至局域網地址,並提供一個不離開 PC 端的餘額查詢 RPC 接口。
這是什麼¶
dsh-lan 是一個 DeepSeek Harness (DSH) 插件,由開發者 SparkWeiyang 維護。它屬於聯網工具類別,許可證爲 MIT。該插件的核心價值在於將 Web GUI 的訪問範圍擴展至局域網,並利用 PC 端已配置的憑證提供官方餘額查詢服務,確保 API Key 永遠不離開本地環境。
核心功能¶
- 局域網開放 Web GUI:修改 Web 服務器的綁定地址爲
0.0.0.0,並自動枚舉 IPv4 地址作爲信任柵欄白名單,無需額外啓動參數或補丁。 - 餘額查詢 RPC:提供
deepseek/balanceRPC 接口,使用 PC 端配置的DEEPSEEK_API_KEY向官方 API 發起請求。
安裝與啓用¶
執行以下命令將插件安裝到 web profile:
dsh plugin --profile web add dsh-lan
安裝完成後,需編輯 $DSH_HOME/profiles/web/package.json,確保 dsh-lan 位於 @deepseek-ai/dsh-web-app 之後,將其加入 bundles 列表:
{
"dsh": {
"profile": {
"bundles": [
"@deepseek-ai/dsh-base",
"@deepseek-ai/dsh-web-app",
"dsh-lan"
]
}
}
}
典型用法¶
安裝並配置完成後,啓動 Web 服務:
dsh web # 默認綁定 0.0.0.0:3080
dsh web --port 8080 # 指定端口
啓動後,web-runtime 會輸出局域網訪問地址(如 http://192.168.x.x:3080)。
通過 RPC 調用餘額查詢。客戶端發送標準 RPC 信封:
{
"type": "client-request",
"rpcId": "uuid",
"method": "deepseek/balance",
"payload": { "args": {} }
}
成功響應示例:
{
"is_available": true,
"balance_infos": [
{ "currency": "CNY", "total_balance": "8.27", "granted_balance": "0.00", "topped_up_balance": "8.27" }
]
}
若 PC 端未配置 DEEPSEEK_API_KEY,RPC 將返回 internal 錯誤。
原理¶
插件通過兩個文件實現功能:
1. cordis.patch.yml:這是一個 bundle patch 文件。它覆蓋 webserver 的配置,將 host 設置爲 0.0.0.0(端口隨 --port 參數可調),並插入 deepseek-service 服務加載邏輯。
2. lib/index.js:實現了一個 TypertRemoteService 子類。它使用 @Remote('balance') 註冊 deepseek/balance 端點。在處理請求時,它通過 ctx.credentials.resolve('DEEPSEEK_API_KEY') 獲取 PC 端憑證,並調用官方接口查詢餘額。
注意事項¶
- 安全邊界:DSH Web carrier 沒有內置鑑權層。這裏的“信任柵欄”僅指網絡可達性策略。一旦綁定
0.0.0.0,同網段內的任何設備均可訪問 Web GUI 並驅動會話執行命令。 - 憑證依賴:餘額查詢功能依賴 PC 端已配置的
DEEPSEEK_API_KEY,密鑰邏輯上不出 PC,但前提是 PC 端必須正確配置了憑證。 - 部署建議:請僅在可信網絡環境下暴露該服務,或在其前方部署反向代理並開啓認證機制,以防止未授權訪問。
結語¶
dsh-lan 通過簡單的配置實現了 DSH 在局域網內的可用性,並利用 PC 端憑證提供了安全的餘額查詢手段。它符合 DSH “一切皆插件” 的理念,適合需要在本地網絡中協作或通過腳本自動化查詢餘額的開發場景。
- 插件目錄:https://www.skillhub.cn/plugins/SparkWeiyang/dsh-lan
- 倉庫地址:https://github.com/SparkWeiyang/dsh-lan