writinwaters commited on
Commit
5fb0114
Β·
1 Parent(s): 1483d00

Refactored Docker README (#3269)

Browse files

### What problem does this PR solve?



### Type of change

- [x] Documentation Update

Files changed (1) hide show
  1. docker/README.md +104 -41
docker/README.md CHANGED
@@ -1,32 +1,79 @@
1
  # README
2
 
 
 
3
 
 
 
 
4
 
5
- ## Docker environment variables
6
 
7
- Look into [.env](./.env), there're some important variables.
 
 
 
 
 
 
 
 
 
8
 
9
  - `STACK_VERSION`
10
- The Elasticsearch version. Defaults to `8.11.3`
11
  - `ES_PORT`
12
- Port to expose Elasticsearch HTTP API to the host. Defaults to `1200`.
13
  - `ELASTIC_PASSWORD`
14
- The Elasticsearch password.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
15
  - `MYSQL_PASSWORD`
16
- The MySQL password. When updated, you must also revise the `mysql.password` entry in [service_conf.yaml](./service_conf.yaml) accordingly.
17
  - `MYSQL_PORT`
18
- The exported port number of MySQL Docker container, needed when you access the database from outside the Docker container.
 
 
 
 
 
 
 
19
  - `MINIO_USER`
20
- The MinIO username. When updated, you must also revise the `minio.user` entry in [service_conf.yaml](./service_conf.yaml) accordingly.
21
  - `MINIO_PASSWORD`
22
- The MinIO password. When updated, you must also revise the `minio.password` entry in [service_conf.yaml](./service_conf.yaml) accordingly.
 
 
 
 
 
 
 
 
 
 
23
  - `SVR_HTTP_PORT`
24
- The port number on which RAGFlow's backend API server listens.
25
- - `TIMEZONE`
26
- The local time zone.
27
  - `RAGFLOW-IMAGE`
28
- The Docker image edition. Available options:
29
- - `infiniflow/ragflow:dev-slim` (default): The RAGFlow Docker image without embedding models
 
30
  - `infiniflow/ragflow:dev`: The RAGFlow Docker image with embedding models including:
31
  - Embedded embedding models:
32
  - `BAAI/bge-large-zh-v1.5`
@@ -42,41 +89,57 @@ Look into [.env](./.env), there're some important variables.
42
  - `jinaai/jina-embeddings-v2-small-en`
43
  - `nomic-ai/nomic-embed-text-v1.5`
44
  - `sentence-transformers/all-MiniLM-L6-v2`
 
 
 
 
 
 
 
 
 
 
 
 
45
 
 
 
46
 
47
- ## Service Configuration
48
 
49
- [service_conf.yaml](./service_conf.yaml) defines the system-level configuration for RAGFlow and is used by its API server and task executor.
50
 
51
  - `ragflow`
52
-
53
- - `host`: The IP address of the API server.
54
- - `port`: The serving port of API server.
55
-
56
  - `mysql`
57
-
58
- - `name`: The database name in MySQL used by RAGFlow. Defaults to `rag_flow`.
59
- - `user`: The MySQL user name.
60
- - `password`: The MySQL password. When updated, you must also revise the `MYSQL_PASSWORD` variable in [.env](./.env) accordingly.
61
- - `port`: The serving port of MySQL inside the Docker container. When updated, you must also revise the `MYSQL_PORT` variable in [.env](./.env) accordingly.
62
- - `max_connections`: The maximum database connection.
63
  - `stale_timeout`: Timeout in seconds.
64
-
65
  - `minio`
66
-
67
- - `user`: The MinIO username. When updated, you must also revise the `MINIO_USER` variable in [.env](./.env) accordingly.
68
- - `password`: The MinIO password. When updated, you must also revise the `MINIO_PASSWORD` variable in [.env](./.env) accordingly.
69
- - `host`: The serving IP and port inside the docker container. This is not updated until changing the minio part in [docker-compose.yml](./docker-compose.yml)
70
-
71
- - `user_default_llm`
72
-
73
- The default LLM to use for a new RAGFlow user. It is disabled by default. If you have not set it here, you can configure the default LLM on the **Settings** page in the RAGFlow UI. Newly signed-up users use LLM configured by this part; otherwise, you need to configure your own LLM on the *Settings* page.
74
-
75
- - `factory`: The LLM suppliers. "OpenAI", "Tongyi-Qianwen", "ZHIPU-AI", "Moonshot", "DeepSeek", "Baichuan", and "VolcEngine" are supported.
76
- - `api_key`: The API key for the specified LLM.
77
-
 
 
 
 
 
 
78
  - `oauth`
79
  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**.
80
-
81
  - `github`: The GitHub authentication settings for your application. Visit the [Github Developer Settings page](https://github.com/settings/developers) to obtain your client_id and secret_key.
82
-
 
1
  # README
2
 
3
+ <details open>
4
+ <summary></b>πŸ“• Table of Contents</b></summary>
5
 
6
+ - 🐳 [Docker Compose](#-docker-compose)
7
+ - 🐬 [Docker environment variables](#-docker-environment-variables)
8
+ - πŸ‹ [Service configuration](#-service-configuration)
9
 
10
+ </details>
11
 
12
+ ## 🐳 Docker Compose
13
+
14
+ - **docker-compose.yml**
15
+ - **docker-compose-base.yml**
16
+
17
+ ## 🐬 Docker environment variables
18
+
19
+ The [.env](./.env) file contains important environment variables for Docker.
20
+
21
+ ### Elasticsearch
22
 
23
  - `STACK_VERSION`
24
+ The version of Elasticsearch. Defaults to `8.11.3`
25
  - `ES_PORT`
26
+ 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`.
27
  - `ELASTIC_PASSWORD`
28
+ The password for Elasticsearch. When updated, you must revise the `es.password` entry in [service_conf.yaml](./service_conf.yaml) accordingly.
29
+
30
+ ### Kibana
31
+
32
+ - `KIBANA_PORT`
33
+ The port used to expose the Kibana service to the host machine. Defaults to `6601`.
34
+ - `KIBANA_USER`
35
+ The username for Kibana. Defaults to `rag_flow`.
36
+ - `KIBANA_PASSWORD`
37
+ The password for Kibana. Defaults to `infini_rag_flow`.
38
+
39
+ ### Resource management
40
+
41
+ - `MEM_LIMIT`
42
+ The maximum amount of the memory that *a specific* Docker container can use while running. Defaults to `8073741824`.
43
+
44
+ ### MySQL
45
+
46
  - `MYSQL_PASSWORD`
47
+ The password for MySQL. When updated, you must revise the `mysql.password` entry in [service_conf.yaml](./service_conf.yaml) accordingly.
48
  - `MYSQL_PORT`
49
+ 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`.
50
+
51
+ ### MinIO
52
+
53
+ - `MINIO_CONSOLE_PORT`
54
+ 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`
55
+ - `MINIO_PORT`
56
+ 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`.
57
  - `MINIO_USER`
58
+ The username for MinIO. When updated, you must revise the `minio.user` entry in [service_conf.yaml](./service_conf.yaml) accordingly.
59
  - `MINIO_PASSWORD`
60
+ The password for MinIO. When updated, you must revise the `minio.password` entry in [service_conf.yaml](./service_conf.yaml) accordingly.
61
+
62
+ ### Redis
63
+
64
+ - `REDIS_PORT`
65
+ 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`.
66
+ - `REDIS_PASSWORD`
67
+ The password for Redis. When updated, you must revise the `redis.password` entry in [service_conf.yaml](./service_conf.yaml) accordingly.
68
+
69
+ ### RAGFlow
70
+
71
  - `SVR_HTTP_PORT`
72
+ 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`.
 
 
73
  - `RAGFLOW-IMAGE`
74
+ The Docker image edition. Available editions:
75
+
76
+ - `infiniflow/ragflow:dev-slim` (default): The RAGFlow Docker image without embedding models.
77
  - `infiniflow/ragflow:dev`: The RAGFlow Docker image with embedding models including:
78
  - Embedded embedding models:
79
  - `BAAI/bge-large-zh-v1.5`
 
89
  - `jinaai/jina-embeddings-v2-small-en`
90
  - `nomic-ai/nomic-embed-text-v1.5`
91
  - `sentence-transformers/all-MiniLM-L6-v2`
92
+
93
+ > [!TIP]
94
+ >
95
+ > If you cannot download the RAGFlow Docker image, try the following mirrors.
96
+ > - For `dev-slim`:
97
+ > - `RAGFLOW_IMAGE=swr.cn-north-4.myhuaweicloud.com/infiniflow/ragflow:dev-slim` or,
98
+ > - `RAGFLOW_IMAGE=registry.cn-hangzhou.aliyuncs.com/infiniflow/ragflow:dev-slim`.
99
+ > - For `dev`:
100
+ > - `RAGFLOW_IMAGE=swr.cn-north-4.myhuaweicloud.com/infiniflow/ragflow:dev` or,
101
+ > - `RAGFLOW_IMAGE=registry.cn-hangzhou.aliyuncs.com/infiniflow/ragflow:dev`.
102
+
103
+ ### Miscellaneous
104
 
105
+ - `TIMEZONE`
106
+ The local time zone. Defaults to `'Asia/Shanghai'`.
107
 
108
+ ## πŸ‹ Service configuration
109
 
110
+ [service_conf.yaml](./service_conf.yaml) specifies the system-level configuration for RAGFlow and is used by its API server and task executor.
111
 
112
  - `ragflow`
113
+ - `host`: The API server's IP address **inside** the Docker container. Defaults to `0.0.0.0`.
114
+ - `port`: The API server's serving port **inside** the Docker container. Defaults to `9380`.
115
+
 
116
  - `mysql`
117
+ - `name`: The MySQL database name. Defaults to `rag_flow`.
118
+ - `user`: The username for MySQL.
119
+ - `password`: The password for MySQL. When updated, you must revise the `MYSQL_PASSWORD` variable in [.env](./.env) accordingly.
120
+ - `port`: The MySQL serving port **inside** the Docker container. Defaults to `3306`.
121
+ - `max_connections`: The maximum number of concurrent connections to the MySQL database. Defaults to `100`.
 
122
  - `stale_timeout`: Timeout in seconds.
123
+
124
  - `minio`
125
+ - `user`: The username for MinIO. When updated, you must revise the `MINIO_USER` variable in [.env](./.env) accordingly.
126
+ - `password`: The password for MinIO. When updated, you must revise the `MINIO_PASSWORD` variable in [.env](./.env) accordingly.
127
+ - `host`: The MinIO serving IP *and* port **inside** the Docker container. Defaults to `minio:9000`.
128
+
129
+ - `user_default_llm`
130
+ The 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**.
131
+
132
+ > [!TIP]
133
+ >
134
+ > If you do not set the default LLM here, configure the default LLM on the **Settings** page in the RAGFlow UI.
135
+ - `factory`: The LLM supplier. Available options:
136
+ - `"OpenAI"`
137
+ - `"DeepSeek"`
138
+ - `"Moonshot"`
139
+ - `"Tongyi-Qianwen"`
140
+ - `"VolcEngine"`
141
+ - `"ZHIPU-AI"`
142
+ - `api_key`: The API key for the specified LLM. You will need to apply for your model API key online.
143
  - `oauth`
144
  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**.
 
145
  - `github`: The GitHub authentication settings for your application. Visit the [Github Developer Settings page](https://github.com/settings/developers) to obtain your client_id and secret_key.