Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

WebDSH —— 把 DeepSeek Harness 改造成公司内部多用户 Web 服务器

目标:让 dsh(DeepSeek Harness)以 Web 服务器形态运行在公司内网/公网服务器上, 用户用浏览器(含手机)远程访问;同一台服务器服务多个用户,各用户数据隔离; 工作空间可在用户之间共享。改造以**覆盖层(overlay)**形态进行,不 fork 官方包, 可跟随 @deepseek-ai/dsh 升级。

🤖 面向 AI 代理/协作者的开工入口见 AGENTS.md(文档地图、当前状态、 已核实事实、常用命令、部署目标、工作约定)。

产品愿景

一支团队、一套服务器上的代码、各自的开发分支。 多用户可以共享服务器上同一套代码仓库进行开发:仓库 → 分支 → 对话 三层组织; 共享分支团队协作,个人分支(命名自由、仅本人可见)各自开发、互不干扰; 用户登录后自动匹配其代码平台的凭据,提交与推送按人归因。

功能特性

# 特性 说明
F1 服务器端运行 dsh web 天然是 Web 服务器(HTTP + WebSocket + React 前端),改造后常驻服务器
F2 手机远程访问 浏览器(含手机)经 HTTPS 远程访问;登录后全功能可用
F3 同一服务器多用户 每用户独立进程 + 独立 $DSH_HOME,会话/设置/凭据/文件互不可见
F4 工作空间分享 普通目录工作空间按 ACL 分享(读/写/撤销),见 docs/05
F5 代码仓库工作区与分支开发(新增) 工作区可对应 Git 代码仓库;UI 自动呈现 仓库 → 分支 → 对话 层级;用户自选展示哪些分支;分支下挂各自的对话;共享分支团队协作 + 个人开发分支;用户凭据绑定代码平台账号,见 docs/09

文档导航

文档 内容
docs/01-现状分析.md 现有架构盘点:dsh web 今天是什么、能力与差距(含代码位置)
docs/02-目标架构.md 目标架构总览:子域路由 + 每用户独立 dsh 进程 + 认证前门
docs/03-认证与安全设计.md 认证、会话 token、信任模型、特权方法门禁
docs/04-多用户数据面与隔离.md 每用户 DSH_HOME、进程模型、OS 级隔离选项与取舍
docs/05-工作空间分享设计.md 分享 ACL、双注册表同步、并发控制
docs/06-覆盖层实现方案.md 不 fork 的实现:新包清单、patch 插入点、RPC 门禁表
docs/07-分阶段实施计划.md Phase 0–4 任务分解与验收标准
docs/08-部署与运维.md Caddy/TLS、systemd、备份、审计、配额、监控、升级
docs/09-代码仓库工作区与分支开发.md 仓库化工作区:分支模型、凭据绑定、分支 UI、权限与并发
docs/10-实施日志与Phase0验证.md 实施日志:Phase 0 技术验证结论(含 R1 设计修订)、移动端实测清单

决策记录

第一轮(2026-08-15,与用户确认)

决策项 结论
部署场景 公司/组织内部(多人、统一管理)→ 需要用户账号、审计、配额
隔离强度 每用户独立进程(方案 A),数据面按用户隔离;OS 级隔离作为阶段 2+ 的强化项
改造形态 覆盖层:新插件 + profile patch,不 fork @deepseek-ai/dsh

第二轮(2026-08-15,新增 F5 仓库工作区)

决策项 结论
仓库存储模型 服务器端每仓库一个 bare 主库 + 按分支的 git worktreegit worktree add),不同分支可并行开发;worktree 目录即官方 workspace(cwd 绑定),会话自动落在分支下
分支模型 共享分支(团队可见)+ 个人分支(名称由用户设定,gate 记录 owner,仅本人/被授权者可见,可一键提升为共享、不改名);受保护分支(main/develop)只读,变更走 Codeup MR 评审
凭据绑定 用户登录后按代码平台账号绑定凭据(gate 加密保管);添加工作区时选仓库 + 凭据;提交/推送按人归因(worktree 注入 user.name/email + credential.helper)
分支 UI 新增客户端插件 @webdsh/ui-repos(走官方 client 插件 roster insert)呈现 仓库→分支→对话 层级与分支显隐开关——官方包仍零改动,但"前端零改动"原则对该特性让位于"官方包零改动 + 新增客户端插件"
与分享的关系 仓库成员(repo_members)是仓库级 ACL;分支 worktree 目录复用 F4 的 workspace 分享机制,两层叠加

第三轮(2026-08-15,F5 细节确认,用户答复)

决策项 结论
代码平台 阿里云 Codeup;HTTPS + 个人访问令牌优先,SSH key 备选
受保护分支 走 MR 评审:dsh 在受保护分支上只读(只读 worktree + 只读沙箱),合入一律经 Codeup MR(含 admin);拒绝逻辑由 Codeup 分支保护承担
共享分支并发 不做单写者强约束,靠团队约定(pull --rebase 等写入规范)
个人分支命名 由用户设定;"个人"是分支属性(gate branches 表记录 owner),不靠 <用户名>/ 前缀推断

一句话结论

dsh web 今天已经是一个真正的 Web 服务器(HTTP + WebSocket + React 前端 + 多会话), 缺的三块是:认证(完全没有,--host 0.0.0.0 被硬编码拦截)、多用户数据面$DSH_HOME 单根,会话/工作空间/设置/凭据全部混在一起)、工作空间分享 (workspace 记录没有 owner/ACL)。三块都能在不 fork 的前提下以覆盖层实现; 在此基础上再叠加 F5 仓库化工作区:仓库 → 分支 → 对话 三层组织, 让团队共享一套服务器代码、各自开分支开发。详见各文档。

目录结构(本仓库)

WebDSH/
├── README.md            # 本文件
└── docs/                # 方案文档集
    ├── 01-现状分析.md
    ├── 02-目标架构.md
    ├── 03-认证与安全设计.md
    ├── 04-多用户数据面与隔离.md
    ├── 05-工作空间分享设计.md
    ├── 06-覆盖层实现方案.md
    ├── 07-分阶段实施计划.md
    ├── 08-部署与运维.md
    └── 09-代码仓库工作区与分支开发.md

实施阶段开始后,本仓库将新增 gate/(认证前门服务)、plugin/(dsh 覆盖层插件, 含 ui-repos 客户端插件)两个源码目录,目录结构届时更新。

About

把 DeepSeek Harness(dsh)改造成多用户 Web 服务器:认证前门 + 每用户独立进程与隔离 + 工作空间分享 + Git 仓库分支开发。覆盖层方案,不 fork 官方包。

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages