🔍 RAGFlow v0.25.6

组件技术栈 & 部署端口依赖关系全景图
Docker Compose Microservices 生成时间: 2026-06-17

🗺️ 一、总体组件拓扑与端口依赖关系图

核心必需组件
文档搜索引擎(五选一)
可选增强组件
开发/调试组件
强依赖
服务依赖
可选依赖
🌐 浏览器 / API 客户端 ☁️ 外部 LLM 服务 OpenAI / Qwen / DeepSeek... 🔄 Nginx (反向代理 + 静态资源) :80 (HTTP) / :443 (HTTPS) 🐍 RAGFlow Python Server ragflow_server.py Flask · Gunicorn Port :9380 🐍 Admin Python Server admin_server.py Flask Port :9381 🔌 MCP Server (可选) mcp/server/server.py Model Context Protocol Port :9382 🔧 Go Admin Server (可选) bin/admin_server Hybrid 模式 Port :9383 ⚡ Go API Server (可选) bin/server_main Hybrid 模式 Port :9384 ⚙️ Task Executor × N task_executor.py 后台文档处理 · 无对外端口 🔄 Data Sync sync_data_source.py 数据源同步 · 无对外端口 🐬 MySQL 8.0 关系数据库 用户 · 知识库 · 系统配置 Port :3306 ⚡ Valkey 8 (Redis) 缓存 · 消息队列 128MB · allkeys-lru Port :6379 📦 MinIO 对象存储 (S3兼容) 文档 · 文件 · 附件 :9000 Console :9001 🔍 Elasticsearch 8.11.3 · 默认引擎 向量检索 · 全文搜索 Port :1200→9200 🔍 OpenSearch 2.19.1 · ES 替代 向量检索 · 全文搜索 Port :1201→9201 ♾️ Infinity v0.7.0 · 高性能向量库 原生向量检索 Thrift :23817 HTTP :23820 :5432 🌊 OceanBase 4.4.1 · 分布式 SQL SQL + 向量检索一体 Port :2881 🗄️ SeekDB OceanBase Lite 轻量 SQL + 向量 Port :2881 🧠 TEI (Text Embeddings Inference) HuggingFace TEI · CPU / GPU Qwen3-Embedding-0.6B / bge-m3 Port :6380→80 🛡️ Sandbox Executor Manager 安全代码执行环境 Python / Node.js 沙箱 Port :9385 📊 Kibana (可选) ES 可视化 & 监控 需搭配 Elasticsearch Port :6601→5601 强依赖 Docker 内部网络: ragflow (bridge) Docker Network: ragflow (bridge) — 所有容器通过服务名互相发现,无需关注内部 IP

📋 二、组件详细信息

