Debian12.8如何部署Ragflow

发布于:2025-05-01 ⋅ 阅读:(12) ⋅ 点赞:(0)

环境:

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.git

cd 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/man
   package 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-dev

pyicu

pip 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 bootstrap
    native_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"

网站公告

今日签到

点亮在社区的每一天
去签到