Debian12.8如何部署Ragflow
环境:
ragflow v17.2
debian12.8
问题描述:
Debian12.8如何部署Ragflow
解决方案:
1.创建ragflow目录
root@VM-16-4-debian:/home/www# mkdir ragflow
root@VM-16-4-debian:/home/www# ls
ragflow
root@VM-16-4-debian:/home/www# cd ragflow/
root@VM-16-4-debian:/home/www/ragflow#
2.查看python版本
root@VM-16-4-debian:/home/www/ragflow# python3 --version
Python 3.10.13
3.创建虚拟环境(我服务器多人使用需要这样,如果你一个人用这步不需要再建,后面会建)
ensurepip 来启用 venv:python3.10 -m ensurepip --upgrade
python3.10 -m pip install --upgrade pip
3.1创建一个新的虚拟环境:
python3 -m venv ragflow_env
3.2激活虚拟环境:
source ragflow_env/bin/activate
4.以源代码启动服务的方式部署
python -m pip install pipx
4.1安装 uv。如已经安装,可跳过本步骤:
pipx install uv
export UV_INDEX=https://mirrors.aliyun.com/pypi/simple
5.下载源代码并安装 Python 依赖:
git clone https://github.com/infiniflow/ragflow.gitcd ragflow/uv sync --python 3.10 --all-extras # install RAGFlow dependent python modules
如果出现 uv: command not found解决办法
(ragflow_env) root@VM-16-4-debian:/home/www/ragflow/ragflow# uv --version
-bash: uv: command not found
(ragflow_env) root@VM-16-4-debian:/home/www/ragflow/ragflow# pipx list
venvs are in /root/.local/share/pipx/venvs
apps are exposed on your $PATH at /root/.local/bin
manual pages are exposed at /root/.local/share/manpackage uv 0.6.16, installed using Python 3.11.2- uv- uvx
永久添加 /root/.local/bin 到 PATH
编辑 .bashrc 文件:nano ~/.bashrc
在文件末尾添加以下行:export PATH=$PATH:/root/.local/bin
保存并退出编辑器(在 nano 中按 Ctrl + X,然后按 Y 确认保存)。使更改生效:source ~/.bashrc
验证 uv 是否可用:uv --version
pyicu安装不上,icu60版本低问题
手动安装 icu-config(如果必须使用)# 下载 ICU 72.1 源码
wget https://github.com/unicode-org/icu/releases/download/release-72-1/icu4c-72_1-src.tgz
tar xzf icu4c-72_1-src.tgz
cd icu/source# 编译并安装(仅生成 icu-config)
./configure --prefix=/usr
make -j$(nproc)
make install
apt-get install -y python3-dev pkg-config libicu-devpyicupip install pyicu==2.15 --no-binary pyicu \--global-option="build_ext" \--global-option="-I$(/usr/bin/icu-config --incfile | xargs dirname)" \--global-option="-L$(/usr/bin/icu-config --libdir)"
再次执行:uv sync --python 3.10 --all-extras
6.通过 Docker Compose 启动依赖的服务(MinIO, Elasticsearch, Redis, and MySQL):
docker compose -f docker/docker-compose-base.yml up -d
[+] Running 0/1⠹ Container ragflow-redis Starting 0.2s
Error response from daemon: failed to set up container networking: driver failed programming external connectivity on endpoint ragflow-redis (ff2e35d3f58391a1a1fcc955add9c244799888aa83d71f4e54b02ddb1331b7ce): failed to bind host port for 0.0.0.0:6379:172.19.0.3:6308/tcp: address already in use
我服务器上有个redis了,这里我需要改它端口,避免冲突
也有个mysql了,这里我需要改它端口,避免冲突
6.1更新 .env 文件
确保 ${REDIS_PORT} 的值与配置一致(例如改为未占用的端口)
(ragflow_env) root@VM-16-4-debian:/home/www/ragflow/ragflow# docker stop ragflow-redis
ragflow-redis
(ragflow_env) root@VM-16-4-debian:/home/www/ragflow/ragflow# docker rm ragflow-redis
ragflow-redis
(ragflow_env) root@VM-16-4-debian:/home/www/ragflow/ragflow# docker compose -f docker/docker-compose-base.yml up -d --force-recreate redis
7.在 /etc/hosts 中添加以下代码,目的是将 conf/service_conf.yaml 文件中的所有 host 地址都解析为 127.0.0.1:
127.0.0.1 es01 infinity mysql minio redis
如果无法访问 HuggingFace,可以把环境变量 HF_ENDPOINT 设成相应的镜像站点:
export HF_ENDPOINT=https://hf-mirror.com
启动后端服务:
source .venv/bin/activate
export PYTHONPATH=$(pwd)
docker/launch_backend_service.sh
``File "/home/www/ragflow/ragflow/.venv/lib/python3.10/site-packages/cv2/__init__.py", line 153, in bootstrapnative_module = importlib.import_module("cv2")# 安装 OpenGL 和图形驱动依赖sudo apt update
sudo apt install -y libgl1-mesa-glx libglib2.0-0
# 清理旧进程(如果有)
pkill -f "ragflow_server.py"
pkill -f "task_executor.py"# 重新启动服务
bash docker/launch_backend_service.sh
更新redis连接的端口
更新配置文件redis端口/home/www/ragflow/ragflow/conf
8.下载/nltk_data
手动下载并解压数据
wget https://raw.githubusercontent.com/nltk/nltk_data/gh-pages/packages/tokenizers/punkt.zip
unzip punkt.zip -d /home/www/ragflow/nltk_data/
设置环境变量
echo "export NLTK_DATA=/home/www/ragflow/ragflow/nltk_data" >> ~/.bashrc
source ~/.bashrc
我在报错libodbc.so.2
sudo apt update
sudo apt install -y unixodbc-bin # 包含 odbcinst 工具
sudo apt install -y odbcinst1debian2 # Debian 专用包
清理并重启服务
终止旧进程
pkill -f "ragflow_server.py"
pkill -f "task_executor.py"
重新启动
docker/launch_backend_service.sh
9.防火墙开头9222端口
公网访问web,注册账号即可
10.安装 Node.js 和 npm
使用官方源安装
curl -fsSL https://deb.nodesource.com/setup_lts.x | bash -
apt-get install -y nodejs
验证安装
node -v && npm -v
安装前端依赖:
cd web
npm install
11.启动前端服务:
npm run dev
12.开发完成后停止 RAGFlow 服务 停止 RAGFlow 前端和后端服务:
pkill -f "ragflow_server.py|task_executor.py"