dsh-webui-perf
awa-123-cw
DeepSeek Harness WebUI 性能优化开关插件:长代码流式渲染/历史加载/高亮缓存优化,设置面板一键开关(with official-package patches)
PROJECT TOPICS
PROJECT README
Docker template for running the DeepSeek Harness Web UI. 简体中文
cp .env.example .env
docker compose up -d
Configure the provider URL, credentials, and model through the Web UI. Public deployments require the Nginx session login (24-hour expiry by default) before this configuration is available.
Open http://localhost:3080.
Stop the service with:
docker compose down
config/ is mounted at /dsh-home and stores Harness state and user configuration.workspace/ is mounted at /home/node, which is the default workspace location shown by the Web UI.Configure provider settings after startup through the Web UI. Public deployments require the Nginx session login first. DSH watches user configuration and credential files under config/; changes apply to subsequent requests without restarting the container. .env contains Compose-only settings such as the host port and Nginx trusted host.
Only two host ports are ever published, both defined once in .env:
DSH_PORT=3080 # DSH Web UI, published on host 127.0.0.1
AUTH_PORT=8081 # login/session service, published on host 127.0.0.1
--trusted-host) both read DSH_PORT automatically; no other file needs editing.3080 → dsh web 3081 inside the DSH container, 8081 inside the auth container.nginx/dsh.conf.example (two set lines mirroring .env); or let .env stay the single source of truth by rendering:./scripts/render-nginx-conf.sh | sudo tee /etc/nginx/sites-available/dsh.conf
Port-change procedure: edit .env → docker compose up -d → re-render (or sync the constants block) → sudo nginx -t && sudo systemctl reload nginx.
Public deployment requires a DNS record, a TLS certificate, Nginx, and an authenticated reverse proxy. Do not expose the Docker port directly to the Internet.
Public authentication uses a login service plus session cookies: Nginx validates every request's session cookie with an internal auth_request subrequest and redirects invalid or expired sessions to the /login/ page. Sessions expire after 24 hours by default; restarting the auth service invalidates every session immediately.
Set the public authority and the login password in .env:
DSH_PORT=3080
DSH_TRUSTED_HOST=dsh.example.com
AUTH_PASSWORD=<strong random password>
# AUTH_TTL_HOURS=24
Generate a password:
openssl rand -base64 24 | tr '+/' '-_' | tr -d '='
Start DSH and the login service, and keep the host ports bound to localhost:
docker compose up -d --build
Use nginx/dsh.conf.example as the reverse-proxy starting point (ports — see “Ports” above), then set its server_name, TLS certificate paths, and HTTPS listener, and reload Nginx:
sudo nginx -t
sudo systemctl reload nginx
/login/; enter AUTH_PASSWORD from .env.dsh_session cookie (HttpOnly + SameSite=Lax, plus Secure over HTTPS) that expires after AUTH_TTL_HOURS (default 24); afterwards the user is sent back to the login page.auth container's memory: docker compose restart auth (or rebooting the host) logs everyone out immediately.The public URL is then https://dsh.example.com.
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。