Zum Hauptinhalt springen
B

owndsh (bundle)

boe1900/owndsh/plugin/packages/bundle

Plugin im Frühstadium, das DeepSeek Harness mit einem separat bereitgestellten selbstgehosteten OwnDsh-Server für Teamidentität, Modellzugriffssteuerung, Kontingente und Nutzungsprüfung verbindet.

Installation

dsh plugin --profile web add github:boe1900/owndsh

Dieses Plugin befindet sich im Unterverzeichnis plugin/packages/bundle des Repositorys.

README

OwnDsh 动态小鲸鱼图标

OwnDsh

OwnDsh · Truly Own Your DeepSeek-Harness.

The Self-Hosted Control Plane for DeepSeek-Harness.

真正拥有属于你的 DeepSeek-Harness。
DeepSeek-Harness 的私有化控制面。

OwnDsh 是 DeepSeek Harness 的自托管团队控制面。管理员统一管理身份、模型、API Key、访问权限、配额、插件、设备和审计;员工继续在自己的 DSH Desktop 或 Harness Web 中工作。

OwnDsh 不 fork 官方 Harness Web UI,不接管员工工作区,也不远程执行员工工具。员工可以安装标准 Harness 插件 owndsh-plugin,或使用预装插件和运行环境的 OwnDsh Desktop,客户端由独立仓库构建 macOS Intel、Apple Silicon 与 Windows x64 安装包。

当前处于预发布阶段。Docker 镜像只发布 next,npm 插件只发布 next,不会更新 latest

能力

使用者能力
平台管理员自托管控制台、LOCAL/LDAP/OIDC 身份、成员与设备治理
模型管理员集中保管供应商 API Key,管理模型、模型集、授权、Token、RPM 与并发
插件管理员配置安装地址、发布企业插件,设置可见范围并查看客户端状态
审计员查询管理操作、模型调用、用量与 request ID 关联记录
员工用企业账号登录 Harness,使用获准模型并自主安装企业插件,无需持有上游 API Key

Docker Compose 部署

当前镜像目标为 Linux amd64。准备 Docker Engine、Docker Compose 2.20.3+ 和 Git。

1. 启动

git clone https://github.com/boe1900/owndsh.git
cd owndsh
docker compose up -d --wait

默认访问 http://localhost:8080,初始账号 admin,密码 owndsh。第一次登录会强制设置符合安全策略的正式密码。数据库与账号由 PostgreSQL 创建,全部建表、种子数据和后续升级由 Server 内置 Flyway 自动执行,无需额外 SQL 文件。

需要让其他设备访问或覆盖默认凭据时,再创建 .env

cp .env.example .env

OwnDsh 只有一个公开地址配置。默认由 Compose 生成为 http://localhost:8080;需要让局域网设备访问时,把它改成部署机的实际 IP 和发布端口,例如:

ENT_PUBLIC_BASE_URL=http://192.168.1.50:8080

其中 192.168.1.50 替换为运行 Docker Compose 的机器 IP;若修改 OWNDSH_HTTP_PORT,这里使用相同端口。管理端回调会自动派生为 <ENT_PUBLIC_BASE_URL>/enterprise/auth/callback,不需要单独配置。

生产环境应由现有 Nginx、Ingress 或负载均衡提供可信 HTTPS,并把这个值改成外部 HTTPS 地址。OwnDsh Compose 只开放 Console 的 HTTP 端口,不直接管理证书。.env.example 中的数据库、Redis、JWT、master key 是开箱测试默认值;公网部署必须通过同名环境变量覆盖。

2. 可选:设置初始密码

Compose 默认使用下面的一次性管理员账号和密码;创建 .env 后可以自由修改:

ENT_BOOTSTRAP_ADMIN_USERNAME=admin
ENT_BOOTSTRAP_ADMIN_PASSWORD=owndsh

第一次登录会强制设置符合安全策略的正式密码。

3. 管理服务

docker compose up -d --wait
docker compose ps
docker compose logs -f server

Server 日志仅输出到 stdout/stderr,由 Docker/K8s 与日志平台采集和轮转,不需要应用日志卷。

打开 ENT_PUBLIC_BASE_URL 配置的地址,以配置的初始账号和密码登录。数据库 marker 保证初始化只执行一次;首次改密后,默认初始密码立即失效。

