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;
}
}