在部署ragflow的时候我参考了3篇帖子,是基于苹果arm64安装ragflow来实现的。具体连接在下面,可以参考一下。
https://zhuanlan.zhihu.com/p/1891610274194256793
https://blog.csdn.net/weixin_55841088/article/details/148085416
https://ragflow.io/docs/dev/launch_ragflow_from_source
1.克隆RAGFlow仓库
git clone https://github.com/infiniflow/ragflow.git
cd ragflow/
2.安装python环境
这步我偷懒了,正常部署python环境是需要通过安装anaconda来进行管理。而我当前是直接用sudo apt-get install -y python3 python3-pip安装然后创建的环境。然后关于anaconda的链接可以借鉴下面两个。
https://blog.csdn.net/u014677900/article/details/146693025
https://zhuanlan.zhihu.com/p/1976439019698153170
因为没有接触过uv且官方给安装方式是通过uv创建python环境,所以我也就用了uv(但感觉如果按照了conda就没必要用uv了)。
安装uv(如果有报错可以自己搜索一下解决方案,正常是能解决的)pipx install uv安装python依赖# 局部
uv sync --python 3.12
# 全局
uv sync --python 3.12 --all-extras
3.启动第三方服务
以下命令通过 Docker Compose 启动“基础”服务(MinIO、Elasticsearch、Resis 和 MySQL):
sudo docker compose -f docker/docker-compose-base.yml up -d
(也可以用这条命令加个-p ragflow做个项目容器的区分,sudo docker compose -f -p ragflow docker/docker-compose-base.yml up -d)
4.修改端口映射文件
vim /etc/hosts
# hosts文件中追加一行即可(如果不让修改可以尝试用sudo vim /etc/hosts)还不行可以搜索一下解决方案。vim进行修改时需要用i键来切换修改,修改后按tab键切换命令然后用:wq可以保存,也可以强制保存:wq!。只读不修改:q,强制只读:q!
127.0.0.1 es01 infinity mysql minio redis
5.配置环境变量和hf地址
source .venv/bin/activate(有conda命令激活环境的命令就是conda activate 环境名)
export PYTHONPATH=$(pwd)
export HF_ENDPOINT=https://hf-mirror.com
6. 启动RAGFlow 后台服务
运行这个安装环境缺失什么包就安装什么
bash docker/entrypoint.sh
当环境安装好后碰到类似路径不对的问题时用下面的方式启动(可能还会碰到环境问题,还是缺什么下什么)
nohup python api/ragflow_server.py > logs/ragflow_server.log 2>&1 &
JEMALLOC_PATH=$(pkg-config --variable=libdir jemalloc)/libjemalloc.so;
LD_PRELOAD=$JEMALLOC_PATH python rag/svr/task_executor.py 1;
这里还有一些坑,需要下载一些模型不然会报错,如果你的服务器能连接huggingface可能会直接下载,不然就需要手动下载然后上传到服务器了。
sudo apt update
sudo apt install libjemalloc2
# 或者安装开发版本(包含头文件)
sudo apt install libjemalloc-dev
如果需要在多个会话中使用 jemalloc,可以将配置添加到 shell 配置文件中:
echo 'export JEMALLOC_PATH=/usr/lib/x86_64-linux-gnu/libjemalloc.so.2' >> ~/.bashrc
source ~/.bashrc
No module named 'exceptiongroup'
pip install exceptiongroup
E: Package 'odbcinst1debian2' has no installation candidate
# 安装核心组件
sudo apt install -y unixodbc
# 如果需要编译或开发(例如某些Python包在构建时需要ODBC头文件),建议也安装开发包
sudo apt install -y unixodbc-dev
如nltk_data,本地下载后上传到服务器,然后放到下面的目录,命令如下
确认是否有nltk_data目录
ls -la /home/defa/project/ragflow/.venv/
没有创建
mkdir -p /home/defa/project/ragflow/.venv/nltk_data/
复制到这个位置
cp -r nltk_data_local/* /home/xxxx/project/ragflow/.venv/nltk_data/
7.启动RAGFlow前端服务
这部分需要安装node好像,是java的环境。
Command 'npm' not found, but can be installed with:
sudo apt install npm
Node.js要大于v18.20.4,不然会有环境兼容问题
cd web
npm install
npm run dev
为了dev可以后端运行,我在web文件下创建了一个脚本,内容如下
#!/bin/bash
# 使用 screen 在后台运行开发服务器
cd "$(dirname "$0")"
# 检查是否已有会话
if screen -list | grep -q "ragflow-web"; then
echo "会话 'ragflow-web' 已存在"
echo "查看会话: screen -r ragflow-web"
exit 1
fi
# 确保日志目录存在
LOG_DIR="$(dirname "$(dirname "$0")")/logs"
mkdir -p "$LOG_DIR"
LOG_FILE="$LOG_DIR/web.log"
# 创建新的 screen 会话,同时保存日志到文件
screen -dmS ragflow-web bash -c "npm run dev 2>&1 | tee -a '$LOG_FILE'"
echo "✓ 开发服务器已在 screen 会话 'ragflow-web' 中启动"
echo "✓ 日志文件: $LOG_FILE"
echo ""
echo "常用命令:"
echo " 查看会话: screen -r ragflow-web"
echo " 查看日志: tail -f $LOG_FILE"
echo " 列出会话: screen -ls"
echo " 断开连接: Ctrl+A, 然后按 D"
echo " 停止会话: screen -X -S ragflow-web quit"
8.配置模型
这步和之前在配置dify模型时候一样,url也是http://服务器ip:1025/v1
https://www.hiascend.com/developer/techArticles/20250203-5(找的部署dify的帖子)



这些配置完后,在创建知识库并解析文件的时候会有问题。碰到下面的报错可以重启容器和前后端,遇到解析问题则是因为pdf解析需要有模型,而我们可能是缺失模型了,所以下载即可。 XGBoost模型缺失 updown_concat_xgb.model
elasticsearch.NotFoundError: NotFoundError(404, 'index_not_found_exception', 'no such index
cd /home/defa/project/ragflow/rag/res/deepdoc/
wget -O updown_concat_xgb.model "https://hf-mirror.com/InfiniFlow/text_concat_xgb_v1.0/resolve/main/updown_concat_xgb.model"
在部署ragflow的时候我参考了3篇帖子,是基于苹果arm64安装ragflow来实现的。具体连接在下面,可以参考一下。
https://zhuanlan.zhihu.com/p/1891610274194256793
https://blog.csdn.net/weixin_55841088/article/details/148085416
https://ragflow.io/docs/dev/launch_ragflow_from_source
1.克隆RAGFlow仓库
git clone https://github.com/infiniflow/ragflow.git
cd ragflow/
2.安装python环境
这步我偷懒了,正常部署python环境是需要通过安装anaconda来进行管理。而我当前是直接用sudo apt-get install -y python3 python3-pip安装然后创建的环境。然后关于anaconda的链接可以借鉴下面两个。
https://blog.csdn.net/u014677900/article/details/146693025
https://zhuanlan.zhihu.com/p/1976439019698153170
因为没有接触过uv且官方给安装方式是通过uv创建python环境,所以我也就用了uv(但感觉如果按照了conda就没必要用uv了)。
安装uv(如果有报错可以自己搜索一下解决方案,正常是能解决的)pipx install uv安装python依赖# 局部
uv sync --python 3.12
# 全局
uv sync --python 3.12 --all-extras
3.启动第三方服务
以下命令通过 Docker Compose 启动“基础”服务(MinIO、Elasticsearch、Resis 和 MySQL):
sudo docker compose -f docker/docker-compose-base.yml up -d
(也可以用这条命令加个-p ragflow做个项目容器的区分,sudo docker compose -f -p ragflow docker/docker-compose-base.yml up -d)
4.修改端口映射文件
vim /etc/hosts
# hosts文件中追加一行即可(如果不让修改可以尝试用sudo vim /etc/hosts)还不行可以搜索一下解决方案。vim进行修改时需要用i键来切换修改,修改后按tab键切换命令然后用:wq可以保存,也可以强制保存:wq!。只读不修改:q,强制只读:q!
127.0.0.1 es01 infinity mysql minio redis
5.配置环境变量和hf地址
source .venv/bin/activate(有conda命令激活环境的命令就是conda activate 环境名)
export PYTHONPATH=$(pwd)
export HF_ENDPOINT=https://hf-mirror.com
6. 启动RAGFlow 后台服务
运行这个安装环境缺失什么包就安装什么
bash docker/entrypoint.sh
当环境安装好后碰到类似路径不对的问题时用下面的方式启动(可能还会碰到环境问题,还是缺什么下什么)
nohup python api/ragflow_server.py > logs/ragflow_server.log 2>&1 &
JEMALLOC_PATH=$(pkg-config --variable=libdir jemalloc)/libjemalloc.so;
LD_PRELOAD=$JEMALLOC_PATH python rag/svr/task_executor.py 1;
这里还有一些坑,需要下载一些模型不然会报错,如果你的服务器能连接huggingface可能会直接下载,不然就需要手动下载然后上传到服务器了。
sudo apt update
sudo apt install libjemalloc2
# 或者安装开发版本(包含头文件)
sudo apt install libjemalloc-dev
如果需要在多个会话中使用 jemalloc,可以将配置添加到 shell 配置文件中:
echo 'export JEMALLOC_PATH=/usr/lib/x86_64-linux-gnu/libjemalloc.so.2' >> ~/.bashrc
source ~/.bashrc
No module named 'exceptiongroup'
pip install exceptiongroup
E: Package 'odbcinst1debian2' has no installation candidate
# 安装核心组件
sudo apt install -y unixodbc
# 如果需要编译或开发(例如某些Python包在构建时需要ODBC头文件),建议也安装开发包
sudo apt install -y unixodbc-dev
如nltk_data,本地下载后上传到服务器,然后放到下面的目录,命令如下
确认是否有nltk_data目录
ls -la /home/defa/project/ragflow/.venv/
没有创建
mkdir -p /home/defa/project/ragflow/.venv/nltk_data/
复制到这个位置
cp -r nltk_data_local/* /home/xxxx/project/ragflow/.venv/nltk_data/
7.启动RAGFlow前端服务
这部分需要安装node好像,是java的环境。
Command 'npm' not found, but can be installed with:
sudo apt install npm
Node.js要大于v18.20.4,不然会有环境兼容问题
cd web
npm install
npm run dev
为了dev可以后端运行,我在web文件下创建了一个脚本,内容如下
#!/bin/bash
# 使用 screen 在后台运行开发服务器
cd "$(dirname "$0")"
# 检查是否已有会话
if screen -list | grep -q "ragflow-web"; then
echo "会话 'ragflow-web' 已存在"
echo "查看会话: screen -r ragflow-web"
exit 1
fi
# 确保日志目录存在
LOG_DIR="$(dirname "$(dirname "$0")")/logs"
mkdir -p "$LOG_DIR"
LOG_FILE="$LOG_DIR/web.log"
# 创建新的 screen 会话,同时保存日志到文件
screen -dmS ragflow-web bash -c "npm run dev 2>&1 | tee -a '$LOG_FILE'"
echo "✓ 开发服务器已在 screen 会话 'ragflow-web' 中启动"
echo "✓ 日志文件: $LOG_FILE"
echo ""
echo "常用命令:"
echo " 查看会话: screen -r ragflow-web"
echo " 查看日志: tail -f $LOG_FILE"
echo " 列出会话: screen -ls"
echo " 断开连接: Ctrl+A, 然后按 D"
echo " 停止会话: screen -X -S ragflow-web quit"
8.配置模型
这步和之前在配置dify模型时候一样,url也是http://服务器ip:1025/v1
https://www.hiascend.com/developer/techArticles/20250203-5(找的部署dify的帖子)
这些配置完后,在创建知识库并解析文件的时候会有问题。碰到下面的报错可以重启容器和前后端,遇到解析问题则是因为pdf解析需要有模型,而我们可能是缺失模型了,所以下载即可。 XGBoost模型缺失 updown_concat_xgb.model
elasticsearch.NotFoundError: NotFoundError(404, 'index_not_found_exception', 'no such index
cd /home/defa/project/ragflow/rag/res/deepdoc/
wget -O updown_concat_xgb.model "https://hf-mirror.com/InfiniFlow/text_concat_xgb_v1.0/resolve/main/updown_concat_xgb.model"