dsh-local-sub2api:在 DeepSeek Harness 裏一鍵跑本地 Sub2API

前言

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 中的流程操作:

  1. 打開 DeepSeek Harness,插件自動準備環境。
  2. 側欄點擊 Local Sub2api(展開顯示文字,收起顯示圖標)。
  3. 狀態爲「運行中」時顯示管理界面;首次爲「啓動中…」,等待鏡像拉取與數據庫遷移;失敗時面板顯示原因與重試。
  4. 在 Sub2API 界面添加上游賬號、分組與 API Key。
  5. 本機其它程序調用 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 / CSP frame-ancestors 以便 iframe 內嵌,代理僅監聽 127.0.0.1。
  • 若在 Sub2API 內修改管理員密碼,需與 .env 同步或由插件重新生成(配合清空 data 的說明見 README)。
  • DSH 生態理念是「一切皆插件」;skillhub.cn 爲社區目錄,與 DeepSeek / 幻方無官方從屬關係。

結尾

dsh-local-sub2api 把 Sub2API 收成「打開 Harness 即可用的本機網關」:Docker 棧、自動登錄、側欄控制台,並可選對接你已有的 OpenAI 兼容廠商。進一步瞭解與獲取源碼見 目錄頁 與 GitHub 倉庫。

羽毛球分组比赛记分
小程序二维码

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

小夜