前言¶
DeepSeek Harness 的 Web GUI 默认没有账号密码保护。如果需要在多人协作或公开环境下使用 Web 界面,需要自行实现登录鉴权。WebGate 是一个为 DeepSeek Harness Web GUI 加一道账号密码门的插件,通过路由级登录门禁保护 Web 界面,确保只有授权用户才能访问。
核心功能¶
WebGate 提供以下能力:
* 路由级登录门禁:每次打开 Web 都需要先登录,无令牌或过期会自动跳转到登录页。
* 12小时会话令牌:登录后令牌有效期 12 小时,过期自动登出。
* 后台任务零打扰:门禁只作用于浏览器视图层,Host 端的后台任务、会话、子代理照常运行。
* DeepSeek 官网风登录页:提供与 DeepSeek 官网风格一致的登录界面。
* 设置页图形化管理:在 DSH 设置的「WebGate 用户」页里增删用户、改密码、分配工作区。
* 内置管理员不可撼动:内置 admin 账号为永久管理员,不可删除。
* 用户管理命令:提供 /useradd、/passwd 等命令行工具管理用户。
* 持久化:用户数据保存在 $DSH_HOME/.credentials.yaml 中,随 Harness 自身凭据文件一起管理。
* 三语支持:支持中文、English、Русский,跟随 DSH 语言设置。
* 账号角色与工作区授权:支持 admin/member 角色,成员仅能看到被授权的工作区。
* 零依赖:纯 JavaScript 实现,无外部依赖。
安装与启用¶
通过 npm 安装插件(推荐):
dsh plugin --profile web add @yyyq0325/dsh-webgate
安装命令会依据插件的配置自动挂载,重启 dsh 后生效。
首次激活与基本用法¶
插件安装并重启后,首次访问 Web 界面会自动创建初始管理员账号。
- 默认账号:用户名
admin,密码admin1234。 - 修改密码:
/passwd admin 你的新密码
- 添加用户:
/useradd <用户名> <密码> <管理员密码>
设置页管理¶
除了命令行,WebGate 提供了图形化界面管理用户。
- 打开左下角 设置。
- 进入 WebGate 用户 页面。
- 在此页面可以:
- 添加用户:填写用户名、密码,选择角色(默认成员),保存。
- 管理工作区:勾选成员可见的工作区(或选择全部)。
- 改密码 / 删除用户:行内操作。
- 注意:内置
admin管理员账号没有删除按钮,且至少保留一个管理员账号。
注意事项¶
- 密码存储:密码以哈希形式存储在
$DSH_HOME/.credentials.yaml的webgate/users段中。 - 动态插件模式:如果使用动态插件模式(不落盘安装),只包含 Host 半边,设置页不可用。只能通过命令行管理。
- 工作区过滤强度:工作区过滤在浏览器端执行,定位是”防误触”而非对抗有意绕过,服务端仍需自行处理鉴权。
- 角色限制:成员登录后只能看到被授权的工作区,且会隐藏部分界面操作(如设置入口、创建工作区等)。
总结¶
WebGate 为 DeepSeek Harness Web GUI 提供了基础的账号密码保护与用户管理能力,支持命令行与图形化管理,适合需要在多用户环境下使用 Harness Web 界面的场景。