配置
通过 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
改为 <您的服务端口>:80
。
注意
更新上述配置需要重启所有容器才能生效
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。
重要
我们不积极维护 docker-compose-CN-oc9.yml、docker-compose-gpu-CN-oc9.yml 或 docker-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
RAGFlow 使用 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.18.0-slim
(默认):不包含嵌入模型的 RAGFlow Docker 镜像。infiniflow/ragflow:v0.18.0
:包含以下嵌入模型的 RAGFlow Docker 镜像- 内置嵌入模型
BAAI/bge-large-zh-v1.5
maidalun1020/bce-embedding-base_v1
- 内置嵌入模型
注意
如果无法下载 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,可以取消注释此行。
用户注册
REGISTER_ENABLED
1
: (默认) 启用用户注册。0
: 禁用用户注册。
服务配置
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
:Docker 容器内的 MinIO 服务 IP 和 端口。默认为minio:9000
。
oauth
用于使用第三方账户注册或登录 RAGFlow 的 OAuth 配置。
<channel>
:自定义渠道 ID。type
:身份验证类型,选项包括oauth2
,oidc
,github
。默认为oauth2
,如果提供了issuer
参数,则默认为oidc
。icon
:图标 ID,选项包括github
,sso
,默认为sso
。display_name
:渠道名称,默认为渠道 ID 的首字母大写格式。client_id
:必需,分配给客户端应用的唯一标识符。client_secret
:必需,客户端应用的密钥,用于与身份验证服务器通信。authorization_url
:用于获取用户授权的基本 URL。token_url
:用于交换授权码和获取访问令牌的 URL。userinfo_url
:用于获取用户信息(用户名、电子邮件等)的 URL。issuer
:身份提供者的基本 URL。OIDC 客户端可以通过issuer
动态获取身份提供者的元数据(authorization_url
,token_url
,userinfo_url
)。scope
:请求的权限范围,一个空格分隔的字符串。例如,openid profile email
。redirect_uri
:必需,身份验证流程中授权服务器重定向以返回结果的 URI。必须与在身份验证服务器注册的回调 URI 匹配。格式:https://your-app.com/v1/user/oauth/callback/<channel>
。对于本地配置,可以直接使用http://127.0.0.1:80/v1/user/oauth/callback/<channel>
。
注意
以下是配置各种第三方身份验证方法的最佳实践。您可以为 Ragflow 配置一个或多个第三方身份验证方法。
oauth:
oauth2:
display_name: "OAuth2"
client_id: "your_client_id"
client_secret: "your_client_secret"
authorization_url: "https://your-oauth-provider.com/oauth/authorize"
token_url: "https://your-oauth-provider.com/oauth/token"
userinfo_url: "https://your-oauth-provider.com/oauth/userinfo"
redirect_uri: "https://your-app.com/v1/user/oauth/callback/oauth2"
oidc:
display_name: "OIDC"
client_id: "your_client_id"
client_secret: "your_client_secret"
issuer: "https://your-oauth-provider.com/oidc"
scope: "openid email profile"
redirect_uri: "https://your-app.com/v1/user/oauth/callback/oidc"
github:
# https://githubdocs.cn/en/apps/oauth-apps/building-oauth-apps/creating-an-oauth-app
type: "github"
icon: "github"
display_name: "Github"
client_id: "your_client_id"
client_secret: "your_client_secret"
redirect_uri: "https://your-app.com/v1/user/oauth/callback/github"
user_default_llm
新 RAGFlow 用户使用的默认 LLM。默认禁用。要启用此功能,请取消注释 service_conf.yaml.template 中的相应行。
factory
:LLM 供应商。可用选项"OpenAI"
"DeepSeek"
"Moonshot"
"Tongyi-Qianwen"
"VolcEngine"
"ZHIPU-AI"
api_key
:指定 LLM 的 API 密钥。您需要在线申请模型 API 密钥。
注意
如果未在此处设置默认 LLM,请在 RAGFlow UI 的设置页面配置默认 LLM。