dsh-docker
Discovered★ 3Docker image for DeepSeek Harness, with self-hosted deployment supported
dsh-docker
Docker template for running the DeepSeek Harness Web UI. 简体中文
Quickstart
cp .env.example .env
docker compose up -d
The container prints an official DSH startup URL containing a one-time token. Open that URL once to exchange the token for a browser session cookie. After the redirect, use the clean URL normally.
Open http://localhost:3080 only when running locally; use the tokenized URL printed by docker compose logs dsh for the first visit.
Stop the service with:
docker compose down
Local data and live configuration
config/is mounted at/dsh-homeand stores Harness state, credentials, and user configuration.workspace/is mounted at/home/node, the Web UI's default workspace location; setDSH_WORKSPACEin.envto use another host directory.dsh pluginmanages profile plugins through pnpm, which is bundled in the image.
Configure provider settings after startup through the Web UI. DSH watches user configuration and credential files under config/; changes apply to subsequent requests without restarting the container.
DSH updates
Every docker compose up rebuilds the dsh service and installs @deepseek-ai/dsh@latest. The build requires npm registry access and may take longer than reusing an existing image. The image applies a guarded compatibility patch to the browser client so the authenticated reverse proxy can expose the settings document. The patch fails the build when the upstream client shape changes and requires a deliberate compatibility review.
Public deployment
Public deployment requires a DNS record, a TLS certificate, Nginx, and a reverse proxy. Do not expose the Docker port directly to the Internet.
Set the public authority and the URL that should be printed for the first browser visit in .env:
DSH_PORT=3080
DSH_PUBLIC_URL=https://dsh.example.com
DSH_TRUSTED_HOST=dsh.example.com
Start DSH and keep its port bound to localhost:
docker compose up -d
docker compose logs dsh
Copy the dsh web: URL from the logs and open it through the public HTTPS address. DSH exchanges its one-time token for an authority-bound, signed browser-session cookie. No separate login service or htpasswd file is required.
Use nginx/dsh.conf.example as the reverse-proxy starting point, then set its server_name, TLS certificate paths, and HTTPS listener. Render the backend port from .env:
./scripts/render-nginx-conf.sh | sudo tee /etc/nginx/sites-available/dsh.conf
sudo nginx -t
sudo systemctl reload nginx
The proxy must preserve the public authority for both Host and Origin. DSH rejects mismatched or untrusted authorities with 403; a trusted request without the official browser cookie returns 401.
The public URL is then https://dsh.example.com.
Comments
Loading…
Similar plugins
by DevViking-Persike
DeepSeek Harness plugin: Docker container, image, log, and Compose tools for the agent, over the local Docker CLI
★ 0
MIT
JavaScript
Aug 22, 2026
dsh plugin --profile web add dsh-dockerby algerkong
Image preview for DSH (DeepSeek Harness) web sessions: read_image results render as a thumbnail, click for full size in the built-in lightbox.
★ 4
JavaScript
Sep 18, 2026
dsh plugin --profile web add @alger-ai/dsh-image-previewby leonardoxr
Inline read_image previews for DeepSeek Harness
★ 0
MIT
TypeScript
Aug 31, 2026
dsh plugin --profile web add dsh-image-previewby fanshong
DeepSeek Harness Docker 侧边栏面板插件:容器列表/资源监控/文件浏览编辑下载上传
★ 0
MIT
JavaScript
Aug 14, 2026
dsh plugin --profile web add dsh-docker-sidebarby SPYQWER1
Codex-backed `web_search`, `image_gen`, and `image_vision` tools for DeepSeek Harness, reusing ChatGPT OAuth login state.
★ 4
↓ 112/wk
MIT
JavaScript
Aug 27, 2026
dsh plugin --profile web add dsh-codex-toolsby shukookie
Wallpaper switcher for DeepSeek Harness - sidebar picker with local image upload, dim slider, and one-click next-wallpaper button.
★ 0
MIT
JavaScript
Aug 17, 2026
dsh plugin --profile web add dsh-plugin-wallpaper