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.
Mounts a 5Gi PVC at /root/.dsh. Unchecked, the Deployment gets no volume there and data is lost on pod restart.
Generated Command
Ready to RunCopy 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:
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
Pull Image from GHCR
Docker Compose Deployment
Prefer Docker Compose? Drop this into your `docker-compose.yml` file:
services:
deepseek-harness:
image: ghcr.io/opscalehub/deepseek-harness:latest
ports:
- "3080:3080"
volumes:
- dsh-data:/root/.dsh
restart: unless-stopped
volumes:
dsh-data:
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.