菜单

部署

相关源文件

本文档提供了在各种环境中部署 RAGFlow 的全面指南。它涵盖了部署先决条件、配置选项、部署方法和扩展注意事项。有关从源代码构建 Docker 镜像的信息,请参阅构建 Docker 镜像

先决条件

在部署 RAGFlow 之前,请确保您的环境满足以下最低要求

资源最低要求
CPU4+ 核心 (x86)
内存16+ GB
磁盘50+ GB
Docker≥24.0.0
Docker Compose≥v2.26.1

此外,您必须将 vm.max_map_count 内核参数配置为至少 262144,以便 Elasticsearch 正常运行

要使此设置永久生效,请将 vm.max_map_count=262144 添加到 /etc/sysctl.conf

来源:README.md109-139 docs/quickstart.mdx26-174

部署选项

RAGFlow 提供了多种部署选项以适应不同的用例

Docker 镜像

RAGFlow 提供了不同的 Docker 镜像以适应各种部署需求

镜像标签大小 (GB)包含嵌入模型稳定版?用例
v0.19.0≈9稳定发布版生产环境(带本地嵌入)
v0.19.0-slim≈2稳定发布版生产环境(带外部嵌入)
nightly≈9不稳定每夜构建版测试最新功能(带本地嵌入)
nightly-slim≈2不稳定每夜构建版测试最新功能(带外部嵌入)

完整镜像包含内置嵌入模型

  • BAAI/bge-large-zh-v1.5
  • maidalun1020/bce-embedding-base_v1

来源:README.md201-206 docker/.env94-103 Dockerfile21-26

部署架构

RAGFlow 的整体部署架构由以下组件组成

包含代码实体的 RAGFlow 部署架构

部署通过 docker-compose.yml 协调,配置由 entrypoint.sh 管理,它使用来自 .env 的环境变量处理 service_conf.yaml.template

来源:docker/docker-compose.yml1-149 docker/entrypoint.sh78-140 docker/.env1-184

基本部署

部署 RAGFlow 最简单的方法是使用 Docker Compose 和预构建镜像

  1. 克隆仓库

  2. 启动服务

  3. 验证部署

成功部署后将显示 RAGFlow ASCII 艺术字徽标和 "Running on all addresses (0.0.0.0)"。

来源:README.md142-220 docs/quickstart.mdx176-238

配置

RAGFlow 部署可以通过各种配置文件和环境变量进行定制。

环境变量

主要环境配置位于 docker/.env 文件中,其中包括

  • RAGFLOW_IMAGE:指定要使用的 Docker 镜像
  • SVR_HTTP_PORT:Web 界面的 HTTP 端口(默认:80)
  • MYSQL_PASSWORD:MySQL 数据库密码
  • MINIO_PASSWORD:MinIO 对象存储密码
  • REDIS_PASSWORD:Redis 缓存密码
  • ELASTIC_PASSWORD:Elasticsearch 密码
  • DOC_ENGINE:文档引擎选择 (elasticsearch 或 infinity)

服务配置

服务特定配置在 docker/service_conf.yaml.template 中定义,这些配置在运行时会填充环境变量。主要配置包括

  • 数据库连接
  • 文件存储设置
  • LLM API 端点和密钥
  • 嵌入模型配置
  • 文档处理选项

要更改默认 HTTP 端口 (80),请将 docker-compose.yml 中的端口映射从 80:80 更改为 <YOUR_PORT>:80

来源:README.md229-247 docker/entrypoint.sh78-88

文档引擎选项

RAGFlow 支持两种用于存储文本和向量的文档引擎

Elasticsearch(默认)

Elasticsearch 是用于存储全文和向量的默认文档引擎。在您部署 RAGFlow 时会自动配置它。

Infinity

从 Elasticsearch 切换到 Infinity

  1. 停止所有容器

    警告:此命令会删除 Docker 卷,清除现有数据。

  2. DOC_ENGINEdocker/.env 文件中设置为 infinity

  3. 重启容器

请注意,Infinity 在 Linux/arm64 机器上不受官方支持。

来源:README.md250-273 docker/docker-compose-base.yml38-66

高级部署选项

分布式部署

RAGFlow 支持通过向 entrypoint 脚本传递命令行参数进行分布式部署

entrypoint 脚本 (entrypoint.sh) 支持以下选项

  • --disable-webserver:禁用 Web 服务器 (nginx + ragflow_server)
  • --disable-taskexecutor:禁用任务执行器工作进程
  • --workers=<num>:要运行的任务执行器数量
  • --host-id=<string>:主机唯一 ID(默认为主机名)
  • --consumer-no-beg=<num>--consumer-no-end=<num>:消费者 ID 范围

例如,部署一个只包含 4 个任务执行器的工作节点

来源:docker/entrypoint.sh1-139

LLM 集成

RAGFlow 需要配置 LLM 提供商才能正常运行

  1. 部署后,通过 http://<SERVER_IP> 访问 Web 界面(如果使用默认端口 80,则无需端口)
  2. 通过您的个人资料图标导航到模型提供商
  3. 添加和配置带有相应 API 密钥的 LLM 提供商
  4. 设置以下默认模型
    • 聊天模型
    • 嵌入模型
    • 图像到文本模型(如果需要)

有关支持的 LLM 提供商的详细信息,请参阅LLM 集成层

来源:README.md197-201 docs/quickstart.mdx240-273

升级 RAGFlow

要升级现有的 RAGFlow 部署

升级到最新官方发布版

  1. 克隆仓库(或拉取最新更改)

  2. 更新 docker/.env 中的镜像引用

    RAGFLOW_IMAGE=infiniflow/ragflow:v0.17.2
    
  3. 更新并重启

升级到每夜构建版

要使用最新的每夜构建版,请更新 docker/.env

RAGFLOW_IMAGE=infiniflow/ragflow:nightly
# or
RAGFLOW_IMAGE=infiniflow/ragflow:nightly-slim

然后更新并重启

注意:只要您在停止容器时不使用 -v 标志,升级 RAGFlow 会保留您的数据。

来源:docs/guides/upgrade_ragflow.mdx1-102

故障排除

常见问题

  1. vm.max_map_count 值过低:如果 Elasticsearch 启动失败,请检查 vm.max_map_count 是否设置为至少 262144。

  2. 网络异常错误:在服务启动后立即登录时,您可能会遇到“网络异常”错误。请等待所有服务完全初始化(使用 docker logs -f ragflow-server 检查)。

  3. 文件解析停滞:如果在处理过程中文件解析卡住,请检查日志以查找特定错误,并确保有足够的可用资源。

健康检查

使用以下命令监控容器健康状况

检查特定容器的日志

来源:README.md217-220 docs/quickstart.mdx231-233

开发部署

为了开发目的,您可以直接从源代码运行 RAGFlow 服务

  1. 安装 uv(如果已安装则跳过)

  2. 克隆并安装依赖项

  3. 启动依赖服务

  4. 启动后端服务

  5. 启动前端服务

这种部署方法适用于需要修改和测试 RAGFlow 代码的开发人员。

来源:README.md274-350