前言¶
Sub2API 是一套可把多上游賬號、分組和渠道統一轉發的管理網關。單獨部署通常要自備 Docker、數據庫,還要自己記管理員賬號。DeepSeek Harness(DSH)用戶若只想在本機試路由、統計或 OpenAI 兼容轉發,往往希望「打開 Harness 就能用」,而不是再維護一套公網或手工 compose。
下面介紹的 dsh-local-sub2api(維護者 LinJohn8,GitHub:LinJohn8/dsh-local-Sub2api)把 Sub2API 本地棧內嵌進 DSH:隨 Harness 在本機拉起 Sub2API + PostgreSQL + Redis(官方 Docker 鏡像,僅監聽 127.0.0.1),左側欄提供 Local Sub2api 入口,主面板 iframe 展示 Sub2API 原管理界面,並完成本地自動登錄。上游賬號、API Key 等仍在 Sub2API 界面裏配置,插件不代填憑據。
這是什麼¶
插件 id 爲 local-sub2api,npm 包名 dsh-local-sub2api,當前資料中版本爲 1.0.0,許可證 MIT。它不實現 Sub2API 業務邏輯,而是編排本機 Docker 棧、內嵌 Web 控制台,並可選把 Harness 裏已有的 OpenAI 兼容廠商自動登記爲 Sub2API 上游賬號。
核心功能¶
資料中確認的能力包括:
- 打開 DSH 時可自動準備並啓動本地 Sub2API(可通過設置或 YAML 關閉自動啓動)。
- Docker Desktop 未運行時嘗試自動啓動,並等待引擎就緒(依賴 WSL2 後端)。
- 側欄 Local Sub2api 按鈕;運行中則在主面板內嵌 Sub2API 管理界面。
- 插件生成本地管理員並調用 Sub2API 登錄接口注入會話,打開即已登錄,無需公網服務器。
- 面板狀態欄:運行狀態、刷新、停止、重啓、在系統瀏覽器中打開。
- 中英文文案;跟隨 Harness 淺/深色主題偏好(內嵌頁以 Sub2API 自身樣式爲主)。
- 服務只綁定本機迴環,不對外網開放。
- model-vendor adapter:棧就緒後可自動把已有 OpenAI 兼容廠商(如皮卡丘中轉、DSh Our Free Model、Qoder 中國版免費 Qwen3.8-Flash)作爲上游接入 Sub2API。
Sub2API 內的賬號、分組、密鑰、模型廣場、日誌等原有功能均保留;runMode: simple 時隱藏多用戶/SaaS/計費相關界面,適合本機單人使用。
環境要求¶
- Windows,且已安裝 Docker Desktop(WSL2 後端;插件會檢查並嘗試啓動 Docker)。
- 首次啓動需從 Docker Hub 拉取鏡像(資料稱約 250 MB,視網絡而定)。
- 本機端口
18080(Sub2API)與18081(供內嵌面板的本地代理)須可用;proxyPort被佔用時會自動順延,狀態欄會顯示實際端口。 - 日常啓動多爲數秒到數十秒。
安裝與啓用¶
已抓取 README 未給出 dsh plugin add … 一類 CLI 安裝語句。可按社區目錄頁 skillhub.cn 插件條目 或 GitHub 倉庫說明,在 Harness 的插件 / Plugins 頁面安裝並啓用;停用與移除也在該頁面完成(移除後容器不會自動刪除,需按後文自行 docker compose down)。
安裝後,插件通過 cordis.patch.yml 註冊客戶端注入(@deepseek-ai/dsh-client-ui-layout 等),側欄即可出現入口。
在 cordis.patch.yml(例如 C:\Users\86158\.dsh\cordis.patch.yml 或對應 profile 下的同名文件)中可覆蓋同 id 配置:
- id: local-sub2api
config:
autoStart: false # 隨 Harness 自動啓動本地服務(默認關閉)
autoStartDocker: true # Docker Desktop 未運行時嘗試自動啓動
sub2apiPort: 18080 # Sub2API 本機端口
proxyPort: 18081 # 內嵌面板使用的本地代理端口
image: weishaw/sub2api:0.2.19 # 升級時改這裏
runMode: simple # simple=本地單用戶;standard=完整功能
stopOnUnload: false # 關閉 Harness 時是否停止容器
修改 sub2apiPort / image 後,下次啓動會重建對應容器。
設置頁(推薦):打開 設置 → 本地 Sub2api:
| 開關 | 作用 | 默認 |
|---|---|---|
| 服務開關 | 立刻啓動/停止本地 Sub2API,並顯示運行或已停止 | 停止 |
| 打開 Harness 時自動啓動 | 記錄下次打開 DSH 是否自動拉起 | 關 |
兩項持久化在 <dataDir>/preferences.json,無需改 YAML 重載插件;設置頁優先於 YAML 中的 autoStart。若要恢復「以 YAML 爲準」,刪除 preferences.json 即可。
典型用法¶
經過上面的步驟啓用插件後,可按 README 中的流程操作:
- 打開 DeepSeek Harness,插件自動準備環境。
- 側欄點擊 Local Sub2api(展開顯示文字,收起顯示圖標)。
- 狀態爲「運行中」時顯示管理界面;首次爲「啓動中…」,等待鏡像拉取與數據庫遷移;失敗時面板顯示原因與重試。
- 在 Sub2API 界面添加上游賬號、分組與 API Key。
- 本機其它程序調用 Sub2API 時,基址爲
http://127.0.0.1:18080,OpenAI 兼容路徑示例:http://127.0.0.1:18080/v1,Key 使用界面創建的sk-...。
不經 Harness、僅用瀏覽器訪問時,打開 http://127.0.0.1:18080,使用運行目錄 .env 中的 ADMIN_EMAIL / ADMIN_PASSWORD 登錄。
查看運行狀態(Harness 運行時):
Invoke-RestMethod http://127.0.0.1:54922/local-sub2api/status | ConvertTo-Json
手動觸發上游廠商接入:
Invoke-RestMethod http://127.0.0.1:54922/local-sub2api/action -Method Post -ContentType 'application/json' -Body '{"action":"provision-providers"}' | ConvertTo-Json
默認內置 adapterProviders 三項(皮卡丘、DSh Our Free Model、Qoder CN Qwen3.8-Flash),密鑰通過 apiKeySource 從環境變量、~/.dsh/.credentials.yaml 的 refs 或 ~/.dsh 下文件讀取,僅寫入本機 Sub2API,解析失敗則該項 skipped,不影響其它廠商。關閉自動接入可設 adapterAutoProvision: false,徹底關閉 adapter 設 adapterEnabled: false。
調用 Qoder 免費模型時,資料要求 model 填 qodercn/qfmodel。Our Free Model 需先在本機啓用轉發(forward.enabled 爲 true),否則 Sub2API 容器無法連上宿主機網關;默認假定轉發端口與 host.docker.internal 訪問方式見 README 中的 baseUrl 說明。
數據目錄與日常排查¶
默認運行目錄:%USERPROFILE%\.dsh\local-sub2api(跟隨 DSH_HOME),內含生成的 docker-compose.local.yml、敏感 .env、data/sub2api、data/postgres、data/redis。
docker ps --filter name=dsh-local-sub2api
docker logs -f dsh-local-sub2api
docker compose -f "$env:USERPROFILE\.dsh\local-sub2api\docker-compose.local.yml" down
完全重置需 down 後刪除 data 目錄(會丟失所有 Sub2API 配置)。常見問題:Docker 未就緒、端口占用、首次啓動慢(拉鏡像/遷移)、內嵌頁仍是登錄頁(自動登錄失敗,可用 .env 賬號或重啓/重建管理員)。
適用場景與注意¶
適合:已在 Windows + Docker Desktop 上使用 DSH,希望在本機統一試用 Sub2API 路由、日誌與多上游管理,且不想暴露公網管理端口的開發者。
務必注意:
- 插件以當前 DSH 進程權限運行,會啓動 Docker 容器並讀寫
~/.dsh下憑據與數據;安裝前應自行查閱源碼與 MIT 許可證,確認可接受風險。 - 本地代理會去掉 Sub2API 的
X-Frame-Options/ CSPframe-ancestors以便 iframe 內嵌,代理僅監聽127.0.0.1。 - 若在 Sub2API 內修改管理員密碼,需與
.env同步或由插件重新生成(配合清空data的說明見 README)。 - DSH 生態理念是「一切皆插件」;skillhub.cn 爲社區目錄,與 DeepSeek / 幻方無官方從屬關係。
結尾¶
dsh-local-sub2api 把 Sub2API 收成「打開 Harness 即可用的本機網關」:Docker 棧、自動登錄、側欄控制台,並可選對接你已有的 OpenAI 兼容廠商。進一步瞭解與獲取源碼見 目錄頁 與 GitHub 倉庫。