核心服务
文档搜索引擎
可选增强组件
应用内部组件
组件技术栈Docker 镜像容器端口宿主机端口依赖角色
🐬 MySQL MySQL 8.0.39 mysql:8.0.39 3306 3306 (EXPOSE_MYSQL_PORT) 核心关系数据库:用户、知识库元数据、系统配置、对话记录
⚡ Redis / Valkey Valkey 8 valkey/valkey:8 6379 6379 (REDIS_PORT) 缓存 & 消息队列:任务队列、会话缓存、文档处理状态
📦 MinIO MinIO (S3 兼容) pgsty/minio:RELEASE.2026... 9000 (API)
9001 (Console)
9000 (MINIO_PORT)
9001 (MINIO_CONSOLE_PORT)
对象存储:上传文档、解析结果、附件、数据集文件
组件技术栈Docker 镜像容器端口宿主机端口适用场景
🔍 Elasticsearch ⭐默认 Elasticsearch 8.11.3 elasticsearch:8.11.3 9200 1200 (ES_PORT) 通用场景,功能最丰富,社区最大
🔍 OpenSearch OpenSearch 2.19.1 opensearchproject/opensearch:2.19.1 9201 1201 (OS_PORT) ES 替代方案:开源友好,AWS 生态
♾️ Infinity Infinity v0.7.0 infiniflow/infinity:v0.7.0 23817 (Thrift)
23820 (HTTP)
5432 (PSQL)
23817 / 23820 / 5432 高性能向量检索:无需外部依赖,部署简单
🌊 OceanBase OceanBase CE 4.4.1 oceanbase/oceanbase-ce:4.4.1... 2881 2881 (OCEANBASE_PORT) 企业级:分布式 + 向量检索一体,大规模场景
🗄️ SeekDB SeekDB (OceanBase Lite) oceanbase/seekdb:latest 2881 2881 (SEEKDB_PORT) 轻量场景:OceanBase Lite,资源受限环境
组件技术栈Docker 镜像容器端口宿主机端口启用方式
🧠 TEI (CPU) HuggingFace Text-Embeddings-Inference infiniflow/text-embeddings-inference:cpu-1.8 80 6380 (TEI_PORT) COMPOSE_PROFILES 添加 tei-cpu
🧠 TEI (GPU) HuggingFace Text-Embeddings-Inference (CUDA) infiniflow/text-embeddings-inference:1.8 80 6380 (TEI_PORT) COMPOSE_PROFILES 添加 tei-gpu
🛡️ Sandbox Executor Sandbox Executor Manager infiniflow/sandbox-executor-manager:latest 9385 9385 COMPOSE_PROFILES 添加 sandbox
📊 Kibana Kibana 8.11.3 kibana:8.11.3 5601 6601 (KIBANA_PORT) COMPOSE_PROFILES 添加 kibana
组件技术栈进程容器端口宿主机端口角色
🔄 Nginx Nginx (openresty) /usr/sbin/nginx 80, 443 80 (SVR_WEB_HTTP_PORT)
443 (SVR_WEB_HTTPS_PORT)
反向代理 + 静态资源服务 + SSL 终止
🐍 RAGFlow Server Python Flask + Gunicorn api/ragflow_server.py 9380 9380 (SVR_HTTP_PORT) 主 API 服务:知识库管理、文档、对话、Agent Canvas
🐍 Admin Server Python Flask admin/server/admin_server.py 9381 9381 (ADMIN_SVR_HTTP_PORT) 管理 API:系统配置、用户管理、权限、系统状态
🔌 MCP Server Python (MCP SDK) mcp/server/server.py 9382 9382 (SVR_MCP_PORT) Model Context Protocol 服务:LLM 工具调用协议
🔧 Go Admin Server Go (Gin/Echo) bin/admin_server 9383 9383 (GO_ADMIN_PORT) Go 管理服务 (Hybrid 模式)
⚡ Go API Server Go bin/server_main 9384 9384 (GO_HTTP_PORT) Go API 服务 (Hybrid 模式)
⚙️ Task Executor Python rag/svr/task_executor.py 后台任务执行器:文档解析、分块、嵌入生成
🔄 Data Sync Python rag/svr/sync_data_source.py 数据源同步:定时从外部数据源拉取文档

🔌 三、端口映射总览

宿主机端口容器端口服务协议类别说明
8080Nginx (HTTP)HTTP核心Web 前端 + API 反向代理入口
443443Nginx (HTTPS)HTTPS核心SSL/TLS 加密入口
33063306MySQLTCP (MySQL)核心关系数据库连接端口
63796379Redis/ValkeyTCP (Redis)核心缓存和消息队列
90009000MinIO APIHTTP核心S3 兼容对象存储 API
90019001MinIO ConsoleHTTP核心MinIO Web 管理控制台
93809380RAGFlow API ServerHTTP核心主 API 服务
93819381Admin API ServerHTTP核心管理后台 API
93829382MCP ServerHTTP可选Model Context Protocol 服务
93839383Go Admin ServerHTTP可选Go 管理服务 (Hybrid 模式)
93849384Go API ServerHTTP可选Go API 服务 (Hybrid 模式)
93859385Sandbox ExecutorHTTP可选安全代码沙箱管理
12009200ElasticsearchHTTP引擎ES 文档/向量检索 (默认)
12019201OpenSearchHTTP引擎OpenSearch 文档/向量检索
2381723817Infinity ThriftThrift引擎Infinity 向量数据库 Thrift 接口
2382023820Infinity HTTPHTTP引擎Infinity 向量数据库 HTTP 接口
54325432Infinity PSQLTCP (PostgreSQL)引擎Infinity PostgreSQL 协议接口
28812881OceanBase / SeekDBTCP (MySQL)引擎OceanBase/SeekDB SQL + 向量
638080TEI EmbeddingHTTP可选内置嵌入模型推理服务
66015601KibanaHTTP可选ES 数据可视化和监控

