dshcloud
DEEPSEEK HARNESS · SELF-HOSTEDOpen source · MIT

dshcloud

Your infrastructure.
A workspace for everyone.

Bring DeepSeek Harness to your team. Independent instances, persistent workspaces and shared access management on your own infrastructure.

Early development. Built for evaluation and development.

From an instance to a platform
Independent containersPersistent workspacesOwner authorizationResource quotas
01 / CAPABILITIES

Let the agent work. Let the platform set boundaries.

dsh handles execution. dshcloud organizes it into a manageable, multi-user platform.

01

One instance. Its own space.

Each instance has a dedicated container, bridge network and data filesystem. Users can create multiple instances within their quota.

Container / Network / Storage
02

Upgrade without starting over.

Workspaces, configuration and user packages live in /data. Rebuilds preserve the workspace; image changes take a pre-upgrade snapshot.

Persistent by design
03

Resources with defined limits.

Limit CPU, memory, process count and data-disk capacity. Administrators manage resource quotas, instance versions and account status.

CPU / Memory / PIDs / Disk
04

Sign-in is only the first step.

An instance subdomain requires authentication and an owner check. Pages, APIs and WebSocket handshakes share the same entry path.

Authentication + Ownership
02 / TRUST BOUNDARIES

Code can execute. Boundaries still matter.

Agents run shell commands, install dependencies and write files. Every instance container is treated as an untrusted code execution environment, not an ordinary application process.

  1. 01Browser
  2. 02Authentication
  3. 03Owner check
  4. 04Instance gate

The ingress comes first

Instances publish no host ports. The trusted ingress authenticates platform cookies, then removes them before forwarding to the instance.

Operations are not file access

Administrators can inspect status and container logs, but the platform provides no browser for user /data. Logs may still contain sensitive content.

Know the limits of isolation

Containers share the host kernel. This is not VM-level isolation. Host or Docker operators can access the underlying storage.

Explicit boundaries, not a promise of absolute security.

03 / GET STARTED

Start with your infrastructure.

These steps prepare the local development console, not a one-command production installation.

Prerequisites
  • Node.js ≥ 22
  • pnpm 10.10.0
  • Docker Desktop (with Compose v2)
  • Ports 80 / 443 / 3000 / 5173 / 55432 free
01

Install and start

Run from the repository root. It preflights dependencies, ports and Docker, generates the server configuration, starts Postgres and the ingress, runs migrations, creates the administrator, then starts the server and the console.

pnpm install
pnpm dev
02

Open the console

The ingress uses the default self-signed certificate, so the browser warns you — continue past it, then sign in with the credentials below.

https://console.lvh.me
admin@lvh.me
dsh-cloud-dev
03

Stop it

Ctrl-C stops only the server and the console; the ingress and Postgres stay up so the next start is instant. To stop those too:

pnpm dev:down
What else does instance access need?

An instance image, a working host-storage helper, and DNS, TLS and Traefik ingress. Starting the console alone does not provide instance access. Domain and cookie scopes must match your instance subdomains.

./docker/instance-image/build.sh

Not production-ready. Validate target-host isolation, backup and recovery, DNS/TLS and the runtime environment before deployment.

FAQ

Good questions to ask first.

How does this relate to DeepSeek Harness?

DeepSeek Harness is the upstream agent harness. dshcloud adds multi-tenant accounts, instance orchestration, quotas and access control around it. It is not an official DeepSeek cloud service.

Does the platform supply a shared model key?

No shared model key is injected into instances. Model endpoints and credentials are configured in dsh inside each instance. Platform and database credentials must stay outside instances.

Will recreating a name restore deleted data?

No. Deleting while retaining data preserves its ownership record. Reusing a name gets a separate storage identity. Restoring old data requires operator verification.

Can upgrade snapshots replace backups?

No. Only one pre-upgrade snapshot is kept per instance, and rollback discards changes made after that snapshot. Plan independent backups separately.

Are billing and multiple nodes included?

No. The current focus is instance lifecycle, access control and persistence on a single Docker host. Billing and multi-node runtimes are not current features.

A workspace on your own terms.

Source on GitHub