# AI use cases for DeepSeek Harness Docker (runzhliu/deepseek-harness-docker)

Repo: [runzhliu/deepseek-harness-docker](https://github.com/runzhliu/deepseek-harness-docker) | Use cases: 4 | Page: https://dedupedai.com/use-cases/runzhliu-deepseek-harness-docker/

A community Docker, Compose, Podman, and Helm packaging of the official DeepSeek Harness (@deepseek-ai/dsh) agent runtime, with a Web UI and a headless CLI.

This file holds every use case of this repo. Each one starts with a "## " heading and ends with its URL.

- Run the DeepSeek Harness Web UI locally with Compose: https://dedupedai.com/use-cases/runzhliu-deepseek-harness-docker/run-dsh-web-ui-locally-with-compose/
- Deploy DeepSeek Harness on Kubernetes with the Helm chart: https://dedupedai.com/use-cases/runzhliu-deepseek-harness-docker/deploy-dsh-on-kubernetes-with-helm/
- Run DeepSeek Harness headless for batch and CI jobs: https://dedupedai.com/use-cases/runzhliu-deepseek-harness-docker/run-dsh-headless-for-automation/
- Run DeepSeek Harness rootless with Podman Compose: https://dedupedai.com/use-cases/runzhliu-deepseek-harness-docker/run-dsh-rootless-with-podman/

## How to run the DeepSeek Harness Web UI locally with Compose with DeepSeek Harness Docker

Repo: [runzhliu/deepseek-harness-docker](https://github.com/runzhliu/deepseek-harness-docker) | Difficulty: Intermediate | Time: 30 minutes | Basis: From the README

Start the official DSH Web UI in a container on your own machine in a few commands.

**Who it is for:** A developer who wants to try DeepSeek Harness on a laptop without installing Node.js or the npm package by hand.

**The problem:** Installing the DSH npm package directly on a workstation mixes its state and tools with the host system.

**The outcome:** A running local Web UI on 127.0.0.1 with its state kept in the dsh-home volume and the code agent working in a chosen project folder.

### Steps

1. Run `docker compose pull` in the repository directory.
2. Run `DSH_WORKSPACE=/absolute/path/to/your/project docker compose up -d --no-build` to mount your project as the workspace.
3. Run `docker compose ps` and confirm the service is healthy.
4. Run `docker compose logs --no-color deepseek-harness | grep 'dsh web:'` and copy the full URL that includes the token.
5. Open that URL in a browser, then configure the model and credentials in the Settings page.

### Prompt to paste into your agent

```text
Using the repository runzhliu/deepseek-harness-docker, start the Compose stack with DSH_WORKSPACE set to <project-path>, then print the dsh web URL from the container logs. Expected output: a URL on 127.0.0.1:3080 that includes a token query parameter. Verify that a request to the root path without the token returns 401.
```

### Caveat

The default image uses HTTP and the Web API can run code, so this setup is for a single local user and should not be exposed to a network.

Risk, credentials: Model credentials entered in the Settings page are stored in the dsh-home volume, so protect that volume and do not share the Web URL that carries the token.

Disclaimer: Third-party repos we don't own or vouch for. AI-generated use cases can be wrong: review everything and run at your own risk. Full text: https://dedupedai.com/disclaimer/

URL: https://dedupedai.com/use-cases/runzhliu-deepseek-harness-docker/run-dsh-web-ui-locally-with-compose/

## How to deploy DeepSeek Harness on Kubernetes with the Helm chart with DeepSeek Harness Docker

Repo: [runzhliu/deepseek-harness-docker](https://github.com/runzhliu/deepseek-harness-docker) | Difficulty: Advanced | Time: 1 hour | Basis: From the README

Run one DSH instance as a StatefulSet with persistent state and a workspace claim.

**Who it is for:** A platform engineer who needs DeepSeek Harness running in a Kubernetes cluster with its state kept across upgrades.

**The problem:** A plain container restart or redeploy can lose profiles, sessions, and settings unless they live on persistent storage.

**The outcome:** A single-replica StatefulSet with a dsh-home PVC, a Headless Service, and a NetworkPolicy, validated with helm lint.

### Steps

1. Review the chart values, including the `workspace.existingClaim` setting if you want to mount an existing workspace PVC. (inferred, check the README)
2. Run `helm lint --strict <chart-path>` to confirm the chart passes strict checks. (inferred, check the README)
3. Run `helm install <release-name> <chart-path> -n <namespace>` to deploy the chart. (inferred, check the README)
4. Run `kubectl get statefulset,pvc,svc,networkpolicy -n <namespace>` to confirm the resources were created. (inferred, check the README)
5. Use port-forward to reach the Web UI and confirm it responds before you configure models. (inferred, check the README)

### Prompt to paste into your agent

```text
Using the Helm chart in runzhliu/deepseek-harness-docker, lint and install it into the namespace <namespace> as release <release-name>. Expected output: a StatefulSet with one replica, a dsh-home PVC, and a Headless Service. Verify that the pod reaches Ready and that the chart still shows exactly one replica.
```

### Caveat

The chart is a single replica by design, and the README says adding replicas does not give high availability for this single-user runtime.

Risk, credentials: Provider secrets mounted into the pod give the agent access to paid model accounts, so limit who can read the namespace secrets.

Disclaimer: Third-party repos we don't own or vouch for. AI-generated use cases can be wrong: review everything and run at your own risk. Full text: https://dedupedai.com/disclaimer/

URL: https://dedupedai.com/use-cases/runzhliu-deepseek-harness-docker/deploy-dsh-on-kubernetes-with-helm/

## How to run DeepSeek Harness headless for batch and CI jobs with DeepSeek Harness Docker

Repo: [runzhliu/deepseek-harness-docker](https://github.com/runzhliu/deepseek-harness-docker) | Difficulty: Advanced | Time: 30 minutes | Basis: From the README

Use the headless profile for one-shot or automated agent runs without the Web UI.

**Who it is for:** A developer or CI maintainer who wants an agent task to run from a script or pipeline.

**The problem:** The Web UI needs a browser and a person to log in, which does not suit scripted or batch work.

**The outcome:** A headless DSH run that reads provider credentials from environment variables or a .env file and exits after the task.

### Steps

1. Set the provider credentials as environment variables or in a `.env` file, since headless mode reads only those and not saved keys.
2. Start the container from the image with the workspace mounted and a shell available. (inferred, check the README)
3. Run `dsh --profile headless` inside the container for the one-shot or automated task.
4. Capture the exit code and output and check that the task result is in the mounted workspace. (inferred, check the README)
5. Run a small test task before adding it to a pipeline.

### Prompt to paste into your agent

```text
Using the image from runzhliu/deepseek-harness-docker, run `dsh --profile headless` against the workspace <workspace-path> with provider credentials from environment variables. Expected output: a completed task with a zero exit code and changed files in the workspace. Verify that no saved credential file was needed for the run.
```

### Caveat

The README says sandbox behavior depends on the target host, so validate one real shell or file tool call on the target environment before relying on headless runs.

Risk, credentials: Credentials in environment variables or a .env file can leak through CI logs or shell history, so store them in your pipeline secret manager.

Disclaimer: Third-party repos we don't own or vouch for. AI-generated use cases can be wrong: review everything and run at your own risk. Full text: https://dedupedai.com/disclaimer/

URL: https://dedupedai.com/use-cases/runzhliu-deepseek-harness-docker/run-dsh-headless-for-automation/

## How to run DeepSeek Harness rootless with Podman Compose with DeepSeek Harness Docker

Repo: [runzhliu/deepseek-harness-docker](https://github.com/runzhliu/deepseek-harness-docker) | Difficulty: Advanced | Time: 1 hour | Basis: From the README

Start the stack under a rootless Podman user with the workspace owned by you.

**Who it is for:** A Linux user who runs containers without root and wants DSH to write to a project folder without changing its ownership.

**The problem:** Running the agent as root or recursively changing project ownership is a poor fit for a shared developer machine.

**The outcome:** The DSH stack running rootless with UID mapping, a bind-mounted workspace, and a loopback port.

### Steps

1. Run `podman version` and `podman-compose version` to confirm the tools are installed.
2. Run `podman info --format '{{.Host.Security.Rootless}}'` and confirm the output is true.
3. Run `DSH_WORKSPACE=/absolute/path/to/your/project podman-compose -f compose.yaml -f compose.podman.yaml pull`. (inferred, check the README)
4. Run `DSH_WORKSPACE=/absolute/path/to/your/project podman-compose -f compose.yaml -f compose.podman.yaml up -d --no-build` to start the stack. (inferred, check the README)
5. Open the Web UI through the loopback port and confirm files written in the workspace are owned by your user. (inferred, check the README)

### Prompt to paste into your agent

```text
Using runzhliu/deepseek-harness-docker, verify Podman is rootless and start the stack with compose.yaml and compose.podman.yaml, using <project-path> as DSH_WORKSPACE. Expected output: running containers and a Rootless value of true. Verify that a file the agent creates in the workspace is owned by the invoking user on the host.
```

### Caveat

The README says podman-compose 1.0.x cannot replace mounts correctly in this multi-file setup, so use version 1.6.0 or newer.

Disclaimer: Third-party repos we don't own or vouch for. AI-generated use cases can be wrong: review everything and run at your own risk. Full text: https://dedupedai.com/disclaimer/

URL: https://dedupedai.com/use-cases/runzhliu-deepseek-harness-docker/run-dsh-rootless-with-podman/