🧭 四、Nginx 反向代理路由表

Nginx 监听 :80/:443,根据不同 URL 路径将请求分发到内部服务。以下为 Python 模式和 Hybrid 模式的路由对比。

Python 模式 (纯 Python)
Hybrid 模式 (Python + Go)
URL 路径匹配转发目标服务
~ ^/api/v1/adminlocalhost:9381Admin Python Server
~ ^/(v1|api)localhost:9380RAGFlow Python Server
/静态文件/ragflow/web/dist (React SPA)
~ ^/static/(css|js|media)/静态资源 (缓存 10 年)/ragflow/web/dist/static/
URL 路径匹配转发目标服务
~ ^/api/v1/admin/roles_with_permission127.0.0.1:9381Admin Python
~ ^/api/v1/admin/sandbox127.0.0.1:9381Admin Python
~ ^/api/v1/admin/roles127.0.0.1:9381Admin Python
~ ^/api/v1/admin/whitelist127.0.0.1:9381Admin Python
~ ^/api/v1/admin/variables127.0.0.1:9381Admin Python
~ ^/api/v1/admin127.0.0.1:9383Go Admin Server
~ ^/api/v1/skills127.0.0.1:9384Go API Server
~ ^/v1/system/config127.0.0.1:9384Go API Server
~ ^/v1/user/(login|logout)127.0.0.1:9384Go API Server
~ ^/(v1|api)127.0.0.1:9380RAGFlow Python Server
/静态文件/ragflow/web/dist (React SPA)
~ ^/static/(css|js|media)/静态资源 (缓存 10 年)/ragflow/web/dist/static/
💡 关键点:外部用户/客户端只需访问 :80:443 端口。所有内部服务端口(9380、9381 等)虽然暴露到宿主机,但生产环境建议仅通过 Nginx 访问,或在防火墙层面限制直接访问。

🚀 五、部署组合模式

通过 COMPOSE_PROFILES 环境变量控制启用哪些组件。基础组合:COMPOSE_PROFILES=${DOC_ENGINE},${DEVICE}

部署场景COMPOSE_PROFILES启用组件端口开放
最小部署 (CPU) elasticsearch,cpu MySQL + Redis + MinIO + ES + RAGFlow(CPU) 80, 3306, 6379, 9000, 1200, 9380, 9381
Infinity 引擎 infinity,cpu MySQL + Redis + MinIO + Infinity + RAGFlow(CPU) 80, 3306, 6379, 9000, 23817, 23820, 5432, 9380, 9381
GPU 加速 elasticsearch,gpu MySQL + Redis + MinIO + ES + RAGFlow(GPU) 80, 3306, 6379, 9000, 1200, 9380, 9381
内置嵌入模型 elasticsearch,cpu,tei-cpu 上述 + TEI 嵌入服务 + 6380
完整部署 elasticsearch,cpu,tei-cpu,sandbox,kibana 所有组件 80, 443, 3306, 6379, 9000-9001, 1200, 6380, 6601, 9380-9385

📊 六、核心数据流与依赖链路

6.1 文档处理流

📤 用户上传文档 :80 → Nginx → :9380 💾 存入 MinIO :9000 (S3 API) 📝 写入 MySQL :3306 文档记录 🔄 Redis 队列 :6379 任务入队 ⚙️ Task Executor 处理 解析→分块→嵌入→写入ES 处理完成后更新文档状态(MySQL)

6.2 知识检索与问答流

💬 用户提问 :80 → Nginx → :9380 🔍 向量检索 ES (:9200) / Infinity / OB 🧠 LLM 生成回答 外部 LLM API / 本地模型 📋 对话存储 MySQL :3306 + Redis :6379 📤 返回用户 Nginx → 浏览器 SSE 流式 (可选) TEI 嵌入服务 :6380→80

🔗 七、组件依赖矩阵

✅ = 强依赖(服务不可用时主服务无法启动) | 🔗 = 运行时依赖 | ➖ = 可选

