dsh-lan: DSH 局域网暴露与余额查询插件

前言

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 永远不离开本地环境。

核心功能

  1. 局域网开放 Web GUI:修改 Web 服务器的绑定地址为 0.0.0.0,并自动枚举 IPv4 地址作为信任栅栏白名单,无需额外启动参数或补丁。
  2. 余额查询 RPC:提供 deepseek/balance RPC 接口,使用 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 端凭证,并调用官方接口查询余额。

注意事项

  1. 安全边界:DSH Web carrier 没有内置鉴权层。这里的“信任栅栏”仅指网络可达性策略。一旦绑定 0.0.0.0,同网段内的任何设备均可访问 Web GUI 并驱动会话执行命令。
  2. 凭证依赖:余额查询功能依赖 PC 端已配置的 DEEPSEEK_API_KEY,密钥逻辑上不出 PC,但前提是 PC 端必须正确配置了凭证。
  3. 部署建议:请仅在可信网络环境下暴露该服务,或在其前方部署反向代理并开启认证机制,以防止未授权访问。

结语

dsh-lan 通过简单的配置实现了 DSH 在局域网内的可用性,并利用 PC 端凭证提供了安全的余额查询手段。它符合 DSH “一切皆插件” 的理念,适合需要在本地网络中协作或通过脚本自动化查询余额的开发场景。

  • 插件目录:https://www.skillhub.cn/plugins/SparkWeiyang/dsh-lan
  • 仓库地址:https://github.com/SparkWeiyang/dsh-lan
羽毛球分组比赛记分
小程序二维码

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

小夜