DSH Plugins Marketplace

DSH Plugins

Plugins

/

dsh-remote-acces

w

dsh-remote-acces

Discovered★ 2

One-command setup for password-protected remote access to the DeepSeek Harness (dsh) web UI — dsh privileged-methods patch, Caddy basic-auth proxy, systemd services局域网和tailscale网络无法访问完整功能dsh,我们加了一套密码验

Machine translated

dsh-remote-access

One-command setup for password-protected remote access to the DeepSeek Harness (dsh) web UI — the same production setup used by the author on their own tailnet.

dsh web binds to 127.0.0.1 only, and a hardcoded set of privileged methods (settings.*, credentials.*, agentPreset.*, llm.discoverModels, …) is loopback-only by design ("until a real authentication layer exists"). This project makes remote full-featured access practical today:

browser → TLS (Tailscale Serve / reverse proxy) → Caddy (password auth) → dsh (loopback)

What the script does

  1. Patches the dsh privileged-methods fence (one line) so trusted hosts are allowed instead of loopback-only. Idempotent, keeps a .bak backup.
  2. Installs the official Caddy (apt or direct binary download; GH_PROXY mirror variable supported for CN networks) and writes a Caddyfile with bcrypt basic auth that reverse-proxies to the loopback dsh server.
  3. Installs a systemd user service for the auth proxy (auto-start, crash-restart, journald logs).
  4. Prints the Tailscale Serve command and access URL.

Quickstart

git clone https://github.com/wuwuzhige-sudo/dsh-remote-access
cd dsh-remote-access

./scripts/setup-remote-access.sh \
  --password 'choose-a-strong-password' \
  --user dsh \
  --trusted-host myhost.tailXXXX.ts.net     # your Tailscale DNS name

# then:
sudo tailscale serve --bg 3081
systemctl --user restart dsh-web

Open https://<machine-name>.<tailnet>.ts.net — a password prompt appears, and the full dsh UI (settings, agent presets, credentials, model discovery included) works remotely.

If dsh web runs through a reverse proxy / Tailscale Serve, the browser origin is a real hostname, so the dsh server must be started with dsh web --trusted-host <hostname> (and the same value passed to the script via --trusted-host).

Options

FlagDefaultMeaning
--password <pw>—password for the auth layer (required)
--user <name>dshauth username
--dsh-port <port>3080dsh web listen port
--caddy-port <port>3081auth proxy listen port
--trusted-host <h>—repeatable; hostnames allowed to drive dsh
--dry-runoffprint actions without changing anything
--skip-patchoffdo not touch the dsh core patch
--skip-caddyoffassume caddy is already installed
GH_PROXY (env)—mirror prefix for the caddy download, e.g. https://ghfast.top/

Why not a plugin?

Two of the three moving parts cannot live inside the dsh plugin system:

  • Caddy is a separate process (a reverse proxy) — dsh plugins only run inside the dsh process.
  • The privileged-methods fence is hardcoded in dsh-client-connection (a module-private closure); a plugin cannot bypass it from the outside, and the webserver route registry does not allow intercepting /api ahead of the built-in route.

The --trusted-host flag itself is official dsh functionality. This script simply assembles the pieces.

Security

⚠️ The dsh web UI can execute arbitrary commands on the host. Anyone with the password can drive it.

  • The dsh server must stay bound to loopback — the Caddy proxy is the only public entry.
  • The password is stored as a bcrypt hash only (in ~/.local/share/dsh-remote-access/Caddyfile).
  • Use a strong, unique password. Over Tailscale the traffic is encrypted end-to-end and constrained to your tailnet.
  • This is a stopgap: the dsh project plans a real authentication layer. When it ships, drop the patch + proxy and use the official auth.

Uninstall

systemctl --user disable --now dsh-caddy
sudo tailscale serve --https 443 off
rm -f ~/.config/systemd/user/dsh-caddy.service ~/.local/share/dsh-remote-access/Caddyfile
# restore the dsh patch (see the .bak path printed during setup)
mv <dsh-client-connection>/lib/index.js.bak <dsh-client-connection>/lib/index.js

License

MIT

Comments

Loading…

Similar plugins

dsh-lan-gateway

by rice-awa

把 DeepSeek Harness 的 Web GUI 安全地开放到局域网或公网,自带密码鉴权,支持可选的TLS。Securely expose DeepSeek Harness's Web GUI to your local network or the public internet, with built-in password authentication and TLS support

Security & AuditManifest valid

★ 8

↓ 602/wk

MIT

TypeScript

Oct 17, 2026

dsh plugin --profile web add @riceawa/dsh-lan-gateway

by zergtant

DeepSeek Harness (dsh) 远程访问插件:提供 TLS、登录认证、会话保护和 HTTP/WebSocket 透明反代,支持局域网及 FRP ,cloudflare隧道等远程访问。

Development & InfrastructureManifest valid

★ 0

MIT

JavaScript

Sep 13, 2026

dsh plugin --profile web add dsh-remote-access

by imchenmin

在将 DeepSeek Harness Web 开放给局域网、远程设备、反向代理或共享环境之前,为它增加密码保护。Add password protection to DeepSeek Harness Web before exposing it to your LAN, remote devices, reverse proxies, or shared environments.

Manifest valid

★ 0

MIT

JavaScript

Aug 18, 2026

dsh plugin --profile web add dsh-auth-lock

by Mzy123l

为 DeepSeek Harness 桌面版提供「限网段 + 可选数字密码」的远程访问入口

Tools & CapabilitiesManifest valid

★ 4

MIT

JavaScript

Oct 18, 2026

dsh plugin --profile web add dsh-plugin-remote-access

by JUANWANG-BUAA

Auditable, token-gated DeepSeek Harness remote gateway: mobile QR access, per-device sessions, Host/Origin rewrite, settings/credentials/directory support.

Security & AuditManifest valid

★ 51

MIT

TypeScript

Oct 24, 2026

dsh plugin --profile web add dsh-full-remote

by slywalker2006

Server-grade gateway that turns DeepSeek Harness into a multi-tenant platform: remote access + auto HTTPS, subuser permissions & quotas, sandbox enforcement, encrypted auth, audit log.

Security & AuditManifest valid

★ 79

GPL-3.0

TypeScript

Oct 9, 2026

dsh plugin --profile web add dsh-passwords