组件 ↓ / 被依赖 ← RAGFlow
Server
Task
Executor
Admin
Server
Data
Sync
MCP
Server
Kibana
MySQL ✅ 强依赖 🔗 读写 ✅ 强依赖 🔗 读写
Redis 🔗 缓存/队列 ✅ 任务队列 🔗 状态
MinIO 🔗 文件存储 🔗 读写文档
文档引擎 (ES等) 🔗 检索 ✅ 写入向量 🔗 数据源
TEI ➖ 可选 ➖ 使用外部模型时不需要
外部 LLM 🔗 对话生成
Sandbox ➖ 可选 ➖ 可选 (代码执行)

⏱️ 八、启动顺序与健康检查

阶段 0: 基础设施 🐬 MySQL 健康检查: mysqladmin ping ⚡ Redis 健康检查: redis-cli ping 📦 MinIO 健康检查: curl /minio/health/live 🔍 ES / Infinity / OB 健康检查: curl API 阶段 1: 核心应用 (depends_on MySQL → service_healthy) 🔄 Nginx → 🐍 RAGFlow Server (:9380) → 🐍 Admin Server (:9381) → ⚙️ Task Executor × N → 🔄 Data Sync entrypoint.sh: 初始化数据库 → 启动 Nginx → 循环监控 RAGFlow Server → (可选) Admin / MCP / Go / DataSync 阶段 2: 可选组件 (按需启动, Profiles 控制) 🧠 TEI (tei-cpu/tei-gpu) 🛡️ Sandbox 📊 Kibana 🔌 MCP Server
⚠️ 启动顺序关键点:
  • MySQL 是启动链中最关键的依赖 — RAGFlow 容器配置了 depends_on: mysql (condition: service_healthy)
  • Redis 和 MinIO 虽无显式 depends_on,但 RAGFlow Server 启动后会立即连接它们
  • 文档搜索引擎(ES/Infinity 等)在运行时依赖,启动时不做强校验
  • Task Executor 在 RAGFlow Server 之后启动,通过 Redis 消费任务

🛠️ 九、技术栈全景图

层级技术选型版本用途
前端React + TypeScript + ViteSPA Web 应用 (shadcn/ui + Tailwind + Zustand)
反向代理Nginx (OpenResty)静态资源 + API 路由分发 + SSL 终止
后端框架Python Flask + Gunicorn主 API 服务 (ragflow_server.py, admin_server.py)
Go (Gin/Echo)高性能 API 服务 (Hybrid 模式可选)
任务队列Redis (Valkey 8)8.x任务分发 + 状态缓存 + 消息队列
关系数据库MySQL8.0.39用户、知识库、对话记录、系统配置
对象存储MinIO (S3 API)2026-03文档、解析产物、附件存储
搜索引擎Elasticsearch / OpenSearch / Infinity / OceanBase / SeekDB全文搜索 + 向量相似度检索
嵌入模型HuggingFace TEI + Qwen3-Embedding / bge-m31.8文档/查询向量化
LLM外部 API (OpenAI / Qwen / DeepSeek / ...)对话生成、摘要、Agent 推理
容器编排Docker + Docker Compose多服务编排、健康检查、网络隔离
文档解析DeepDoc / Docling / MinerUPDF/Word/PPT/Excel/图片 深度解析
MCP 协议MCP (Model Context Protocol)LLM 工具调用标准协议
沙箱Docker Sandbox (Python/Node.js)Agent 代码安全执行环境

⚠️ 十、部署注意事项

🔒 安全:默认密码均为 infini_rag_flow,生产环境务必修改。Elasticsearch 开启了 xpack.security,需要密码认证。
🌐 网络:所有容器位于同一个 Docker bridge 网络 ragflow,通过 service_name 互相访问,无需 IP。
📦 文档引擎切换:通过 DOC_ENGINE 环境变量切换(elasticsearch / opensearch / infinity / oceanbase / seekdb),重新部署时需 docker compose down -v 清理旧数据。
💾 内存:ES 默认内存限制 8GB (MEM_LIMIT),TEI 嵌入模型如 Qwen3-Embedding-0.6B 需 25GB+ RAM/vRAM。
🔄 API_PROXY_SCHEME:支持三种模式: python(纯 Python,默认)、hybrid(Python + Go 混合)、go(纯 Go)。Hybrid 模式下部分高频 API 路由到 Go 服务以获得更好性能。