{"ok":true,"value":{"id":"dsh-access-gateway","name":"访问网关","version":"0.1.0-lan.6","developer":"DeepSeek Harness","description":"用登录把这台机器映射到局域网。默认放行已登录请求，登录失效时自动弹窗与跳转。","sha256":"e4e12ebe1e8b2f36c8bc6829d05e05c6f9e803d4b0800834ba6c5e5f2901784b","byteSize":19770,"publishedAt":"2026-08-25T03:24:07.796Z","updatedAt":"2026-08-25T03:24:07.796Z","releasedAt":"2026-08-25T03:24:07.796Z","packageName":"@deepseek-ai/dsh-host-access-gateway","loaderId":"access-gateway","changelog":"仅调整公开开发者显示为 DeepSeek Harness，不再展示个人团队信息。","readme":{"md":"# Access gateway pack\n\nEnglish | [中文](README.zh.md)\n\nInstall this pack on another machine that already runs `dsh web`. Official `dsh web` still binds `127.0.0.1:3080`. This plugin adds an authenticated LAN listener on `0.0.0.0:3180`. Step-by-step: [INSTALL.md](INSTALL.md).\n\n## Install\n\nCopy this directory onto the target machine, then from the directory that contains `package.json`:\n\n```sh\ndsh plugin --profile web add .\n```\n\nA source checkout uses `pnpm dsh plugin --profile web add .` from the repository root instead.\n\nRestart `dsh web`. Confirm the composed layer:\n\n```sh\ndsh --profile web --dump-config | grep -A6 access-gateway\n```\n\n## Enable and set a password\n\nAdd this block to `$DSH_HOME/settings.yaml` (usually `~/.dsh/settings.yaml`) and keep any existing provider sections:\n\n```yaml\naccess-gateway:\n  enabled: true\n  lanHost: 0.0.0.0\n  lanPort: 3180\n  localWebUrl: http://127.0.0.1:3080\n```\n\nRestart `dsh web` if it was already running. Then set a password of at least 8 characters on the **target machine**:\n\n```sh\nnode scripts/set-password.mjs admin 'REPLACE_WITH_YOUR_PASSWORD'\n```\n\nThat writes `$DSH_HOME/access-gateway.yaml` as mode `0600` and never stores the plaintext. This pack does not include any account file or password hash.\n\n## Open from the LAN\n\n```text\nhttp://<lan-ip>:3180\n```\n\nLog in with the username and password just set. `http://<lan-ip>:3080` stays closed; that port is loopback only.\n\n## Limits\n\n- The first LAN release is plaintext HTTP.\n- Native desktop pickers and `openDocument` stay 403 on the LAN front.\n- Older DSH builds may still 403 `settings.describe` on LAN, and insecure HTTP may lack `crypto.randomUUID`. Use a current checkout, or open the official page through an SSH tunnel to `127.0.0.1:3080`.\n- Do not bind official `dsh web` to `0.0.0.0`.\n","zhMd":"# 访问网关安装包\n\n[English](README.md) | 中文\n\n给已经能跑 `dsh web` 的机器加一个带登录的局域网入口。官方 `dsh web` 仍只听 `127.0.0.1:3080`。本插件在 `0.0.0.0:3180` 另开认证监听。逐步教程见 [INSTALL.zh.md](INSTALL.zh.md)。\n\n## 安装\n\n把本目录拷到目标机，在含 `package.json` 的目录执行：\n\n```sh\ndsh plugin --profile web add .\n```\n\n源码 checkout 则在仓库根目录执行 `pnpm dsh plugin --profile web add .`。\n\n重启 `dsh web`。确认层已挂上：\n\n```sh\ndsh --profile web --dump-config | grep -A6 access-gateway\n```\n\n## 启用并设密码\n\n在 `$DSH_HOME/settings.yaml`（一般是 `~/.dsh/settings.yaml`）加上这段，保留已有提供方配置：\n\n```yaml\naccess-gateway:\n  enabled: true\n  lanHost: 0.0.0.0\n  lanPort: 3180\n  localWebUrl: http://127.0.0.1:3080\n```\n\n若 `dsh web` 已在跑，重启一次。然后在**目标机**上设至少 8 位密码：\n\n```sh\nnode scripts/set-password.mjs admin 'REPLACE_WITH_YOUR_PASSWORD'\n```\n\n脚本把哈希写入 `$DSH_HOME/access-gateway.yaml`（权限 `0600`），不存明文。本安装包不含任何账号文件或密码哈希。\n\n## 局域网打开\n\n```text\nhttp://<局域网IP>:3180\n```\n\n用刚设的账号密码登录。`http://<局域网IP>:3080` 进不去，那是回环专用口。\n\n## 限制\n\n- 第一期局域网入口是明文 HTTP。\n- 本机选目录、打开文件在局域网仍是 403。\n- 较旧的 DSH 可能仍对局域网 `settings.describe` 返回 403，明文 HTTP 也可能没有 `crypto.randomUUID`。请用较新的 checkout，或 SSH 隧道打开 `127.0.0.1:3080`。\n- 不要把官方 `dsh web` 绑到 `0.0.0.0`。\n"},"versions":[{"version":"0.1.0-lan.6","changelog":"仅调整公开开发者显示为 DeepSeek Harness，不再展示个人团队信息。","sha256":"e4e12ebe1e8b2f36c8bc6829d05e05c6f9e803d4b0800834ba6c5e5f2901784b","byteSize":19770,"releasedAt":"2026-08-25T03:24:07.796Z","reviewStatus":"approved"}],"urls":{"html":"https://addon.dshdo.com/plugins/dsh-access-gateway","markdown":"https://addon.dshdo.com/plugins/dsh-access-gateway.md","json":"https://addon.dshdo.com/v1/plugins/dsh-access-gateway","tarball":"https://addon.dshdo.com/v1/plugins/dsh-access-gateway/versions/0.1.0-lan.6/tarball"}}}