sidebar_position: 1
Configurations for deploying RAGFlow via Docker.
When it comes to system configurations, you will need to manage the following files:
service_conf.yaml file will be generated based on this template file. This process replaces any environment variables within the template, allowing for dynamic configuration tailored to the container’s environment.<YOUR_SERVING_PORT>:80.<YOUR_SERVING_PORT>:80.<YOUR_SERVING_PORT>:80.<YOUR_SERVING_PORT>:80.<YOUR_SERVING_PORT>:80.<YOUR_SERVING_PORT>:80.:::tip NOTE Updates to the above configurations require a reboot of all containers to take effect:
docker compose -f docker/docker-compose.yml up -d
:::
:::danger IMPORTANT We do not actively maintain docker-compose-CN-oc9.yml, docker-compose-gpu-CN-oc9.yml, or docker-compose-gpu.yml, so use them at your own risk. However, you are welcome to file a pull request to improve any of them. :::
The .env file contains important environment variables for Docker.
STACK_VERSION8.11.3ES_PORT1200.ELASTIC_PASSWORDKIBANA_PORT6601.KIBANA_USERrag_flow.KIBANA_PASSWORDinfini_rag_flow.MEM_LIMIT8073741824.MYSQL_PASSWORDMYSQL_PORT5455.RAGFlow utilizes MinIO as its object storage solution, leveraging its scalability to store and manage all uploaded files.
MINIO_CONSOLE_PORT9001MINIO_PORT9000.MINIO_USERMINIO_PASSWORDREDIS_PORT6379.REDIS_PASSWORDSVR_HTTP_PORT9380.RAGFLOW-IMAGE
The Docker image edition. Available editions:
infiniflow/ragflow:v0.20.2-slim (default): The RAGFlow Docker image without embedding models.infiniflow/ragflow:v0.20.2: The RAGFlow Docker image with embedding models including:BAAI/bge-large-zh-v1.5maidalun1020/bce-embedding-base_v1:::tip NOTE
If you cannot download the RAGFlow Docker image, try the following mirrors.
nightly-slim edition:RAGFLOW_IMAGE=swr.cn-north-4.myhuaweicloud.com/infiniflow/ragflow:nightly-slim or,RAGFLOW_IMAGE=registry.cn-hangzhou.aliyuncs.com/infiniflow/ragflow:nightly-slim.nightly edition:RAGFLOW_IMAGE=swr.cn-north-4.myhuaweicloud.com/infiniflow/ragflow:nightly or,RAGFLOW_IMAGE=registry.cn-hangzhou.aliyuncs.com/infiniflow/ragflow:nightly.
:::TIMEZONE'Asia/Shanghai'.HF_ENDPOINTMACOSREGISTER_ENABLED
1: (Default) Enable user registration.0: Disable user registration.service_conf.yaml.template specifies the system-level configuration for RAGFlow and is used by its API server and task executor.
ragflowhost: The API server’s IP address inside the Docker container. Defaults to 0.0.0.0.port: The API server’s serving port inside the Docker container. Defaults to 9380.mysqlname: The MySQL database name. Defaults to rag_flow.user: The username for MySQL.password: The password for MySQL.port: The MySQL serving port inside the Docker container. Defaults to 3306.max_connections: The maximum number of concurrent connections to the MySQL database. Defaults to 100.stale_timeout: Timeout in seconds.miniouser: The username for MinIO.password: The password for MinIO.host: The MinIO serving IP and port inside the Docker container. Defaults to minio:9000.oauthThe OAuth configuration for signing up or signing in to RAGFlow using a third-party account.
<channel>: Custom channel ID.
type: Authentication type, options include oauth2, oidc, github. Default is oauth2, when issuer parameter is provided, defaults to oidc.icon: Icon ID, options include github, sso, default is sso.display_name: Channel name, defaults to the Title Case format of the channel ID.client_id: Required, unique identifier assigned to the client application.client_secret: Required, secret key for the client application, used for communication with the authentication server.authorization_url: Base URL for obtaining user authorization.token_url: URL for exchanging authorization code and obtaining access token.userinfo_url: URL for obtaining user information (username, email, etc.).issuer: Base URL of the identity provider. OIDC clients can dynamically obtain the identity provider’s metadata (authorization_url, token_url, userinfo_url) through issuer.scope: Requested permission scope, a space-separated string. For example, openid profile email.redirect_uri: Required, URI to which the authorization server redirects during the authentication flow to return results. Must match the callback URI registered with the authentication server. Format: https://your-app.com/v1/user/oauth/callback/<channel>. For local configuration, you can directly use http://127.0.0.1:80/v1/user/oauth/callback/<channel>.:::tip NOTE The following are best practices for configuring various third-party authentication methods. You can configure one or multiple third-party authentication methods for 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://docs.github.com/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_llmThe default LLM to use for a new RAGFlow user. It is disabled by default. To enable this feature, uncomment the corresponding lines in service_conf.yaml.template.
factory: The LLM supplier. Available options:
"OpenAI""DeepSeek""Moonshot""Tongyi-Qianwen""VolcEngine""ZHIPU-AI"api_key: The API key for the specified LLM. You will need to apply for your model API key online.:::tip NOTE
If you do not set the default LLM here, configure the default LLM on the Settings page in the RAGFlow UI.
:::