Back to home

maxesisnclaw

dsh-lan-gate

Password + CIDR gate for DeepSeek Harness web / DeepSeek Harness 局域网密码门禁

Stars
0
Language
JavaScript
Created
Aug 15, 2026
Updated
Aug 15, 2026

Introduction

dsh-lan-gate

English | 中文

Password gate + CIDR allowlist + proxy-header deny for DeepSeek Harness web.

dsh web --host 0.0.0.0 is rejected by the CLI. This bundle sets webserver.host to 0.0.0.0 through the official composition layer, then requires a password before the UI or /api is reachable from the LAN.

Install

dsh plugin --profile web add dsh-lan-gate

Or from GitHub:

dsh plugin --profile web add github:maxesisnclaw/dsh-lan-gate

Then open http://127.0.0.1:3080/dsh-lan-full/login and set a password (loopback only). After that, LAN clients get the login page.

Settings → LAN access / LAN 访问 edits CIDRs, proxy-header policy, and the password. The settings section and login page follow dsh's official zh/en locale.

What it does

ControlDefault
Listen on all interfacesyes (bundle patch)
Passwordunset until you set it from loopback
Inbound IPv4 CIDRs10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16
Reject X-Forwarded-* / Forwarded / Viayes
Loopback bypasses passwordyes (recovery)

Policy file: $DSH_HOME/lan-gate.json (mode 0600). The password is stored as a scrypt verifier, never as plaintext. Session tokens are random 32-byte values; only their SHA-256 is kept in memory.

Residual risk

This is not a TLS terminator. On plain HTTP a LAN observer can still sniff the password and cookie. Do not put this on the public internet. Do not sit it behind a reverse proxy that adds forwarding headers — those requests are rejected on purpose.

See SECURITY.md.

License

MIT