Tools & Capabilities

dsh-auth

cestbon0309/dsh-auth · ★ 0

cestbon0309

A plugin that allows you to configure access password for dsh webui, and access

License
Apache-2.0
Added
2026-08-23
Maintenance
active
Install kind
github

No manifest check is available; listing does not imply compatibility or security review.

安装

dsh plugin --profile web add github:cestbon0309/dsh-auth

GitHub 源码安装:首次需按提示配置 allowBuilds 构建授权后重试

For install and environment setup, plus plugin development tutorials, see DSH community docs ↗

README

Source README · body: en · Read Chinese README

Table of contents
  1. What
  2. Config
  3. Build
  4. Install
  5. Usage
  6. Note
  7. License

An auth-gated reverse proxy that lets the DeepSeek Harness web GUI listen on all interfaces (IPv4 + IPv6).

中文 · Apache-2.0

What

Stock dsh web listens only on 127.0.0.1 with no auth. This plugin keeps the internal server on loopback and stands an auth-gated front on 0.0.0.0 / :: (dual-stack), proxying authenticated traffic (including WebSockets).

Config

Field Default Meaning
host :: front listen address (0.0.0.0 / :: / specific IP)
port 3081 front port (internal DSH stays on 3080)
auth.username '' basic username
auth.password '' basic password
auth.token '' bearer token (also ?token=)

Basic and Bearer combine — either passes. With neither configured, startup fails closed. Env fallbacks: DSH_AUTH_USERNAME / DSH_AUTH_PASSWORD / DSH_AUTH_TOKEN.

Build

pnpm install && pnpm build

Install

dsh plugin --profile web add "link:<absolute-path>/dsh-auth-gateway"

Add a row to $DSH_HOME/profiles/web/cordis.patch.yml:

- insert:
    - id: auth-gateway
      name: dsh-auth-gateway
      config:
        host: '::'
        port: 3081
        auth:
          username: dsh
          password: 'a strong password'

Run dsh web, open http://<host-ip>:3081.

Usage

curl -u dsh:password http://<host-ip>:3081/
curl -H 'Authorization: Bearer <token>' http://<host-ip>:3081/

Note

  • Injects a crypto.randomUUID polyfill so the UI works over plain HTTP from LAN clients (non-secure context).
  • HTTP-layer auth only, no TLS; front with nginx/Caddy for HTTPS on public exposure.

License

Apache-2.0