Skip to main content
Version: DEV

配置

通过Docker部署RAGFlow的配置。

指南

在系统配置方面,您需要管理以下文件:

  • .env: 包含Docker的重要环境变量。
  • service_conf.yaml.template: 配置后端服务。它指定了RAGFlow的系统级配置,并由其API服务器和任务执行器使用。在容器启动时,service_conf.yaml文件将基于此模板文件生成。此过程会替换模板中的任何环境变量,从而允许根据容器的环境进行动态配置。
  • docker-compose.yml: 用于启动RAGFlow服务的Docker Compose文件。

要更新默认的HTTP服务端口(80),请转到docker-compose.yml并将80:80更改为<YOUR_SERVING_PORT>:80

NOTE

上述配置的更新需要重启所有容器才能生效:

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

Docker Compose

  • docker-compose.yml
    设置RAGFlow及其依赖项的环境。
  • docker-compose-base.yml
    设置RAGFlow依赖的环境:Elasticsearch/Infinity, MySQL, MinIO, 和 Redis。
IMPORTANT

我们不主动维护docker-compose-CN-oc9.ymldocker-compose-gpu-CN-oc9.ymldocker-compose-gpu.yml,因此使用它们需自行承担风险。不过,欢迎您提交拉取请求以改进其中任何一个。

Docker环境变量

.env 文件包含 Docker 的重要环境变量。

Elasticsearch

  • STACK_VERSION
    Elasticsearch的版本。默认为8.11.3
  • ES_PORT
    用于将Elasticsearch服务暴露给主机的端口,允许外部访问运行在Docker容器内的服务。默认为1200
  • ELASTIC_PASSWORD
    Elasticsearch的密码。

Kibana

  • KIBANA_PORT
    用于将Kibana服务暴露给主机的端口,允许外部访问运行在Docker容器内的服务。默认为6601
  • KIBANA_USER
    Kibana 的用户名。默认为 rag_flow
  • KIBANA_PASSWORD
    Kibana的密码。默认为infini_rag_flow

资源管理

  • MEM_LIMIT
    特定Docker容器在运行时可以使用的最大内存量,以字节为单位。默认为8073741824

MySQL

  • MYSQL_PASSWORD
    MySQL的密码。
  • MYSQL_PORT
    用于将MySQL服务暴露给主机的端口,允许外部访问运行在Docker容器内的MySQL数据库。默认为5455

MinIO

  • MINIO_CONSOLE_PORT
    用于将MinIO控制台界面暴露给主机的端口,允许外部访问运行在Docker容器内的基于Web的控制台。默认为9001
  • MINIO_PORT
    用于将MinIO API服务暴露给主机的端口,允许外部访问运行在Docker容器内的MinIO对象存储服务。默认为9000
  • MINIO_USER
    MinIO 的用户名。
  • MINIO_PASSWORD
    MinIO的密码。

Redis

  • REDIS_PORT
    用于将Redis服务暴露给主机的端口,允许外部访问运行在Docker容器内的Redis服务。默认为6379
  • REDIS_PASSWORD
    Redis的密码。

RAGFlow

  • SVR_HTTP_PORT
    用于将RAGFlow的HTTP API服务暴露给主机的端口,允许外部访问运行在Docker容器内的服务。默认为9380

  • RAGFLOW-IMAGE
    Docker 镜像版本。可用版本:

    • infiniflow/ragflow:v0.15.1-slim (default): The RAGFlow Docker image without embedding models.
    • infiniflow/ragflow:v0.15.1: The RAGFlow Docker image with embedding models including:
      • Built-in embedding models:
        • BAAI/bge-large-zh-v1.5
        • BAAI/bge-reranker-v2-m3
        • maidalun1020/bce-embedding-base_v1
        • maidalun1020/bce-reranker-base_v1
      • Embedding models that will be downloaded once you select them in the RAGFlow UI:
        • BAAI/bge-base-en-v1.5
        • BAAI/bge-large-en-v1.5
        • BAAI/bge-small-en-v1.5
        • BAAI/bge-small-zh-v1.5
        • jinaai/jina-embeddings-v2-base-en
        • jinaai/jina-embeddings-v2-small-en
        • nomic-ai/nomic-embed-text-v1.5
        • sentence-transformers/all-MiniLM-L6-v2
NOTE

如果您无法下载RAGFlow Docker镜像,请尝试以下镜像。

  • 对于nightly-slim版本:
    • RAGFLOW_IMAGE=swr.cn-north-4.myhuaweicloud.com/infiniflow/ragflow:nightly-slim 或者,
    • RAGFLOW_IMAGE=registry.cn-hangzhou.aliyuncs.com/infiniflow/ragflow:nightly-slim
  • 对于nightly版本:
    • RAGFLOW_IMAGE=swr.cn-north-4.myhuaweicloud.com/infiniflow/ragflow:nightly 或者,
    • RAGFLOW_IMAGE=registry.cn-hangzhou.aliyuncs.com/infiniflow/ragflow:nightly

时区

  • TIMEZONE
    本地时区。默认为 'Asia/Shanghai'

Hugging Face 镜像站点

  • HF_ENDPOINT
    huggingface.co的镜像站点。默认情况下是禁用的。如果您对主要的Hugging Face域访问受限,可以取消注释此行。

MacOS

  • MACOS
    针对MacOS的优化。默认情况下是禁用的。如果您的操作系统是MacOS,可以取消注释此行。

服务配置

service_conf.yaml.template 指定了RAGFlow的系统级配置,并供其API服务器和任务执行器使用。

ragflow

  • host: Docker 容器内 API 服务器的 IP 地址。默认为 0.0.0.0
  • port: Docker 容器内 API 服务器的服务端口。默认为 9380

mysql

  • name: MySQL数据库名称。默认为 rag_flow
  • user: MySQL的用户名。
  • password: MySQL的密码。
  • port: Docker 容器内的 MySQL 服务端口。默认为 3306
  • max_connections: MySQL数据库的最大并发连接数。默认为100
  • stale_timeout: 超时时间(以秒为单位)。

minio

  • user: MinIO 的用户名。
  • password: MinIO的密码。
  • host: MinIO 在 Docker 容器内的服务 IP 端口。默认为 minio:9000

oauth

使用第三方账户注册或登录RAGFlow的OAuth配置。默认情况下是禁用的。要启用此功能,请取消service_conf.yaml.template中相应行的注释。

  • github: 您应用程序的GitHub认证设置。访问Github开发者设置页面以获取您的client_id和secret_key。

user_default_llm

新RAGFlow用户使用的默认LLM。默认情况下是禁用的。要启用此功能,请取消service_conf.yaml.template中相应行的注释。

  • factory: LLM供应商。可用选项:
    • "OpenAI"
    • "DeepSeek"
    • "Moonshot"
    • "Tongyi-Qianwen"
    • "VolcEngine"
    • "ZHIPU-AI"
  • api_key: 指定LLM的API密钥。您需要在线申请您的模型API密钥。
NOTE

如果您不在此处设置默认的LLM,请在RAGFlow UI的设置页面上配置默认的LLM。