🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

多用户云平台 eskim2001/dshcloud

DeepSeek Harnessv0.0.1
eskim200144 天前有提交已提供中文文档扫描:含敏感能力

使用限制:仅限在全新 Linux 环境中测试,以及本地开发使用。请勿用于生产环境,也不要安装到已运行其他业务的主机上。

55.9/100
综合分
82
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/9/21 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

自动兼容检查未通过:缺少 main/exports/bin 入口声明;仓库 package.json 标记 private,未发布到 npm,需从源码安装。以下命令仍可尝试,但可能失败。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add eskim2001/dshcloud
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:需留意
是什么
dsh 原生插件 · security
装得上吗
实装验证未通过(unknown),装前请到仓库确认最近更新与 issue
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 44 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
⚠︎ 实装验证未通过(unknown · 2026/10/20) ——可能是验证环境差异,装前建议到 GitHub 仓库确认最近更新与 issue。
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查需源码安装

缺少 main/exports/bin 入口声明;仓库 package.json 标记 private,未发布到 npm,需从源码安装

展开查看检查明细 ↓

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

✓npm 包dsh-cloud @ 0.0.1
✓Node 引擎要求 >=22 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✗入口文件缺少入口声明

源码安装时若 pnpm 拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑。

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/30 09:03:31

安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

