runfali/dsh-login-gateway
runfali★ 2JavaScriptLast synced: 2026-08-17
dsh 登录门卫插件:让只监听本机的 dsh Web UI 安全地对外开放——登录墙 + 全量反代,零依赖、零侵入。
README excerpt
dsh-login-gateway DeepSeek Harness(dsh)的 登录门卫插件 。dsh 的 Web UI 默认只监听 127.0.0.1:3080 ,禁止外部访问;本插件在外部再开一个入口(默认 0.0.0.0:3081 ),访问者先通过 用户名密码登录 ,登录成功后流量被 全量反向代理 到 dsh 的 Web UI(HTTP 与 WebSocket 都支持),功能零缺失。 零运行时依赖(只用 Node.js 内置模块),Node 22+ ESM。 它解决什么问题 - 想从局域网/公网访问本机 dsh,但 dsh 只监听 loopback; - 直接改 dsh 让它监听 0.0.0.0 会裸奔在公网上,任何人可访问; - 本插件提供:外部入口 + 登录墙 + 全量反代,dsh 本身继续只听 127.0.0.1 。 效果预览 首次访问未初始化时,会进入 /setup 引导页,输入一次性令牌并创建管理员账号: 工作架构 关键点:反代时把请求头里的 Host / Origin / Sec-Fetch-Site 改写为 loopback 形态,让 dsh 把请求当作“本机请求”信任放行;WebSocket 升级请求同样先校验会话再转发。 快速开始(首次安装) 1. 把本项目放到 dsh 服务器上(例如 /data/dsh-login-gateway ),并安装依赖(仅 devDependencies,运行时无依赖): 2. 在 dsh 的 profile 配置里挂载插件(编辑 cordis.patch.yml ,见下文“安装与卸载”),然后重启 dsh。 3. 获取一次性初始化令牌(二选一): - 方式 A:看 dsh 启动终端或服务日志输出 插件会直接输出一行提示,内容类似: 日志示例: - 方式 B:读取令牌文件 令牌同时会写入用户文件同目录下的 setup-token.txt (权限 0600 ,内容只有令牌本身): 4. 浏览器打开 http:// :3081/setup ,输入令牌、管理员用户名、密码(至少 8 位)与确认密码,点击“完成设置”。 5. 初始化完成后会跳转到登录页,用刚创建的账号登录,即可进入 dsh。 说明:新装 没有默认账号 ,必须走 /setup 引导创建。未初始化时访问 / 会自动 302 跳转到 /setup 。令牌只在 未初始化 阶段生成;初始化完成后 /setup 会返回 410 , setup-token.txt 也会被自动删除。 安装与卸载(cordis.patch.yml) 安装 在 dsh 的 profile 目录(如 /root/.dsh/profiles/web/ )的 cordis.patch.yml 中追加挂载项: 保存后重启 dsh(或使用 dsh 的热重载功能)。新装 无需预先配置任何账号…
View full README on GitHub →Category
A one-of-a-kind resume builder that keeps your privacy in mind. Completely secure, customizable, portable, open-source and free forever. Try it out today!
★ 40,767
zhu1090093659/dsh-web-uiPlugin and skin collection for DeepSeek Harness (DSH) Web UI - task board, git graph, right-side panel, remote mobile UI, pet, live token stats, and skin center.
★ 3,990
omdsh-dev/DSH-better-sidebar开放的侧边栏底座,支持三方拓展注册新侧边栏页面。内置文件渲染编辑/终端/Git/子代理页面
★ 1,890