From 3d3913419b0137c06b2020fad4f5741158e9eafd Mon Sep 17 00:00:00 2001 From: writinwaters <93570324+writinwaters@users.noreply.github.com> Date: Fri, 8 Nov 2024 16:31:52 +0800 Subject: [PATCH] Updated .env and Docker README (#3295) ### What problem does this PR solve? ### Type of change - [x] Documentation Update --- docker/.env | 98 ++++++++++++++++++++++++---------------- docker/README.md | 55 +++++++++++----------- docker/service_conf.yaml | 2 +- 3 files changed, 89 insertions(+), 66 deletions(-) diff --git a/docker/.env b/docker/.env index 8cb402015..7897f0102 100644 --- a/docker/.env +++ b/docker/.env @@ -1,75 +1,95 @@ -# Version of Elastic products +# The version of Elasticsearch. STACK_VERSION=8.11.3 -# Port to expose Elasticsearch HTTP API to the host +# The port used to expose the Elasticsearch service to the host machine, +# allowing EXTERNAL access to the service running inside the Docker container. ES_PORT=1200 -# Set the Elasticsearch password +# The password for Elasticsearch. +# When updated, you must revise the `es.password` entry in service_conf.yaml accordingly. ELASTIC_PASSWORD=infini_rag_flow -# Port to expose Kibana to the host +# The port used to expose the Kibana service to the host machine, +# allowing EXTERNAL access to the service running inside the Docker container. KIBANA_PORT=6601 KIBANA_USER=rag_flow KIBANA_PASSWORD=infini_rag_flow -# Update according to the available host memory (in bytes) - +# The maximum amount of the memory, in bytes, that a specific Docker container can use while running. +# Update it according to the available memory in the host machine. MEM_LIMIT=8073741824 +# The password for MySQL. +# When updated, you must revise the `mysql.password` entry in service_conf.yaml. MYSQL_PASSWORD=infini_rag_flow +# The port used to expose the MySQL service to the host machine, +# allowing EXTERNAL access to the MySQL database running inside the Docker container. MYSQL_PORT=5455 -# Port to expose minio to the host +# The port used to expose the MinIO console interface to the host machine, +# allowing EXTERNAL access to the web-based console running inside the Docker container. MINIO_CONSOLE_PORT=9001 +# The port used to expose the MinIO API service to the host machine, +# allowing EXTERNAL access to the MinIO object storage service running inside the Docker container. MINIO_PORT=9000 - +# The username for MinIO. +# When updated, you must revise the `minio.user` entry in service_conf.yaml accordingly. MINIO_USER=rag_flow +# The password for MinIO. +# When updated, you must revise the `minio.password` entry in service_conf.yaml accordingly. MINIO_PASSWORD=infini_rag_flow +# The port used to expose the Redis service to the host machine, +# allowing EXTERNAL access to the Redis service running inside the Docker container. REDIS_PORT=6379 +# The password for Redis. +# When updated, you must revise the `redis.password` entry in service_conf.yaml accordingly. REDIS_PASSWORD=infini_rag_flow +# The port used to expose RAGFlow's HTTP API service to the host machine, +# allowing EXTERNAL access to the service running inside the Docker container. SVR_HTTP_PORT=9380 -# the Docker image for the slim version +# The RAGFlow Docker image to download. +# Defaults to the dev-slim edition. RAGFLOW_IMAGE=infiniflow/ragflow:dev-slim - -# If you cannot download the RAGFlow Docker image, try uncommenting either of the following hub.docker.com mirrors: -# RAGFLOW_IMAGE=swr.cn-north-4.myhuaweicloud.com/infiniflow/ragflow:dev-slim -# RAGFLOW_IMAGE=registry.cn-hangzhou.aliyuncs.com/infiniflow/ragflow:dev-slim - -# To download the RAGFlow Docker image with embedding models, modify the line above as follows: +# +# To download the RAGFlow Docker image with embedding models, uncomment the following line instead: +# +# This Docker image includes: +# - Embedded 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 +# # RAGFLOW_IMAGE=infiniflow/ragflow:dev -# This Docker image includes the following four models: -# - BAAI/bge-large-zh-v1.5 -# - BAAI/bge-reranker-v2-m3 -# - maidalun1020/bce-embedding-base_v1 -# - maidalun1020/bce-reranker-base_v1 -# And the following models will be downloaded if 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 - -# If you cannot download the RAGFlow Docker image, try uncommenting either of the following hub.docker.com mirrors: +# If you cannot download the RAGFlow Docker image: +# +# - For the `dev-slim` edition, uncomment either of the following: +# RAGFLOW_IMAGE=swr.cn-north-4.myhuaweicloud.com/infiniflow/ragflow:dev-slim +# RAGFLOW_IMAGE=registry.cn-hangzhou.aliyuncs.com/infiniflow/ragflow:dev-slim +# +# - For the `dev-slim` edition, uncomment either of the following: # RAGFLOW_IMAGE=swr.cn-north-4.myhuaweicloud.com/infiniflow/ragflow:dev # RAGFLOW_IMAGE=registry.cn-hangzhou.aliyuncs.com/infiniflow/ragflow:dev + +# The local time zone. TIMEZONE='Asia/Shanghai' -# If you cannot download the RAGFlow Docker image, try uncommenting the following huggingface.co mirror: +# Uncomment the following line if you have limited access to huggingface.co: # HF_ENDPOINT=https://hf-mirror.com -######## OS setup for ES ########### -# sysctl vm.max_map_count -# sudo sysctl -w vm.max_map_count=262144 -# Note that this change is not permanent and will be reset after a system reboot. -# To make your change permanent, update /etc/sysctl.conf by: -# Adding or modifying the following line: -# vm.max_map_count=262144 + diff --git a/docker/README.md b/docker/README.md index 057e7b7f1..f230ef444 100644 --- a/docker/README.md +++ b/docker/README.md @@ -11,8 +11,10 @@ ## 🐳 Docker Compose -- **docker-compose.yml** -- **docker-compose-base.yml** +- **docker-compose.yml** + Sets up environment for RAGFlow and its dependencies. +- **docker-compose-base.yml** + Sets up environment for RAGFlow's base services: Elasticsearch, MySQL, MinIO, and Redis. ## 🐬 Docker environment variables @@ -23,14 +25,14 @@ The [.env](./.env) file contains important environment variables for Docker. - `STACK_VERSION` The version of Elasticsearch. Defaults to `8.11.3` - `ES_PORT` - The port used to expose the Elasticsearch service to the host machine, allowing external access to the service running **inside** the Docker container. Defaults to `1200`. + The port used to expose the Elasticsearch service to the host machine, allowing **external** access to the service running inside the Docker container. Defaults to `1200`. - `ELASTIC_PASSWORD` - The password for Elasticsearch. When updated, you must revise the `es.password` entry in [service_conf.yaml](./service_conf.yaml) accordingly. + The password for Elasticsearch. When updated, you must revise the `es.password` entry in [service_conf.yaml](./service_conf.yaml) accordingly. ### Kibana - `KIBANA_PORT` - The port used to expose the Kibana service to the host machine, allowing external access to the service running **inside** the Docker container. Defaults to `6601`. + The port used to expose the Kibana service to the host machine, allowing **external** access to the service running inside the Docker container. Defaults to `6601`. - `KIBANA_USER` The username for Kibana. Defaults to `rag_flow`. - `KIBANA_PASSWORD` @@ -44,32 +46,32 @@ The [.env](./.env) file contains important environment variables for Docker. ### MySQL - `MYSQL_PASSWORD` - The password for MySQL. When updated, you must revise the `mysql.password` entry in [service_conf.yaml](./service_conf.yaml) accordingly. + The password for MySQL. When updated, you must revise the `mysql.password` entry in [service_conf.yaml](./service_conf.yaml) accordingly. - `MYSQL_PORT` - The port used to expose the MySQL service to the host machine, allowing external access to the MySQL database running **inside** the Docker container. Defaults to `5455`. + The port used to expose the MySQL service to the host machine, allowing **external** access to the MySQL database running inside the Docker container. Defaults to `5455`. ### MinIO - `MINIO_CONSOLE_PORT` - The port used to expose the MinIO console interface to the host machine, allowing external access to the web-based console running **inside** the Docker container. Defaults to `9001` + The port used to expose the MinIO console interface to the host machine, allowing **external** access to the web-based console running inside the Docker container. Defaults to `9001` - `MINIO_PORT` - The port used to expose the MinIO API service to the host machine, allowing external access to the MinIO object storage service running **inside** the Docker container. Defaults to `9000`. + The port used to expose the MinIO API service to the host machine, allowing **external** access to the MinIO object storage service running inside the Docker container. Defaults to `9000`. - `MINIO_USER` - The username for MinIO. When updated, you must revise the `minio.user` entry in [service_conf.yaml](./service_conf.yaml) accordingly. + The username for MinIO. When updated, you must revise the `minio.user` entry in [service_conf.yaml](./service_conf.yaml) accordingly. - `MINIO_PASSWORD` - The password for MinIO. When updated, you must revise the `minio.password` entry in [service_conf.yaml](./service_conf.yaml) accordingly. + The password for MinIO. When updated, you must revise the `minio.password` entry in [service_conf.yaml](./service_conf.yaml) accordingly. ### Redis - `REDIS_PORT` - The port used to expose the Redis service to the host machine, allowing external access to the Redis service running **inside** the Docker container. Defaults to `6379`. + The port used to expose the Redis service to the host machine, allowing **external** access to the Redis service running inside the Docker container. Defaults to `6379`. - `REDIS_PASSWORD` - The password for Redis. When updated, you must revise the `redis.password` entry in [service_conf.yaml](./service_conf.yaml) accordingly. + The password for Redis. When updated, you must revise the `redis.password` entry in [service_conf.yaml](./service_conf.yaml) accordingly. ### RAGFlow - `SVR_HTTP_PORT` - The port used to expose RAGFlow's HTTP API service to the host machine, allowing external access to the service running **inside** the Docker container. Defaults to `9380`. + The port used to expose RAGFlow's HTTP API service to the host machine, allowing **external** access to the service running inside the Docker container. Defaults to `9380`. - `RAGFLOW-IMAGE` The Docker image edition. Available editions: @@ -91,41 +93,42 @@ The [.env](./.env) file contains important environment variables for Docker. - `sentence-transformers/all-MiniLM-L6-v2` > [!TIP] -> If you cannot download the RAGFlow Docker image, try the following mirrors. -> For `dev-slim`: -> -> - `RAGFLOW_IMAGE=swr.cn-north-4.myhuaweicloud.com/infiniflow/ragflow:dev-slim` or, -> - `RAGFLOW_IMAGE=registry.cn-hangzhou.aliyuncs.com/infiniflow/ragflow:dev-slim`. -> For `dev`: +> If you cannot download the RAGFlow Docker image, try the following mirrors. > -> - `RAGFLOW_IMAGE=swr.cn-north-4.myhuaweicloud.com/infiniflow/ragflow:dev` or, -> - `RAGFLOW_IMAGE=registry.cn-hangzhou.aliyuncs.com/infiniflow/ragflow:dev`. +> - For the `dev-slim` edition: +> - `RAGFLOW_IMAGE=swr.cn-north-4.myhuaweicloud.com/infiniflow/ragflow:dev-slim` or, +> - `RAGFLOW_IMAGE=registry.cn-hangzhou.aliyuncs.com/infiniflow/ragflow:dev-slim`. +> - For the `dev` edition: +> - `RAGFLOW_IMAGE=swr.cn-north-4.myhuaweicloud.com/infiniflow/ragflow:dev` or, +> - `RAGFLOW_IMAGE=registry.cn-hangzhou.aliyuncs.com/infiniflow/ragflow:dev`. ### Miscellaneous - `TIMEZONE` The local time zone. Defaults to `'Asia/Shanghai'`. +- `HF_ENDPOINT` + The mirror site for huggingface.co. It is disabled by default. You can uncomment this line if you have limited access to the primary Hugging Face domain. ## 🐋 Service configuration [service_conf.yaml](./service_conf.yaml) specifies the system-level configuration for RAGFlow and is used by its API server and task executor. - `ragflow` - - `host`: 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`. + - `host`: 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`. - `mysql` - `name`: The MySQL database name. Defaults to `rag_flow`. - `user`: The username for MySQL. - `password`: The password for MySQL. When updated, you must revise the `MYSQL_PASSWORD` variable in [.env](./.env) accordingly. - - `port`: The MySQL serving port **inside** the Docker container. Defaults to `3306`. + - `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. - `minio` - `user`: The username for MinIO. When updated, you must revise the `MINIO_USER` variable in [.env](./.env) accordingly. - `password`: The password for MinIO. When updated, you must revise the `MINIO_PASSWORD` variable in [.env](./.env) accordingly. - - `host`: The MinIO serving IP *and* port **inside** the Docker container. Defaults to `minio:9000`. + - `host`: The MinIO serving IP *and* port inside the Docker container. Defaults to `minio:9000`. - `oauth` The OAuth configuration for signing up or signing in to RAGFlow using a third-party account. It is disabled by default. To enable this feature, uncomment the corresponding lines in **service_conf.yaml**. diff --git a/docker/service_conf.yaml b/docker/service_conf.yaml index a92cfb212..faa4c5cc0 100644 --- a/docker/service_conf.yaml +++ b/docker/service_conf.yaml @@ -19,7 +19,7 @@ es: password: 'infini_rag_flow' redis: db: 1 - password: 'infini_rag_flow' + password: 'infini_rag_flow' host: 'redis:6379' # postgres: