v0.1.2
What's new in v0.1.2
This release replaces the socat forwarder with a Caddy reverse proxy that makes remote access
fully functional — including settings and credentials — and establishes the proxy as the security
boundary.
Fixes & improvements
- Caddy reverse proxy instead of socat — the container now runs a Caddy proxy on
0.0.0.0:3081
that rewritesHost/Originto loopback before forwarding todsh webon127.0.0.1:3080.
dsh itself still listens on loopback only (both npm releases and upstreammainreject
--host 0.0.0.0— an intentional upstream safety design; verified against the upstream source). - Remote access now works for every endpoint — dsh's
/apibrowser-trust fence checks HTTP
headers only, so the loopback rewrite lets remote browsers pass everything, including
settings.*,credentials.*,agentPreset.*,host.pickDirectory/host.openPathand
llm.discoverModels, which upstream hard-pins to loopback. The
transport failure for /api/settings.describe: HTTP 403errors over remote access are gone. - The proxy is the security boundary — because the rewrite bypasses the loopback pin, anyone
who can reach port3081can read and modify all settings and credentials, not just drive the
agent. Enable basic auth withDSH_PROXY_USER/DSH_PROXY_PASSWORD(recommended for any
non-loopback deployment) and keep the port firewalled. DSH_TRUSTED_HOSTSremoved — the header rewrite makes trust configuration unnecessary; the
compatibility layer is gone and the proxy is the one and only exposure path.- Docs, examples, and CI aligned — README (EN + 中文), deployment and security guides,
compose/Quadlet examples, the CI smoke test (settings.describe through the proxy returns 200;
basic auth returns 401 without / 200 with credentials), and AGENTS.md all reflect the
proxy-only design.
Breaking changes (vs v0.1.1)
DSH_TRUSTED_HOSTS/--trusted-hostare no longer supported — remove them from your
configuration (they are no longer needed).- Exposure port stays
3081; port mappings are unchanged. - Anyone reaching
3081now also gets settings/credentials access — enable
DSH_PROXY_USER/DSH_PROXY_PASSWORDfor non-loopback deployments.
Upgrade note
Pull the new image and recreate the container. Remove DSH_TRUSTED_HOSTS and, if you expose the
port beyond loopback, add DSH_PROXY_USER / DSH_PROXY_PASSWORD (basic auth).