DeepSeek Harness Plugin Hub

Publish and manage complete Harness Profiles. Discover Plugins for your next setup.

Explore

PluginsPresetsDocsNews

Community

Publish a pluginContactReport an issue

Resources

Plugin Hub on GitHubDeepSeek HarnessSystem statusPrivacy notice
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

Independent and unofficial. Not affiliated with, authorized by, or endorsed by DeepSeek.

Plugin Auth Webserver — DSH Plugin for DeepSeek Harness
DeepSeek Harness Plugin Hub
ProfilesPluginsCategoriesNewsDocsSign inManage Profiles
ProfilesPluginsCategoriesNewsDocsSign in
← Plugins
P

dsh-plugin-auth-webserver

Plugin Auth Webserver

DeepSeek Harness bundle providing HTTP Basic Authentication, a bilingual web login page, a Web UI settings card, remote IP access, brute-force throttling, and QVD-2026-57410 hardening for self-hosted server deployments.

The plugin will be installed here. Keep web if you are unsure.

npx -y @deepseek-ai/dsh plugin --profile web add github:kolawong/dsh-plugin-auth-webserver#08a0c1167925502788dc7e316e35932d1d8db3b3
READMECompatibilityVersions

Compatibility and provenance

Plugin Auth Webserver is published as dsh-plugin-auth-webserver and currently resolves to version 0.4.0. The Hub verifies its manifest and preserves the exact installation source for reproducible installs.

DSH compatibility
*
Runtime surfaces
web
Release source
github
Registry updated
8/27/2026

Versions

0.4.0stable
8/27/2026
0.3.0stable
8/21/2026

Related plugins

Loading related plugins…

Latest
0.4.0
DSH
*
HMR
Process restart
Tree shaking
Safe tree shaking not declared
Unpacked size
Unavailable
Files
Unavailable
Surface
web
License
MIT
Source
github
GitHub
★ 2
Weekly downloads
0
Last push
9/1/2026
View source ↗
README badge

Click the badge to copy Markdown for your README.

Do you maintain this Plugin?Claim benefit · Priority security scan

Verify the GitHub repository declared in package.json to manage this listing. After you claim it, Hub will prioritize a security scan of the current version and publish the result when it passes.

Claim this Plugin →
Report an issue

Related plugins

More verified plugins in security-access.

Doctor@linxin666/dsh-doctorTransactional rescue mode for DSH profiles with a supervised launcher, isolated recovery capsule, deterministic repairs, health monitoring, and a local Web recovery consoleMobiledsh-mobileDeepSeek Harness mobile adaptation and secure access plugin, supporting LAN, remote connections, Android App, and mobile browsers.DSCODE@toddzheng024/dscode-bundleA complete DeepSeek coding agent with persistent shell, Ultra collaboration and automatic permission review.Auto Reviewdsh-auto-reviewSecond-model AI auto-review for DeepSeek Harness approval requests: a read-only reviewer subagent decides allow/deny on the approval answerer chain, with fail-closed fallback and full session-log audit.

README

DeepSeek Harness Web Authentication Plugin

dsh-plugin-auth-webserver

Native Web authentication bundle for DeepSeek Harness (DSH). Give your self-hosted deployment a DSH-styled web login page, cookie sessions, Basic Auth fallback, a Web UI settings card, and a Web Crypto polyfill — in English and Simplified Chinese.

简体中文 | English


