DeepSeek Harness
GHCR Container Ready • Binds All Interfaces by Default

Frictionless Deployment for DeepSeek Harness

Packaged cleanly into standard OCI containers, reachable on port 3080 out-of-the-box, via OpScaleHub.

docker run -d -p 3080:3080 -v dsh-data:/root/.dsh ghcr.io/opscalehub/deepseek-harness:latest

Interactive Container Configurator

Set your model provider, run mode, and persistence, then generate a Docker command or a Kubernetes manifest instantly.

Parameters

Sets DEEPSEEK_API_KEY at startup so the built-in provider is ready immediately — no trip to Settings. Leave blank to configure it later in the web UI instead.

Sets DEEPSEEK_BASE_URL, redirecting the built-in adapter to a self-hosted mirror or gateway that speaks the DeepSeek wire protocol.

Data (profiles, sessions, settings) lives under /root/.dsh; set DSH_HOME to relocate it. See Configuration Reference for a custom OpenAI-compatible gateway.

The container always listens on 3080; this maps it to a host port.

Interactive mode runs attached to your terminal and removes the container the moment it stops — no background process to find and clean up later.

Generated Command

Ready to Run

Copy and paste this snippet directly into your terminal or deployment script.

docker run -d \
  --name deepseek-harness \
  -p 3080:3080 \
  -v dsh-data:/root/.dsh \
  --restart unless-stopped \
  ghcr.io/opscalehub/deepseek-harness:latest

The image binds all interfaces inside the container, overriding the product's loopback-only default. In Docker, that means the published port is reachable from anywhere that can reach the host port — add --host 127.0.0.1 to fall back to loopback. In Kubernetes, exposure instead depends on the Service; the generated ClusterIP keeps it cluster-internal until you add an Ingress, NodePort, or LoadBalancer.

Configuration Reference

What's actually configurable at startup, pulled from the harness's own plugin config — not everything, just what a container operator needs.

Built-in DeepSeek Provider

DEEPSEEK_API_KEY and DEEPSEEK_BASE_URL are read at container start — the inherited environment always outranks anything saved later through the web UI's Settings. Set them once with -e and the provider is ready on first load; leave them unset to configure DeepSeek through Settings instead.

Restarting the container is required to pick up a changed value — the credential snapshot is read once, at launch.

Data, Home & Telemetry

All harness data — profiles, sessions, settings — lives under /root/.dsh. Mount a volume there (the generator does this by default) or set DSH_HOME to relocate it. Set DSH_TELEMETRY_DISABLED=1 to turn off telemetry.

Custom / Self-Hosted Gateway

A generic OpenAI-compatible endpoint isn't a single env var — it needs a provider entry. Mount a settings.yaml at /root/.dsh/settings.yaml:

llm-pi-ai:
  providers:
    my-gateway:
      apiKeyEnv: GATEWAY_API_KEY
      api: openai-completions
      baseURL: https://gateway.example/v1
      models:
        - id: my-model

Then set the env var it references (GATEWAY_API_KEY above) the same way as the built-in provider's key. The web UI's Add a custom provider form does the same thing without a mounted file.

Engineered for Reliability

Why developers choose the OpScaleHub containerized distribution of DeepSeek Harness.

Reachable by Default

The product loopback-binds its web surface and refuses --host 0.0.0.0 by default. The container applies an explicit patch overlay to bind all interfaces, so the published port is reachable out of the box — pass --host 127.0.0.1 to restore loopback-only.

GHCR Automated Builds

Images are automatically tested, built, and pushed to GitHub Container Registry ensuring immutable and reliable deployments.

Zero Overhead

Streamlined slim, Debian-based multi-stage builds — the build tree is compiled in a builder stage and copied into a lean runtime stage for fast pulls and scalable cluster orchestration.

Deployment Quickstart

1

Pull Image from GHCR

docker pull ghcr.io/opscalehub/deepseek-harness:latest
2

Docker Compose Deployment

Prefer Docker Compose? Drop this into your `docker-compose.yml` file:

version: '3.8'
services:
  deepseek-harness:
    image: ghcr.io/opscalehub/deepseek-harness:latest
    ports:
      - "3080:3080"
    volumes:
      - dsh-data:/root/.dsh
    restart: unless-stopped
volumes:
  dsh-data:
3

Configure a Model

Open http://localhost:3080 and choose a workspace. If you set DEEPSEEK_API_KEY at startup, DeepSeek is already selectable — otherwise add a provider under Settings. See the Configuration Reference for every startup-configurable variable.