BorisPolonsky/dify-helm
Deploy langgenious/dify, an LLM based app on kubernetes with helm chart.
dify‑helm – Helm chart for the Dify LLM‑powered chatbot
What it is – A ready‑to‑use Helm chart that installs the open‑source Dify application (a web UI + API for building LLM chatbots) on a Kubernetes cluster. The chart pulls the official Dify Docker images, wires them together with a reverse‑proxy, and optionally connects to external databases, caches, vector stores and object storage.
Why it matters – Running LLM‑backed services in production usually requires a lot of plumbing: multiple micro‑services, secure code‑execution sandboxes, background workers, and persistent storage. dify‑helm packages all of that into a single Helm release, letting you spin up a full‑featured chatbot platform with a few commands.
Quick start (TL;DR)
helm repo add dify https://borispolonsky.github.io/dify-helm
helm repo update
helm install my-dify dify/dify # add your own values.yaml to customise
Requires Kubernetes ≥ 1.23 and Helm ≥ 3.12.
Core architecture (as shown in the README)
- Ingress / Load‑balancer – optional external entry point.
- nginx proxy – routes HTTP traffic to the appropriate internal service.
- API service (port 5001) –
langgenius/dify-api– REST + Socket.IO for workflow orchestration. - Web UI (port 3000) –
langgenius/dify-web– the browser‑based chat interface. - Worker & Beat pods – Celery workers for background jobs and periodic tasks.
- Sandbox pods –
dify-sandbox(code execution) anddify-agent‑local‑sandboxfor agent‑side shell commands, isolated behind an SSRF‑protecting Squid proxy. - Plugin daemon – runs user‑provided plugins.
- Agent backend – orchestrates LLM‑driven agents.
- Data layer – PostgreSQL/MySQL, Redis (cache & Celery broker), and a selectable vector DB (Weaviate, Qdrant, Milvus, PGVector, etc.).
- Storage layer – supports local PVC or any major cloud object store (S3, Azure Blob, GCS, Alibaba OSS, Tencent COS, Huawei OBS, Volcengine TOS).
What you can configure
| Area | What you can set |
|---|---|
| Ingress | Enable/disable an Ingress resource, choose host names, TLS. |
| Service type | ClusterIP, LoadBalancer, or NodePort for the nginx proxy. |
| External dependencies | Point the chart at existing PostgreSQL/MySQL, Redis, vector DB, or object‑storage endpoints instead of deploying the bundled ones. |
| Resource limits | CPU/Memory requests & limits for each pod. |
| Persistence | Size of PVCs for PostgreSQL, Redis, and file storage. |
| Feature toggles | Enable/disable the sandbox, agent stack, or plugin daemon. |
All of these options are documented in the chart’s own README.md (linked from the repo).
When you’d use it
- Self‑hosted LLM chatbot – Deploy a private Dify instance for internal teams or customers.
- Production‑grade AI service – Leverage Kubernetes’ scaling, rolling‑update, and observability features.
- Experimentation with vector stores – Switch between Weaviate, Qdrant, Milvus, etc., without changing application code.
- Secure code execution – Use the sandbox and SSRF proxy to run user‑provided Python/JS snippets safely.
Limitations / things to note
- The chart only packages the deployment; you still need to provide your own LLM model endpoint (e.g., OpenAI, Azure OpenAI, or a self‑hosted model) via Dify’s configuration.
- Some optional components (e.g., external vector DBs) require you to set up networking / credentials manually.
- The README does not include health‑check or monitoring guidance; you’ll need to add Prometheus/Alertmanager yourself if required.
Contributors
The repository shows a contributor badge generated by contrib.rocks, indicating community involvement.
Bottom line – dify‑helm is a genuine, production‑oriented Helm chart that bundles all the moving parts of the Dify LLM chatbot platform, making Kubernetes deployment straightforward for anyone familiar with Helm.
Related
- Project
- Project
- Project
- Project
- Project