可执行外部命令读写/删除本地文件发起外部网络请求
查看扫描证据(共 17 处,展示前 17 条)
  • 发起网络请求
    apps/web/src/lib/api.ts:83
    const res = await fetch(path, {
  • 读取本地文件
    docs/brand-animation/render-social.mjs:10
    const source = await readFile(join(root, 'apps/web/public/brand/dshcloud-lockup.svg'), 'utf8')
  • 写入本地文件
    docs/brand-animation/render-social.mjs:46
    await mkdir(output, { recursive: true })
  • 写入本地文件
    docs/brand-animation/render-social.mjs:47
    await writeFile(join(output, 'dshcloud-social-preview.svg'), svg)
  • 写入本地文件
    docs/brand-animation/render-social.mjs:48
    await writeFile(join(output, 'dshcloud-social-preview.png'), png)
  • 写入本地文件
    docs/brand-animation/render-social.mjs:49
    await writeFile(join(tmpdir(), 'dshcloud-social-preview-small.png'), new Resvg(svg, { ...options, fitTo: { mode: 'width', value: 640 } }).render().asP
  • 执行外部命令来自配置/变量
    docs/brand-animation/render.mjs:11
    const child = spawnSync(process.execPath, ['--expose-gc', fileURLToPath(import.meta.url)], { stdio: 'inherit' })
  • 执行外部命令来自配置/变量
    docs/brand-animation/render.mjs:80
    const result = spawnSync(command, args, { encoding: 'utf8' })
  • 写入本地文件
    docs/brand-animation/render.mjs:85
    await mkdir(output, { recursive: true })
  • 读取本地文件
    docs/brand-animation/render.mjs:90
    const source = await readFile(join(brand, `dshcloud-lockup${suffix}.svg`), 'utf8')
  • 写入本地文件
    docs/brand-animation/render.mjs:92
    await mkdir(frames)
  • 写入本地文件
    docs/brand-animation/render.mjs:105
    await writeFile(join(frames, `${String(frame).padStart(3, '0')}.png`), raster.asPng())
  • 执行外部命令固定命令
    docs/brand-animation/render.mjs:112
    const decoded = spawnSync('ffmpeg', ['-v', 'error', '-i', animation,
  • 执行外部命令固定命令
    docs/brand-animation/render.mjs:120
    const reference = spawnSync('ffmpeg', ['-v', 'error', '-i', join(frames, `${String(frame).padStart(3, '0')}.png`),
  • 写入本地文件
    docs/brand-animation/render.mjs:137
    await writeFile(join(temporary, `contact-sheet${suffix}.png`), render(sheet).asPng())
  • 删除本地文件递归
    docs/brand-animation/render.mjs:138
    await rm(frames, { recursive: true, force: true })
  • 删除本地文件递归
    docs/brand-animation/render.mjs:143
    await rm(temporary, { recursive: true, force: true })
扫描于 2026/11/4(0 天前) · 范围 全包扫描 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

界面预览

6 张 · 点击查看大图

功能亮点

  • 隔离工作空间
  • 持久化存储
  • 访问控制与资源配额

README

由 DeepSeek 最新模型翻译生成
展开完整文档(README 剩余 1 节)
使用限制:仅限在全新 Linux 环境中测试,以及本地开发使用。请勿用于生产环境,也不要安装到已运行其他业务的主机上。

DeepSeek Harness 的自托管多用户运行平台 A self-hosted, multi-user platform for DeepSeek Harness.

在线演示 · console.demo.dshcloud.app 共享演示账号 demo-user@dshcloud.app · 密码 demo-user 工作空间直达 · demo-user.demo.dshcloud.app

简体中文 · English

功能 ·快速开始 ·文档 ·参与贡献

dshcloud 在自有基础设施上为 DeepSeek Harness(dsh)提供相互隔离的工作空间,并统一管理身份认证、资源配额和运行版本。用户可通过浏览器访问工作空间;工作空间数据独立持久化,升级运行版本时,文件、会话、插件和配置均保持不变。

管理员完成平台部署后,可通过邀请链接添加用户。每位用户均可在授权配额内创建和管理多个工作空间。

项目处于早期开发阶段 —— 请先在测试机上跑。 当前适合评估与开发,尚不具备生产可用性;部署验证和安全工作仍有未决项。部署至公网前,请先阅读架构与安全模型中的权限边界与运行限制。

安装脚本会改动它所在的这台机器,装完之后平台也持续在改 —— 它会写存储池与 /etc/fstab 挂载项、把部署资产落到 /opt/dsh-cloud、占用 80 / 443 端口,并以能访问 Docker socket 的身份跑容器。工作空间的数据放在宿主文件系统上,容器有权限改它。请用一台你愿意重装的机器。

接口、配置与磁盘上的布局都还在变。升级前请关注仓库里的发布说明。

与本地运行的区别

| 本地运行 dsh | 使用 dshcloud |
| 依赖本地设备持续运行 | 在自有服务器上持续运行 |
| 访问范围受本地设备限制 | 可通过浏览器从多个设备访问 |
| 缺少用户间的资源与数据隔离 | 多用户: 为每位用户提供独立工作空间 |
| 多项目需要维护多套安装 | 多工作空间: 支持单个用户创建多个工作空间 |
| 升级可能需要重新配置环境 | 通过镜像升级,并保留持久化数据 |

功能

- 工作空间: 支持创建、启动、停止、重建和删除。每个工作空间拥有独立容器与持久化存储,并可分别设置 CPU、内存、进程数和磁盘容量限制。
- 多用户: 管理员通过邀请链接添加用户。用户仅可访问和管理其所属工作空间。
- 访问控制: 工作空间端口仅发布至宿主回环地址;外部访问须通过 Traefik 前置认证、所有者校验和工作空间级签名验证。
- 版本管理: 从 GHCR 同步版本目录,支持版本发布和默认版本设置。升级通过替换镜像完成,并在升级前自动创建可用于回滚的数据快照。
- 管理台: 账号状态、资源配额、用量采样、工作空间日志流。
- 界面: 英文与简体中文、明暗主题、⌘K 命令面板。

截图

登录

主页

工作空间

创建工作空间

工作空间详情

工作空间设置

平台管理 · 概览

平台管理 · 全部工作空间

平台管理 · 版本管理

平台管理 · 用户

快速开始

部署到自己的服务器

一台 Linux 主机,装了 Docker(含 Compose v2),80 / 443 空闲,另有一块能给硬配额的盘。

curl -fsSL https://raw.githubusercontent.com/eskim2001/dshcloud/main/scripts/install.sh | bash

更多配置

完整列表见脚本的 --help:

| 参数 | 省略时 |
| --version <tag> | 用 latest(会漂移;装到的 digest 记在 /opt/dsh-cloud/.installed-version) |
| --wizard-port <端口> | 从 3000 起试 3000-3003,取第一台空闲的 |
| --pool-root <路径> | /var/lib/dsh |
| --pool-size-mb <MB> | 取所在文件系统可用空间的 80% |

引导页填的是父域:控制台落在 console.<父域>,每个工作空间各占 <子域>.<父域>。证书按主机逐个签发,所以泛解析 *.<父域> 必须先指向这台机器,否则签不下来。

前置条件

- Linux 主机(x86-64 或 arm64),装有 Docker 与 Compose v2。
- 一块能给硬配额的盘:HOST_STORAGE_ROOT(默认 /var/lib/dsh)要么在以 pquota 挂载的 XFS 上,要么让脚本建一块 loopback XFS 镜像(要 root,并把挂载写进 fstab)。两条都做不到会拒绝安装。见 D18。
- 端口 80、443 空闲:入口直接绑它们,其中 80 还要留给 ACME 的 HTTP-01 校验。
- 宿主能访问 GHCR(拉平台镜像与工作空间镜像)。

升级(保留数据与密钥):

curl -fsSL "https://raw.githubusercontent.com/eskim2001/dshcloud/main/scripts/install.sh" | bash -s -- update

卸载(默认保留数据库卷与存储池;加 --purge 连数据一起删,不可恢复):

curl -fsSL "https://raw.githubusercontent.com/eskim2001/dshcloud/main/scripts/install.sh" | bash -s -- uninstall

安装脚本会在这台机器上改什么

- 在 --pool-root(默认 /var/lib/dsh)建存储池。该路径若还不是以 pquota 挂载的 XFS,脚本会写一块 loopback XFS 镜像,并往 /etc/fstab 加一条挂载项。
- 把部署资产与密钥写到 /opt/dsh-cloud。
- 以容器方式起入口、Postgres 与控制面,并在宿主上占用 80 与 443 端口。
- 每次安装/升级都配置仅以平台网桥为来源的 INPUT/FORWARD 规则与 systemd 开机单元;失败停止安装。阻断工作空间访问宿主、私网、Docker 网桥及主动 IPv6 出站,因此内网模型/Git 服务会受影响。--harden-host 仅保留为旧命令兼容参数。启动顺序和防火墙重载保护仍待完成及 Linux 验证,见发布门槛。

节点服务持有 Docker socket 与 CAP_SYS_ADMIN,等价于宿主 root。控制面通过本地 socket 调用节点服务,仍有广泛的实例管理权限。见部署。

本地开发

改代码用这条。前置:Node.js 22+ 与 pnpm 10.10.0,以及带 Compose v2 的 Docker。

pnpm install

pnpm dev

参与贡献

欢迎提交问题报告、文档改进和范围明确的 pull request。报告缺陷时,请附上复现步骤和环境信息。涉及认证、隔离或数据模型的改动,请在实现前讨论其设计与安全影响。

本地开发流程和仓库约定见 AGENTS.md。测试应与其覆盖的行为位于同一目录,提交前请运行工作区检查。修改 README 的共用内容时,请同步更新中英文版本;修改控制台界面后,请运行 node scripts/readme-shots.mjs 重新生成截图,确保截图与当前界面保持一致。

文档

详细指南目前主要使用中文。

| 指南 | 内容 |
| 架构 | 组件、隔离模型、权限边界与运行限制 |
| 部署 | 平台镜像、生产拓扑、控制面的权限边界 |
| 存储选型与实测 | 给容器一块有硬上限的盘:四条路的实测数据、开发机怎么退化 |
| 设计决策 | 技术选择与取舍 |
| 待验证问题 | 未决验证与已知缺口 |
| 本地入口 | 开发环境中的 DNS、TLS 与工作空间访问 |
| 配置 | 控制面环境变量模板 |
| 贡献者指南 | 本地开发、仓库结构与约定 |
| 安全策略 | 漏洞报告方式与范围 |

许可

dshcloud 使用 MIT 许可证。DeepSeek Harness 为上游项目,其代码及其他依赖分别遵循各自的许可证。
预览分享卡片长什么样 ↓eskim2001/dshcloud
分享 · DeepSeek Harness Hub
eskim2001/dshcloud

使用限制:仅限在全新 Linux 环境中测试,以及本地开发使用。请勿用于生产环境,也不要安装到已运行其他业务的主机上。

这是你的仓库?认领条目

回到顶部