从源码启动服务 (Launch service from source)
本指南介绍如何从源码启动 RAGFlow 服务。通过本指南,您将能够利用源码进行调试。
目标读者
添加了新功能或修改了现有代码,并希望利用源码进行调试的开发人员,前提是其机器上已搭建好了目标部署环境。
前提条件
- CPU ≥ 4 核
- 内存 (RAM) ≥ 16 GB
- 磁盘空间 ≥ 50 GB
- Docker ≥ 24.0.0 且 Docker Compose ≥ v2.26.1
如果您的本地机器(Windows、Mac 或 Linux)上尚未安装 Docker,请参阅 安装 Docker 引擎 (Install Docker Engine) 指南。
从源码启动服务
要从源码启动 RAGFlow 服务:
克隆 RAGFlow 仓库
git clone https://github.com/infiniflow/ragflow.git
cd ragflow/
安装 Python 依赖
-
安装 uv:
pipx install uv -
安装 RAGFlow 服务的 Python 依赖:
uv sync --python 3.12 --frozen系统将自动创建一个名为
.venv的虚拟环境,并将所有的 Python 依赖安装到该新环境中。如果您需要对 RAGFlow 服务运行测试,请安装测试依赖:
uv sync --python 3.12 --group test --frozen && uv pip install sdk/python --group test
启动第三方服务
以下命令将使用 Docker Compose 启动“基础”服务(MinIO、Elasticsearch、Redis 和 MySQL):
docker compose -f docker/docker-compose-base.yml up -d
更新第三方服务的 host 和 port 设置
-
在
/etc/hosts中添加以下行,将 docker/service_conf.yaml.template 中指定的所有主机解析为127.0.0.1:127.0.0.1 es01 infinity mysql minio redis -
在 docker/service_conf.yaml.template 中,按照 docker/.env 的设定,将 mysql 的端口更新为
5455,es 的端口更新为1200。
启动 RAGFlow 后端服务
-
在 docker/entrypoint.sh 中注释掉
nginx相关的行。# /usr/sbin/nginx -
激活 Python 虚拟环境:
source .venv/bin/activate
export PYTHONPATH=$(pwd) -
**可选步骤:**如果您无法访问 Hugging Face,可以设置
HF_ENDPOINT环境变量以使用镜像站:export HF_ENDPOINT=https://hf-mirror.com -
检查 conf/service_conf.yaml 中的配置,确保所有的主机(Host)和端口(Port)设置正确。
-
运行后端启动命令来启动服务:
JEMALLOC_PATH=$(pkg-config --variable=libdir jemalloc)/libjemalloc.so;
LD_PRELOAD=$JEMALLOC_PATH python rag/svr/task_executor.py 1;python api/ragflow_server.py;
启动 RAGFlow 前端服务
-
导航到
web目录并安装前端依赖:cd web
npm install -
在 vite.config.ts 中将
server.proxy.target更新为http://127.0.0.1:9380:vim vite.config.ts -
启动 RAGFlow 前端服务:
npm run dev出现以下提示信息,显示前端服务的 IP 地址 and 端口号:

访问 RAGFlow 服务
在您的 Web 浏览器中输入 http://127.0.0.1:<PORT>/,请确保端口号与上方截图中显示的端口号一致。
开发完成后停止 RAGFlow 服务
-
停止 RAGFlow 前端服务:
pkill npm -
停止 RAGFlow 后端服务:
pkill -f "docker/entrypoint.sh"