DSH Cloud

August 30, 2026 · View on GitHub

DSH Cloud

Managed cloud agents and a self-hostable platform around DeepSeek Harness.

Accounts, a server-side model gateway, usage policy, teams, and an optional browser workspace—without distributing an upstream model key to every client.

CI License: DSH Cloud Community 1.0 Security policy

Release: 0.2.4

中文 · Architecture · Self-host · Editions · Security · Support


Boot the whole Community Edition locally with one command (Docker required):

npx --yes @agentsdanceai/dsh-cloud start

Put your model upstream key into ./dsh-cloud/.env (UPSTREAM_API_KEY=), run the same command again, and open http://localhost:8787. No Node? uvx dsh-cloud start does the same from PyPI. Details: Quick start.

Choose your path

Use DSH Cloud Hosted

DSH Cloud Hosted is the managed subscription service: no server installation, with model access, workspace capacity, upgrades, monitoring, backups, and account support. Current plans are paid once for the selected monthly or annual term and do not renew automatically.

New accounts start with 500 free credits, and the hosted gateway serves 20 models with no upstream key of your own.

Start on DSH Cloud Hosted · Individual plans · Team plans

Self-host Community Edition

Run the source-available Community Edition with your own domain, database, identity providers, model upstream, storage, and operational controls. Docker Compose is the canonical persistent path; Docker, npm/npx, and uv/uvx use the same versioned stack contract.

Self-hosting guide · Configuration template · Security checklist

Develop and contribute

The public repository includes the FastAPI service, web console, gateway, deployment definitions, desktop overlay, mobile shells, tests, and release contracts.

Development setup · Contributing · Architecture · Changelog

What is included

CapabilityCommunity behavior
Account accessEmail/password and email-code paths, optional Google/GitHub OAuth, revocable browser/device/API credentials
Model gatewayOpenAI-compatible chat/models and an Anthropic-compatible messages surface; operator upstream key remains server-side
Usage and plansModel catalog, server-side pricing, credit ledger, rate/concurrency gates, usage records, and optional entitlements
TeamsMembership, roles, seats, pooled allowances, and per-member attribution
PaymentsOptional provider adapters with server-authoritative products and authenticated, idempotent webhook handling
Web consoleAccount, plan, order, team, administration, legal, and download surfaces
Desktop and mobileDevice authorization plus desktop overlay and mobile shell integration contracts
WorkspacesOptional browser-accessible agent runtime; disabled by default and subject to the isolation warning below
OperationsDocker/Compose definitions, readiness/liveness/version endpoints, persistent data, release metadata, and upgrade guidance

Self-hosters remain responsible for infrastructure, provider agreements, model costs, TLS, identity/email delivery, payment configuration, data protection, backups, monitoring, and applicable law.

20 models, one gateway

ProviderModels
DeepSeekDeepSeek-V4-Flash · DeepSeek-V4-Pro
GoogleGemini-3.6-Flash
XiaomiMiMo-V2-Omni
MiniMaxMiniMax-M2.7 · MiniMax-M3
AlibabaQwen3-Omni-30B-A3B · Qwen3-VL-32B · Qwen3.8-Max
MoonshotKimi-K2.7-Code · Kimi-K3
ZhipuGLM-5.2
ByteDanceDoubao-Seed-2.0-Pro
OpenAIGPT-5.6-Luna · GPT-5.6-Terra · GPT-5.6-Sol
xAIGrok-4.5
AnthropicClaude-Sonnet-5 · Claude-Opus-5 · Claude-Fable-5

New accounts start with 500 free credits — every model above works out of the box. No card, no API keys, no per-provider signups. Try them on DSH Cloud Hosted, or pipe them into a stock DeepSeek Harness install with one command:

npx --yes dsh-plugin-cloud setup

The gateway serves the live catalog, so this table is contract-tested against server/config/models.json.

Knowledge bases, same gateway

The gateway also speaks POST /v1/embeddings — the OpenAI surface Coze, Dify and RAGFlow expect for their knowledge bases. Vectors are billed on input tokens only, out of the same credit balance as chat.

Embedding modelDimensions
Qwen3-Embedding-0.6B1024
Qwen3-Embedding-4B2560
Qwen3-Embedding-8B4096
BGE-M31024
Text-Embedding-3-Small1536
Text-Embedding-3-Large3072

Quick start

All commands below pin release 0.2.4; pin exact versions in automation.

One command — npm/npx

One-shot:

npx --yes @agentsdanceai/dsh-cloud@0.2.4 start --mode trial --wait

Installed:

npm install --global @agentsdanceai/dsh-cloud@0.2.4
dsh-cloud start --mode trial --wait

This asks nothing. It writes ./dsh-cloud/.env, starts the stack, and prints where to sign in — the site is up in about a minute. Desktop downloads and the cloud workspace point at the hosted service, so a trial deployment needs no model key of its own.