Features

  • DSH-themed web login page
    • Replaces native browser authentication popups with a dark, glassmorphism login interface matching DeepSeek Harness's design system.
    • Bilingual (English / Simplified Chinese, following the browser's language), password show/hide toggle, error animations, Enter-to-submit, responsive on mobile and desktop.
  • HMAC cookie sessions and logout
    • Issues 30-day cryptographically signed HMAC session tokens on login.
    • Dedicated /api/auth.logout endpoint and a Web UI logout button.
  • Web GUI settings card
    • Live configuration in the DSH Web UI (Settings -> Plugins -> Web authentication).
    • Hot-updates credentials in memory instantly and persists them to a plugin-owned state file under $DSH_HOME/plugins/dsh-plugin-auth-webserver/, so they survive restarts without touching your config layers.
  • Dual-mode authentication and WebSocket protection
    • Prefers web form / cookie sessions while staying backward-compatible with HTTP Basic Auth for CLI tools, curl, and automated API clients.
    • Full authentication coverage for both HTTP routes and WebSocket (upgrade) channels.
  • Remote IP privileged RPC trust delegation
    • Normalizes request Host and Origin headers for authenticated sessions, eliminating HTTP 403 errors when accessing privileged RPC endpoints via a public IP.
    • The rewrite never runs while authentication is disabled, so the stock loopback Host fence keeps defending against DNS rebinding (see Security).
  • Brute-force throttling and credential hardening
    • Per-IP failed-login lockout (5 failures, doubling backoff) on the login endpoint and Basic Auth path, constant-time credential compares, no-store/nosniff on auth responses, and no password ever echoed back over the wire.
  • Web Crypto UUID auto-polyfill
    • Injects a safe UUID generator into the HTML <head> for non-HTTPS and direct-IP environments, preventing client-side crashes.

Security

This plugin is the security boundary of a self-hosted deployment, so its own exposure is hardened accordingly (as of 0.4.0, following QVD-2026-57410 - the unauthenticated RCE in DeepSeek Harness 0.1.1-rc.2, CVSS 9.8, whose root cause is that the stock /api trust fence decides "loopback" from the client-controlled Host header and is not an authentication layer):

  • Credentials run before the /api fence. Every request - HTTP and WebSocket - must pass the cookie/Basic credential gate before reaching any privileged RPC. That is the advisory's architecture-level fix (authentication independent of the Host header) deployed at the webserver layer.
  • Secure by default on non-loopback bindings. Booting with an empty password while listening on 0.0.0.0 generates a strong random password (persisted to the plugin state file, printed once to the log) instead of serving an unauthenticated privileged RPC surface; clearing the password from the settings card is refused on non-loopback bindings.
  • Host/Origin normalization never launders unauthenticated requests. The rewrite only vouches for sessions that passed the credential gate; with no password in force it is skipped entirely, so a DNS-rebound page carrying Host: attacker.example is still rejected by the stock fence.
  • Brute-force resistance. Five consecutive failed logins from one IP lock it out with a doubling backoff (15s base, 15min cap), on both the login endpoint and the Basic Auth path; all credential compares are constant-time.
  • No secret echo. /api/auth.get returns only the username, realm, and whether protection is enabled - never the password.

Recommended deployment posture: use a long unique password; put HTTPS with a Host-validating reverse proxy in front for public access; keep the bind on 127.0.0.1 for single-user local use; upgrade DeepSeek Harness once a patched release ships.


Installation

Install the bundle into a profile with dsh plugin:

# From a git host (pin a commit so later pushes cannot change what runs):
dsh plugin --profile web add github:kolawong/dsh-plugin-auth-webserver#<commit-sha>

# Or from a tarball / npm registry once published:
dsh plugin --profile web add ./dsh-plugin-auth-webserver-0.4.0.tgz
dsh plugin --profile web add dsh-plugin-auth-webserver

The package declares dsh.bundle, so dsh plugin appends it to the profile's bundle list automatically; its patch disables the stock webserver row and inserts the auth-gated server. Then boot:

dsh --profile web

Open http://your-server-ip:3080 to see the login page.

Configuration

Every option has a default; override the webserver-auth row in your profile's own patch ($DSH_HOME/profiles/web/cordis.patch.yml), which is applied after every bundle layer:

- id: webserver-auth
  config:
    host: '0.0.0.0'
    port: 3080
    username: 'admin'
    password: 'your_secure_password'

Changes made in the Web UI settings card apply immediately and are stored in $DSH_HOME/plugins/dsh-plugin-auth-webserver/state.json (mode 0600). Environment variables DSH_AUTH_USER and DSH_AUTH_PASS override both the config and the saved state.

OptionTypeDefaultDescription
hoststring'0.0.0.0'Listening interface (0.0.0.0 or 127.0.0.1).
portnumber3080HTTP/WebSocket listen port.
usernamestring'admin'Authentication username.
passwordstring''Authentication password. Empty disables authentication, but only on 127.0.0.1; on 0.0.0.0 a random password is generated at boot.
realmstring'DeepSeek Harness Authentication'Realm string used for fallback Basic Auth.

API endpoints

  • POST /api/auth.login — Authenticate and receive a session cookie ({ username, password }).
  • POST /api/auth.logout — Invalidate the current session and clear the cookie.
  • GET /api/auth.get — Retrieve the effective username, realm, and auth status (requires authentication; never returns the password).
  • POST /api/auth.update — Live-update credentials and persist them (requires authentication; refuses to clear the password on non-loopback bindings).

License

MIT License © 2026 kola