This document provides a high-level overview of RAGFlow's deployment options and initial setup procedures. It outlines the system prerequisites, primary deployment methods, and the essential configuration files used to run RAGFlow. For in-depth instructions and technical details, please refer to the dedicated child pages:
service_conf.yaml, environment variables, and the relationship between configuration sources.uv, multi-language compilation (Python, Go, C++), and GitHub Actions testing workflow.values.yaml customization.RAGFlow utilizes a containerized microservices architecture with each major service encapsulated in its own Docker container or Kubernetes pod. This modular design separates core application logic, data infrastructure, and optional extensions, allowing flexibility in scaling and customization.
Sources: docker/docker-compose-base.yml1-240 docker/.env1-185
This architecture highlights the clear separation of concerns:
Sources: docker/docker-compose-base.yml1-240 docker/.env1-185 README.md141-145
RAGFlow’s configuration is managed through multiple layers, typically involving environment variables, templated YAML files, and Docker Compose profiles to tailor container orchestration.
Sources: docker/.env1-185 docker/docker-compose-base.yml1-240
.env file defines environment variables controlling service behavior and credentials docker/.env1-6service_conf.yaml.template uses variables from .env to build the runtime service configuration.docker-compose.yml reads .env variables and manages container lifecycle and profiles docker/docker-compose-base.yml1-5DOC_ENGINE values in .env control which document store profile and container are started (e.g., elasticsearch, infinity, oceanbase, opensearch, seekdb) docker/.env13-20Sources: docker/.env1-185 docker/docker-compose-base.yml1-240
RAGFlow requires specific hardware and software environments to run efficiently.
| Component | Minimum Requirement |
|---|---|
| CPU | x86 Architecture, ≥ 4 cores |
| RAM | ≥ 16 GB |
| Disk | ≥ 50 GB free space |
Note: Official Docker images are built exclusively for x86 platforms README_zh.md191-193 ARM64 users need to build from source using the provided build scripts docs/quickstart.mdx23-26
Sources: README_zh.md148-155 docs/quickstart.mdx28-35
| Software | Version Requirement |
|---|---|
| Docker | ≥ 24.0.0 |
| Docker Compose | ≥ v2.26.1 |
| Python | ≥ 3.13 |
| gVisor | Optional (for sandbox code executor feature) |
Sources: README_zh.md148-155 docs/quickstart.mdx28-35 pyproject.toml8
A crucial step for document engines like Elasticsearch and Infinity is the system kernel parameter vm.max_map_count, which must be set to at least 262144 docs/quickstart.mdx45-52
Sources: README_zh.md162-181 docs/quickstart.mdx44-82
RAGFlow supports multiple deployment methods tailored to production, development, or specialized environments.
This method uses pre-built Docker images managed through Docker Compose for complete service orchestration.
v0.26.4) README.md28DOC_ENGINE environment variable in .env controls which document engine profile and container are launched docker/.env13-20DOC_ENGINE and DEVICE (CPU/GPU) settings docker/.env28For details, see Docker Compose Deployment.
Sources: README.md162-182 docker/.env13-170
This method runs RAGFlow services directly from the source code:
uv Dockerfile77-91 with dependencies locked via uv.lock uv.lock1-10 and defined in pyproject.toml pyproject.toml9-181For details, see Build System and CI/CD.
Sources: README.md162-182 Dockerfile77-91 .github/workflows/tests.yml130-143
Enterprise-scale deployments can leverage Helm charts and Kubernetes for orchestration of all RAGFlow components including Redis, MySQL, MinIO, and Document Stores.
For details, see Kubernetes and Helm Deployment.
Sources: helm/values.yaml1-50
Sources: docker/docker-compose-base.yml5-240 docker/.env140-163 pyproject.toml1-181
API_PROXY_SCHEME can be set to hybrid to enable both Go and Python backend layers docker/.env183Sources: docker/docker-compose-base.yml5-240 docker/.env140-163 pyproject.toml1-181
RAGFlow supports multiple document search engines. The choice is controlled by the DOC_ENGINE environment variable in .env. Available options include:
For details, see Document Engine Selection.
Sources: docker/.env13-20 docker/docker-compose-base.yml3-157
The RAGFlow source supports complex multi-language builds:
uv Dockerfile77-91 with pyproject.toml pyproject.toml1-181For details, see Build System and CI/CD.
Sources: Dockerfile77-91 .github/workflows/tests.yml31-154 pyproject.toml1-201
Refresh this wiki
This wiki was recently refreshed. Please wait 4 days to refresh again.