ubuntu2204部署RAGFlow(非docker)

安装 Poetry

curl -sSL https://install.python-poetry.org | python3 -

##下载源代码并安装 Python 依赖

git clone https://github.com/infiniflow/ragflow.git
cd ragflow/
export POETRY_VIRTUALENVS_CREATE=true POETRY_VIRTUALENVS_IN_PROJECT=true
~/.local/bin/poetry install --sync --no-root # install RAGFlow dependent python modules

这里安装依赖的过程中可以修改POETRY源,不然有些可能无法下载
修改文件pypro,添加以下内容

# pyproject.toml
[[tool.poetry.source]]
name = "mirrors"
url = "https://pypi.tuna.tsinghua.edu.cn/simple/"
priority = "default"

或者添加环境变量(当前会话生效)

export POETRY_PYPI_MIRROR_URL=https://mirrors.cloud.tencent.com/pypi/simple/

通过 Docker Compose 启动依赖的服务(MinIO, Elasticsearch, Redis, and MySQL)

如果已有对应的服务,则不需要,修改docker/service_conf.yaml文件中的配置即可

docker compose -f docker/docker-compose-base.yml up -d

在这里minio可能拉不下来,可以通过以下方式拉取

docker pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/quay.io/minio/minio:RELEASE.2023-12-20T01-00-02Z
docker tag  swr.cn-north-4.myhuaweicloud.com/ddn-k8s/quay.io/minio/minio:RELEASE.2023-12-20T01-00-02Z  quay.io/minio/minio:RELEASE.2023-12-20T01-00-02Z

在 /etc/hosts 中添加以下代码,将 docker/service_conf.yaml 文件中的所有 host 地址都解析为 127.0.0.1

127.0.0.1       es01 mysql minio redis

在文件 docker/service_conf.yaml 中,对照 docker/.env 的配置将 mysql 端口更新为 5455,es 端口更新为 1200
如果无法访问 HuggingFace,可以把环境变量 HF_ENDPOINT 设成相应的镜像站点
export HF_ENDPOINT=https://hf-mirror.com

如果有代理,也可以配置代理

启动后端服务

source .venv/bin/activate
export PYTHONPATH=$(pwd)
bash docker/launch_backend_service.sh
# 如果需要后台启动
nohup bash docker/launch_backend_service.sh &

安装前端依赖

cd web
npm install --force

配置前端,将 .umirc.ts 的 proxy.target 更新为 http://127.0.0.1:9380

启动前端服务

npm run dev

如果要打包成静态文件通过nginx访问

npm run build

然后配置nginx

server {
    listen 9222;
    server_name your-domain.com;  # 替换为你的域名

    location / {
        root /path/to/ragflow/web/dist;  # 替换为你的实际路径
        try_files $uri $uri/ /index.html;
    }

    location /api {
        proxy_pass http://127.0.0.1:9380;  # 假设你的后端服务运行在 9380 端口
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
    location /v1 {
        proxy_pass http://127.0.0.1:9380;  # 假设你的后端服务运行在 9380 端口
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

### 部署RagFlow而不使用Docker 对于希望在不借助Docker的情况下部署RagFlow的场景,可以采用直接基于Ubuntu 22.04的操作系统来安装必要的组件和服务。此过程涉及几个主要方面:准备环境、获取并配置项目源码以及启动服务。 #### 准备开发环境 确保操作系统满足最低硬件需求,并已更新至最新状态: ```bash sudo apt update && sudo apt upgrade -y ``` 安装Python及其依赖工具链,因为RagFlow是一个基于Python的应用程序[^4]: ```bash sudo apt install python3-pip python3-dev build-essential libssl-dev libffi-dev python3-setuptools ``` 为了更好地管理和隔离项目的Python包依赖关系,推荐使用Poetry作为依赖管理器。可以通过pip全局安装Poetry: ```bash pip3 install poetry ``` #### 获取与配置RagFlow源代码 克隆官方仓库到本地机器上,切换到目标分支或标签页以获得稳定版发布的内容。进入项目根目录之后,初始化poetry虚拟环境并且安装所有必需的库文件: ```bash git clone https://github.com/your-repository/RAGFlow.git cd RAGFlow poetry install ``` 编辑`service_conf.yaml`文件调整应用行为参数,比如端口监听地址等信息。这一步骤常重要,因为它决定了应用程序如何与其他外部资源交互[^1]。 #### 启动服务 完成上述准备工作后,就可以按照文档指示执行特定命令来激活各个子模块了。通常情况下会有一个脚本或者Makefile用来简化这一流程;如果没有的话,则需参照README.md内的说明手动操作。 ```bash poetry run python manage.py migrate # 如果有数据库迁移任务 poetry run python manage.py runserver # 或者其他方式启动web服务器 ``` 以上就是在容器化环境中搭建RagFlow平台的大致步骤概述。需要注意的是,在实际实施过程中可能还会遇到更多细节上的差异,具体取决于所使用的版本和个人定制化的程度。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

weixin_43169720

如果本文对你有所帮助,请打赏—

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值