# dsh-access-gateway

- name: 访问网关
- id: dsh-access-gateway
- version: 0.1.0-lan.6
- developer: DeepSeek Harness
- packageName: @deepseek-ai/dsh-host-access-gateway
- loaderId: access-gateway
- 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
- html: https://addon.dshdo.com/plugins/dsh-access-gateway
- json: https://addon.dshdo.com/v1/plugins/dsh-access-gateway
- markdown: https://addon.dshdo.com/plugins/dsh-access-gateway.md
- tarball: https://addon.dshdo.com/v1/plugins/dsh-access-gateway/versions/0.1.0-lan.6/tarball

## Install

```
curl -fsSL https://addon.dshdo.com/install-plugin-market.sh | sh
# then install catalog id dsh-access-gateway in /plugin-market/ and enable it
```

## Description

用登录把这台机器映射到局域网。默认放行已登录请求，登录失效时自动弹窗与跳转。

## Changelog

仅调整公开开发者显示为 DeepSeek Harness，不再展示个人团队信息。

## Versions

- 0.1.0-lan.6 (2026-08-25T03:24:07.796Z): 仅调整公开开发者显示为 DeepSeek Harness，不再展示个人团队信息。

## README

# Access gateway pack

English | [中文](README.zh.md)

Install 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).

## Install

Copy this directory onto the target machine, then from the directory that contains `package.json`:

```sh
dsh plugin --profile web add .
```

A source checkout uses `pnpm dsh plugin --profile web add .` from the repository root instead.

Restart `dsh web`. Confirm the composed layer:

```sh
dsh --profile web --dump-config | grep -A6 access-gateway
```

## Enable and set a password

Add this block to `$DSH_HOME/settings.yaml` (usually `~/.dsh/settings.yaml`) and keep any existing provider sections:

```yaml
access-gateway:
  enabled: true
  lanHost: 0.0.0.0
  lanPort: 3180
  localWebUrl: http://127.0.0.1:3080
```

Restart `dsh web` if it was already running. Then set a password of at least 8 characters on the **target machine**:

```sh
node scripts/set-password.mjs admin 'REPLACE_WITH_YOUR_PASSWORD'
```

That 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.

## Open from the LAN

```text
http://<lan-ip>:3180
```

Log in with the username and password just set. `http://<lan-ip>:3080` stays closed; that port is loopback only.

## Limits

- The first LAN release is plaintext HTTP.
- Native desktop pickers and `openDocument` stay 403 on the LAN front.
- 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`.
- Do not bind official `dsh web` to `0.0.0.0`.

