dsh-hub 是 DeepSeek Harness(dsh)的多用户前端,沿用 JupyterHub 模型。它提供 PAM 登录、每个系统用户一个独立的 dsh 实例,以及基于 cookie 路由的 HTTP/WebSocket 代理。它无需对 dsh 做任何修改,因此上游升级和按用户安装插件仍可正常使用。 其架构与 JupyterHub 类似:PAM 认证、以用户的 uid/gid 和每用户独立的 DSH_HOME 运行 dsh web 的 spawner,以及按会话 cookie 路由 HTTP 和 WebSocket 流量的 HTTP 代理。内置的空闲回收器可终止空闲实例。信任模型使用 origin 重写,使代理表现为回环同源客户端,并用 SameSite=Lax 会话 cookie 防御 CSRF。 隔离通过以下方式实现:每个 dsh 实例以用户自己的 uid/gid 运行,DSH_HOME=~/.dsh,绑定到 127.0.0.1 的随机端口,并使用 iptables owner-guard 丢弃来自其他本地用户的连接。登录限速和可选的允许列表提供额外的访问控制。 用户通过浏览器访问 http://<server-ip>:3080,并使用系统用户名和密码登录。关闭浏览器后对话依然保留,因为服务端驱动继续在已生成的 dsh 进程中运行,重新登录会重新连接到同一个实例。配置通过环境变量管理,生产部署使用 systemd。
团队用 dsh-hub 为每个系统用户提供独立的 DeepSeek Harness 实例。
团队用 dsh-hub 通过 PAM 使用现有系统凭据对用户进行认证。
团队用 dsh-hub 在不修改 dsh 的情况下通过浏览器访问 dsh。
团队用 dsh-hub 让 dsh 会话在浏览器关闭后继续运行。
团队用 dsh-hub 通过独立的 uid/gid 和 iptables 实现按用户隔离。
团队用 dsh-hub 将访问限制在特定的用户集合内。
团队用 dsh-hub 自动回收空闲实例。