dsh-web-auth-gateway
Maintenance: Activeluodeb/dsh-web-auth-gateway
Authentication reverse-proxy gateway plugin for DeepSeek Harness Web
Install
dsh has no central install command — add this plugin’s entry (documented in its README below) to your profile or patch config, then restart.
How installs work3
stars
1
forks
TypeScript
Language
BSD-3-Clause
License
2026-08-15
Created
2026-08-17
Last push
README
dsh-web-auth-gateway
A standalone authentication reverse-proxy gateway plugin for DeepSeek Harness Web.
The plugin serves a login page on a separate loopback port. After authentication, it proxies the complete DSH Web surface, including normal pages, plugin assets, API requests, and WebSocket upgrades.
Features
- First-run administrator account creation
- scrypt salted password hashing; plaintext passwords are never stored
- HttpOnly and SameSite=Strict session cookie
- Server-side in-memory sessions
- HTTP, API, and WebSocket authentication gate
- Settings card under
Settings > Plugins > Web UI Plugins - Configurable gateway port and session lifetime
- Official
@deepseek-ai/*NPM SDK only - No changes to DeepSeek Harness source code
Install
Requires Node.js 22 or newer and DeepSeek Harness.
dsh plugin --profile web add github:luodeb/dsh-web-auth-gateway
Restart DSH Web:
dsh web --host 127.0.0.1 --port 3080
Then open:
http://127.0.0.1:3090
On first access, create the administrator account. Later visits require that account.
Settings
Open Settings > Plugins > Web UI Plugins > Login gateway.

Defaults:
enabled: true
port: 3090
sessionTtlHours: 12
Settings are persisted through the official DSH Settings service in ~/.dsh/settings.yaml.
Login page

The password credential is stored at:
~/.dsh/web-auth-gateway/credential.json
The file contains only the username, random salt, and scrypt password hash. Its mode is 0600.
Security boundary
The original DSH Web port must remain bound to 127.0.0.1 or another trusted interface. If the upstream port is exposed to untrusted clients, they can bypass the gateway.
This plugin currently listens on 127.0.0.1. Use a TLS reverse proxy or a secure tunnel in front of the gateway for remote access. Do not expose plaintext HTTP directly to an untrusted network.
Sessions are stored in memory and are invalidated when DSH restarts.
Development
corepack enable
pnpm install
pnpm build
pnpm typecheck
pnpm test
Install the local checkout into the Web profile:
dsh plugin --profile web add link:$(pwd)
License
BSD-3-Clause
More in Security & Auth
tencentmeeting-cli
by tencentcloud
Tencent Meeting command-line tool with OAuth2 authorization for meeting, recording and attendance-report management.
dsh-auto-review
by perrylink
Second-model AI auto-review for DeepSeek Harness approval requests: a read-only reviewer subagent returns structured allow/deny verdicts with reasons, fail-closed by default, fully auditable from the session log (approval/asked -> autoReview/verdict -> approval/decided).
dsh-permission-rules
by perrylink
Claude Code-style declarative permission rules for DeepSeek Harness: ordered allow/deny/ask rules with tool-name, argument (glob/regex), and workspace-path matching on the tools/pre-execute waterfall, session-log audit, and HMR reload.
dsh-clawrouter
by blockrunai
A safety gate for DeepSeek Harness: a stronger model reviews dangerous tool calls before they run. Plus vision and 67 models from one wallet, paid per request over x402.