To run models on this machine instead, put your OpenAI-compatible endpoint and key into UPSTREAM_API_KEY in that .env and run the same command again. --mode selfhost is the one that asks questions: a public deployment cannot register its first account without SMTP or OAuth, so the CLI collects that before it will start.

One command — uv/uvx

One-shot:

uvx dsh-cloud==0.2.4 start --mode trial --wait

Installed:

uv tool install dsh-cloud==0.2.4
dsh-cloud start --mode trial --wait

For explicit lifecycle control, both CLIs also provide init, doctor, and up. Pin immutable versions in automation and review generated configuration before starting it.

From source — Docker Compose

git clone https://github.com/AgentsDanceAI/deepseek-harness-cloud.git && cd deepseek-harness-cloud
bash scripts/quickstart.sh --domain localhost --admin-email you@example.com

The script writes deploy/selfhost/.env with a generated AUTH_SECRET, asks for your model upstream, starts the stack, and waits for readiness — then open http://localhost:8787. Development mode prints sign-in codes to server logs; never use it on a public network. Manual Compose steps: docs/deploy.md.

Single container — prebuilt image

(umask 077; mkdir -p .dsh-cloud; printf 'AUTH_SECRET=%s\nDHC_DEV=1\nPUBLIC_BASE=http://127.0.0.1:8081\n' "$(openssl rand -hex 32)" > .dsh-cloud/docker.env)
docker run --rm --name dsh-cloud --env-file .dsh-cloud/docker.env --publish 127.0.0.1:8081:8100 --mount type=volume,src=dsh-cloud-data,dst=/app/data ghcr.io/agentsdanceai/dsh-cloud-server:0.2.4

Check http://127.0.0.1:8081/readyz, then add your upstream key to .dsh-cloud/docker.env before model calls. No TLS in this mode — keep the loopback bind. Building the image from source: docs/deploy.md.

The full deployment guide covers configuration, the versioned GHCR path, backups, upgrades, rollback, scaling, and troubleshooting: docs/deploy.md.

Architecture at a glance

browser / desktop / mobile
          |
          | HTTPS + session/device credential
          v
  TLS edge / reverse proxy
          |
          v
  DSH Cloud FastAPI service --------> operator-selected model/search upstream
   | accounts, teams, plans            server-side provider credential
   | model gateway and metering
   | web console and payments
   |
   +---- SQLite or PostgreSQL
   |
   +---- optional workspace backend -> agent runtime container

The gateway authenticates and authorizes the caller, validates a configured model ID, replaces the client credential with the operator's upstream credential, streams the response, and records normalized usage. See the architecture document for flows and trust boundaries.

Security posture

Workspaces execute user-controlled code. They are off by default. A container and Docker socket proxy are not automatically a hostile multi-tenant security boundary; public operators must review image trust, Docker authority, networks, mounts, privileges, egress, previews, credentials, and resource isolation before enabling them. See docs/security.md.

Report vulnerabilities privately through the GitHub security advisory form or security@agentsdance.ai. Do not open a public vulnerability issue or include live credentials and user data. See SECURITY.md.

Development

Python 3.11+, uv, and Node.js 22 are the tested contributor toolchain:

uv sync --project server --all-extras --locked
uv run --project server pytest server/tests -q
uv run --project server ruff check server/app server/tests server/scripts
node --test server/tests/js/*.test.mjs

Run the server locally:

DHC_DEV=1 AUTH_SECRET=local-development-secret \
  uv run --project server uvicorn app.main:app --app-dir server --reload

CLI source checks, once the package directories are present in the candidate tree:

node packages/cli-npm/bin/dsh-cloud.mjs --help
node packages/cli-npm/bin/dsh-cloud.mjs start --dry-run --json
uv run --project packages/cli-python dsh-cloud --help
uv run --project packages/cli-python dsh-cloud start --dry-run --json

Read CONTRIBUTING.md for DCO sign-off, provenance disclosure, tests, security routing, and edition-boundary review.

Repository map

PathPurpose
server/FastAPI application, gateway, data layer, templates, configuration, tests
packages/dsh-plugin-cloud/Plugin that connects stock DeepSeek Harness installs to the cloud gateway
deploy/selfhost/Canonical public Compose stack, Caddy config, and environment template
packages/Version-matched npm and Python lifecycle CLIs
release/Canonical release identity and schemas
desktop/Pinned upstream desktop assembly, minimal patches, and cloud integration plugin
mobile/, miniprogram/Mobile integration shells
docs/Architecture, deployment, security, edition, compatibility, and maintainer docs
legal/Hosted legal documents and third-party/licensing records

Versions, licensing, and marks

DSH Cloud is independently developed and operated. It is not affiliated with or endorsed by DeepSeek. “DeepSeek” and related marks belong to their respective owners.