插件目录 / Developer / dsh-web-lan
dsh-web-lan
已验证 · 实测可装 yes8080
功能简介
Developer 类别的 DeepSeek Harness 插件。
可用 — 实测通过,早期项目
Developer 类别的 DeepSeek Harness 插件。 实测能干净安装、正常启动。早期项目,但功能可用。
「已验证」表示我们的自动化 CI 在干净 profile 里实际执行了 dsh plugin add 并启动成功——仅此而已。功能描述与版本兼容性均为作者声明。这不是安全审计,也不代表对第三方代码的背书。
README
dsh-web-lan
让 DeepSeek Harness (dsh) 通过局域网被访问:一条命令安装,默认密码 123,
无需修改任何配置文件。
LAN access layer for DeepSeek Harness (dsh): one-command install, default
password 123, no config editing required.
功能 / Features
crypto.randomUUID补丁 — 修复明文 HTTP 局域网(非安全上下文)下crypto.randomUUID is not a function导致的整个/api层失败;
Patches the missingcrypto.randomUUIDon plain-HTTP LAN origins.- 密码登录门 — 未登录只能看到登录页(API/WebSocket 直接 401/断开);
登录后以回环身份进入 dsh,设置/凭据/Agent 预设等"仅限本机"功能全部可用;
Password gate — unauthenticated callers only see the login page; logged-in
LAN users get full access (settings, credentials, agent presets). - 客户端
isLoopback补丁 — 修复局域网页面"设置 → 插件配置"空白;
Fixes the blank 插件配置 tab on LAN pages. - 设置页管理密码 — 设置 → 插件 → 插件配置 的 局域网访问 卡片可
直接改密码,立即生效并持久化;中英文跟随通用设置语言自动切换;
Manage the password from the settings page (zh/en follows the General
settings language).
快速开始 / Quick Start
dsh plugin --profile web add 'git+https://github.com/yes8080/dsh-web-lan.git'
npm exec @deepseek-ai/dsh web # 重启 / restart
完成。启动后终端打印 LAN: http://<ip>:3080,局域网用户访问该地址,
用密码 123 登录(首次登录后请尽快在设置页修改)。
That's it. After restart, LAN users open http://<ip>:3080 and sign in with
password 123 (change it as soon as possible from the settings page).
需要 pnpm:
corepack enable pnpm(若未启用)。
密码 / Password
- 默认
123;安装/启动前可用环境变量覆盖:export DSH_LAN_PASSWORD='强密码'; - 登录后:设置 → 插件 → 插件配置 → 局域网访问 卡片修改(立即生效、
写入~/.dsh/settings.yaml持久化); - 高级用户可在
~/.dsh/profiles/web/cordis.patch.yml显式覆盖(用户层晚于
插件 bundle 层生效)。
工作原理 / How it works
- 包装
webServer的 node:http 处理:未登录 → 登录页 / 401;已登录 →
把Host/Origin改写为回环地址,使 dsh 的信任栅栏把局域网用户当作
本机客户端(单共享密码,无多用户); - 会话 Cookie(
dsh_lan_session,HttpOnly + SameSite=Strict)持久化到~/.dsh/dsh-lan-sessions.json,重启不踢人;每 IP 连续 5 次失败锁定 30 秒;
修改密码会立即踢掉其他所有已登录会话(执行改密的会话保留,
泄露的密码一换,其他旧会话全部失效); - 拦截浏览器实际加载的
dsh-client-connectionbundle,把isLoopback
强制为true(fail-safe:精确匹配标记串才替换,升级不破坏); - 向
settings服务注册lan-access命名空间(密码字段role('secret'),
任何响应都不携带明文),监听变更并同步到登录门。
安全 / Security
- 默认密码
123是公开的 —— 安装后请立即修改或设置环境变量; - 密码在局域网内明文传输(HTTP),敏感环境请用 SSH 隧道或 HTTPS;
- 只在可信的主机名/IP 上登录(DNS rebinding);
- 登录后拥有完整权限(含可执行命令的 agent 工具)。
卸载 / Uninstall
dsh plugin --profile web remove dsh-web-lan
# 重启 dsh 生效
npm exec @deepseek-ai/dsh web
卸载后自动恢复:webserver 监听回到默认 127.0.0.1(局域网访问关闭)、lan-access 行/登录门/浏览器卡片全部移除,不影响其他插件(插件只包装
webserver 请求处理并注册自己的设置命名空间,卸载即还原)。可选清理残留数据:
# 删除设置文档中的 lan-access 段(如曾在页面改过密码)
# 编辑 ~/.dsh/settings.yaml,删除 lan-access: 段
# 删除登录会话文件(让旧会话令牌全部失效)
rm ~/.dsh/dsh-lan-sessions.json
开发 / Development
dsh plugin --profile web add /path/to/dsh-web-lan # 本地软链安装
npm install # 安装依赖(dsh-settings、schemastery)
node test/integration.test.mjs # 纯 Node 集成测试
许可 / License
MIT
安装
装一次目录插件,之后本站所有插件都能让 DeepSeek Harness 自动找、自动装:
dsh plugin add dshbase-catalog 然后对 agent 说「帮我装 dsh-web-lan」,它会在目录里找到并自动安装。文档:dshbase-catalog · 已验证场景包。
该插件是 GitHub 源码(未发 npm)——直接从仓库装:
Web profile:
dsh plugin --profile web add github:yes8080/dsh-web-lan Headless(CLI)profile:
dsh plugin --profile headless add github:yes8080/dsh-web-lan 实测报告
验证通过:从 GitHub 源码完成 L1 安装 + L2 加载 + L3 运行(dsh 0.1.0-rc.6)。