|
6 | 6 | This page covers the *data layer*: the SQL database, Redis, and file storage. These components must be running and accessible before the AI service container can start — the service connects to them on boot and will not proceed without them. |
7 | 7 |
|
8 | 8 | * *SQL database*: stores persistent data such as configurations, conversations, files, and documents. |
9 | | -* *Redis*: handles temporary data and inter-instance communication for scaling. When multiple application instances are running, Redis ensures that data is shared correctly across all of them. |
| 9 | +* *Redis*: caching and coordination (SSE delivery, rate limits, pub/sub). Enables the AI service to remain stateless. |
10 | 10 | * *File storage*: stores uploaded files and documents. |
11 | 11 |
|
12 | 12 | Configure the data layer first, then proceed to xref:tinymceai-on-premises-providers.adoc[LLM providers] and xref:tinymceai-on-premises-jwt.adoc[JWT authentication]. For container runtimes, reverse proxies, Transport Layer Security (TLS), Kubernetes, and ECS deployment, see the xref:tinymceai-on-premises-production.adoc[Production deployment guide]. |
@@ -85,7 +85,7 @@ TIP: Pin specific major versions for all data layer images (`mysql:8.0`, `postgr |
85 | 85 | [[mysql-version-pinning]] |
86 | 86 | === MySQL |
87 | 87 |
|
88 | | -Do *not* use `mysql:8`. That tag now floats to the latest MySQL, which removes the `default-authentication-plugin=mysql_native_password` startup flag the AI service relies on. The container crashloops with: |
| 88 | +WARNING: Do *not* use `mysql:8`. That tag now floats to the latest MySQL, which removes the `default-authentication-plugin=mysql_native_password` startup flag the AI service relies on. The container crashloops with: |
89 | 89 |
|
90 | 90 | .... |
91 | 91 | [ERROR] [MY-000067] [Server] unknown variable 'default-authentication-plugin=mysql_native_password'. |
@@ -206,8 +206,6 @@ volumes: |
206 | 206 | ---- |
207 | 207 |
|
208 | 208 | .PostgreSQL compose file |
209 | | -[%collapsible] |
210 | | -==== |
211 | 209 | [source,yaml] |
212 | 210 | ---- |
213 | 211 | services: |
@@ -240,7 +238,6 @@ services: |
240 | 238 | volumes: |
241 | 239 | pg_data: |
242 | 240 | ---- |
243 | | -==== |
244 | 241 |
|
245 | 242 | If using PostgreSQL and not using `DATABASE_SCHEMA=public`, after `docker compose up -d`, create the schema: |
246 | 243 |
|
@@ -620,7 +617,7 @@ STORAGE_DRIVER=filesystem |
620 | 617 | STORAGE_LOCATION=/tmp/ai-storage |
621 | 618 | ---- |
622 | 619 |
|
623 | | -IMPORTANT: The container runs as a non-root user and cannot write under `/var`. Mount a writable volume and point `STORAGE_LOCATION` at the mount point: `-v ./ai-storage:/tmp/ai-storage`. |
| 620 | +IMPORTANT: The AI service container runs as a non-root user. Mount a writable volume and point `STORAGE_LOCATION` at the mount path (for example, `-v ./ai-storage:/tmp/ai-storage`). |
624 | 621 |
|
625 | 622 | === Database |
626 | 623 |
|
|
0 commit comments