DSH 插件市场DeepSeek Harness 社区插件目录

dsh-server-deployment

未验证 集成与连接 ★ 39 0.0.0

DeepSeek Harness 多用户服务器部署:登录门户 / 每用户独立实例与 OS 级隔离 / 独立 API Key / 交付文件抽屉;文件访问经 sudo 助手降权执行(修复 issue #1 TOCTOU)。非本机工具。

一句话定位

DeepSeek Harness 多用户服务器部署:登录门户 / 每用户独立实例与 OS 级隔离 / 独立 API Key / 交付文件抽屉;文件访问经 sudo 助手降权执行(修复 issue #1 TOCTOU)。非本机工具。

安装方式

在 DSH 的 web profile 中执行下面的命令;装完刷新页面即可。

$ dsh plugin --profile web add 'git+https://github.com/AnkoCD/dsh-server-deployment.git#c6a6f120bc44199a6f2736714900e636ea3c7419'

兼容的 DSH 版本

未声明

作者与热度

AnkoCD · ★ 39 · 更新于 2026-08-25

关于这个插件

DeepSeek Harness 服务器部署(dsh-server-deployment)

简体中文 | English

为 DeepSeek Harness(DSH)Web 端增加多用户门户的零依赖 Node 网关:登录认证、每用户独立 DSH 实例与 OS 级数据隔离、每用户独立 API Key,以及内置的交付文件抽屉(下载 / 上传 / 当前工作区自动定位)。隔离以 OS 账号为边界而非网关代码——文件访问经 sudo 助手 runuser 降权为 dsh- 用户执行(修复 issue #1 TOCTOU 竞态),网关对用户目录零权限;完整机制见 docs/multi-user-isolation.md。 部署定位(重要):本项目是服务器端部署方案——网关、每用户 DSH 实例与文件助手全部运行在远程服务器上,多个用户通过浏览器(公网域名 + HTTPS)访问各自的会话与交付文件;它不是本机 / 桌面工具,无需在用户电脑上安装任何软件。文档中的示例路径(如 /opt/deepseek-harness、/etc/systemd/system)均为服务器端路径。 特性 登录门户:自研暗色登录页(漆面 + 金箔风格),scrypt 口令(兼容旧版 APR1)、HMAC 签名会话 Cookie(HttpOnly / Secure / SameSite=Lax)、登录限流(IP + 账号两级)、CSRF 双提交校验。 用户隔离:每个用户一个独立 DSH 实例(独立端口),以独立系统账号 dsh- 运行,DSH_HOME 指向其 0700 私有目录;userctl.js 一条命令完成建号 / 改密 / 删号 / 预置 Key。 每用户独立 API Key:登录后无 Key 自动引导 /setup 填写,经回环 RPC 写入该用户私有的 .credentials.yaml(0600,属主仅本人)。 回环特权接口修复:网关向后端呈现 Host: 127.0.0.1: 并剥离浏览器信任标记,DSH 钉在回环的 settings / credentials / agentPreset 等特权接口在公网访问下同样可用。 交付文件抽屉(文件管理):主界面右下角一颗可拖动胶囊「🗂 文件管理」(2026-08 起由「交付文件」+「上传文件」双胶囊合并而来),白色抽屉内嵌文件浏览器——目录浏览、下载(attachment + 中文文件名)、多文件上传(100MB 上限);自动定位到当前对话所在工作目录(嗅探会话 RPC 追踪 cwd,持久化恢复)。胶囊在 SPA 弹窗(设置面板/模态)打开时自动隐藏,避免遮挡。 安全边界:所有用户文件访问经 sudoers 固定路径的助手脚本——root 仅校验参数并降权,文件操作以 dsh- 用户自身身份执行(修复 issue #1 的 TOCTOU 竞态);网关进程对用户目录零权限;隐藏文件(含 .credentials.yaml)不可下载;SPA 注入

多用户与数据隔离的完整说明见 docs/multi-user-isolation.md。 目录结构

快速部署(概览)

1. 安装 DSH(npm 包)并准备 Node 运行时;按 units/ 配置网关 systemd 服务(User= ,仅监听 127.0.0.1)。 2. 用 sudo bin/dsh-users.sh add 建号(自动创建 OS 账号、分配端口、生成并启动实例)。 3. 安装 root 助手并配置 sudoers(固定路径白名单):

升级或自检时可在服务器上按以下清单验证助手(把 换成真实用户名):

4. 按 nginx/dsh-https-1145.conf 配置 TLS 反向代理(替换 server_name 为你的域名并挂证书)。 5. 登录后首次使用会引导填写 DeepSeek API Key(仅写入用户私有目录)。 环境变量:网关与 userctl 均可用环境变量覆盖默认的 /opt/deepseek-harness 路径: bin/dsh-users.sh 与 bin/dsh-file-list 已按自身位置自定位:任意目录检出即可直接运行(dsh-users.sh 首次调用自动重提权为 root;node 解析相对脚本位置,缺失时回退 PATH)。自定义安装前缀时 systemd 单元用上面的 sed 命令生成;网关 systemd 单元还支持 EnvironmentFile=-/etc/default/dsh-gateway,可在该文件里统一注入上述环境变量。 交付文件抽屉的行为细节 自动定位:网关嗅探代理流量中的 session.history(打开会话)与 session.list(每会话含 cwd),记住当前对话目录并持久化到 state-cwd.json;打开「文件管理」即列出该目录(目录失效自动回退工作区)。 嵌入与关闭:抽屉以同源 iframe 内嵌(X-Frame-Options: SAMEORIGIN);页面内「返回应用」运行时检测 iframe 环境,发 postMessage('dshgw-close') 关闭抽屉而非导航,杜绝嵌套打开。 上传:原始字节体 POST /gw/upload?dir=&name=,助手降权为 dsh- 落盘(root 仅校验参数),文件属主天然为本人,同名覆盖,超限 413。 安全注意事项 安装树完整性(最关键):/opt/deepseek-harness 整棵树——含 DSH monorepo 源码(packages/、apps/、node_modules/)与 .agents/ 技能库——不得带 group/other 写位。所有租户实例共享执行这份代码,任何可写点都是跨租户注入点(改共享代码或技能文件 → 以其他租户身份执行 → 窃取其 API Key)。部署/升级后必须自检:find /opt/deepseek-harness -not -path '*/users*' -perm /022 | wc -l 输出 0(users/ 用户目录除外)。 gateway/ 目录保持 root:dsh-gateway 0770:网关需要在其内做 tmp+rename 原子写(users.json / secret / state-cwd.json);目录内代码文件(server/userctl/auth/cred

相似插件