4. 配置企业

  1. 在“成员”中配置 LOCAL、LDAP 或 OIDC 身份来源。 若 LDAP 服务只提供明文 ldap://,在身份源表单填写 ldap://...;TLS 目录填写 ldaps://...
  2. 在“模型”中添加供应商、API Key 和受管模型。
  3. 创建模型集,并向全部成员、用户组或指定成员授权。
  4. 按需配置 Token 配额、RPM 和并发限制。
  5. 按需配置 npm 或包路径、发布企业插件,并设置对全部或指定成员可见。
  6. 邀请员工安装 OwnDsh 并登录;企业插件由员工在市场自行选择安装。

员工设备不会得到供应商 API Key;每次模型请求都由 OwnDsh 网关重新校验身份、授权和额度。

安装员工插件

使用独立仓库构建的 OwnDsh Desktop 时,直接打开应用并填写 Server 地址即可,无需另装 Node、pnpm 或插件。下面的命令用于已有 Harness/社区 Desktop 的设备。

先确保 pnpm 是 PATH 中可直接执行的命令。Harness 当前基线使用 pnpm 11.7.0

corepack enable
corepack install --global pnpm@11.7.0
pnpm --version

安装 npm 测试版到需要使用的 profile:

# Harness Web
dsh plugin --profile web add --ignore-scripts owndsh-plugin@next
dsh --profile web

# DSH Desktop
dsh plugin --profile desktop add --ignore-scripts owndsh-plugin@next

从 DeepSeek Harness 源码运行 CLI 时:

pnpm --dir /path/to/deepseek-harness dsh \
  plugin --profile web add --ignore-scripts owndsh-plugin@next

安装完成后重启对应 profile。OwnDsh 全屏页面会要求填写管理员提供的 OwnDsh Server HTTP(S) 地址;保存后完成企业登录即可使用管理员授权的模型。

Server 地址和 Refresh Token 由 Harness Host 的官方 settings/credentials 服务持久化。Access Token 只存在 Host 内存,浏览器页面不会读取或保存 Token;正常重启会静默恢复登录。主动退出、设备撤销、成员停用、改密或 30 天有效期结束后需要重新登录。

「OwnDsh 设置 → 插件」展示本人可见的插件,支持分类、搜索、详情确认、自主安装、更新和卸载;卡片不显示图标。管理员配置 npm 精确版本、GitHub 固定 commit、tgz 地址或客户端绝对路径,源码仓库单独填写。宿主 pnpm 负责包及其依赖,私有源使用宿主认证配置。安装后重启生效。V34 清空旧上传插件目录/范围/库存,不兼容旧制品协议;详见安装说明

OwnDsh 闲置时不建立企业 SSE、不定时拉配置或提前续期。用户请求时按需续期,服务端认证 401 最多续期重试一次;Refresh Token 失效或设备撤销时显示登录门禁,重新登录后可继续对话。网络暂不可达保留凭据,可再次发起请求或在 OwnDsh 设置点击刷新;模型与插件目录在打开设置或主动刷新时更新。

更新

更新服务端测试镜像:

docker compose pull
docker compose up -d --wait

更新员工插件:

dsh plugin --profile web remove owndsh-plugin
dsh plugin --profile web add --ignore-scripts owndsh-plugin@next

web 换成实际使用的 profile。移除后重新安装可以避免 pnpm 复用同版本缓存。

常见问题

pnpm not found on PATH

执行上面的 corepack enablecorepack install --global pnpm@11.7.0,直到直接运行 pnpm --version 成功。只写 corepack pnpm ... 不够,因为 dsh plugin 的子进程仍需要从 PATH 找到 pnpm。

保存 Server 后显示平台不可用

从员工设备访问 <Server地址>/healthz,再检查 DNS、防火墙、反向代理和 TLS 证书。Server 地址必须是完整 HTTP(S) origin,不能附带 API 路径。

登录后看不到模型

确认供应商和模型都已启用,并且该员工、员工所在用户组或全部成员拥有对应模型访问授权。配额策略不会代替访问授权。

重启后要求重新登录

确认启动的是原 profile,且它的官方 credentials provider 可写。主动退出、Server 地址切换、设备/成员撤销和 30 天有效期结束都会使长期会话失效。

GHCR 镜像无法拉取

仓库维护者首次发布后需要把 owndsh-serverowndsh-console 两个 GHCR package 设为 Public。部署机无需 GitHub Token。

运维与开发

本地开发体验可运行 ./scripts/local-demo.sh。该脚本要求同级存在锁定的 deepseek-harness checkout,并使用隔离状态启动正式 Server 和 Harness。

上游与声明

OwnDsh 是独立项目,不隶属于 DeepSeek AI 或 Anywhere Labs。DeepSeek Harness 与 DSH Desktop 的名称、代码和商标归各自所有;OwnDsh 只通过公开插件扩展点集成。

Ähnliche Plugins