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) and dify-agent‑local‑sandbox for 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