[GH-ISSUE #2795] [FEAT]: Feature Request: Support for Microservices Architecture with Separate Containers in Docker #1789

Closed
opened 2026-02-22 18:26:33 -05:00 by yindo · 1 comment
Owner

Originally created by @olariuromeo on GitHub (Dec 10, 2024).
Original GitHub issue: https://github.com/Mintplex-Labs/anything-llm/issues/2795

What would you like to see?

I would like to propose a feature request: it would be beneficial if, when running the application in Docker or on a desktop, the databases and backend services could run in separate containers. This architecture would enhance scalability and flexibility, especially for large deployments.

For instance, the web application could run in one or more containers, while backend services such as databases and Node.js could each be allocated to their own containers, depending on user preferences and resource availability. This separation allows for independent scaling of each component, optimizing resource allocation and management.

Additionally, it would be advantageous to add support for various types of databases, allowing users to select alternatives to Prisma. This flexibility empowers developers to choose the database solutions that best fit their specific use cases.

Moreover, having cron jobs run in dedicated containers would further improve the system’s flexibility, particularly in Docker Swarm or cluster environments. This setup could facilitate efficient task management and scheduling, making the overall system more robust and adaptable to changing demands.

While I’m not certain if this is feasible, I believe this approach could significantly enhance the application’s performance and maintainability, making it an idea worth considering.

Originally created by @olariuromeo on GitHub (Dec 10, 2024). Original GitHub issue: https://github.com/Mintplex-Labs/anything-llm/issues/2795 ### What would you like to see? I would like to propose a feature request: it would be beneficial if, when running the application in Docker or on a desktop, the databases and backend services could run in separate containers. This architecture would enhance scalability and flexibility, especially for large deployments. For instance, the web application could run in one or more containers, while backend services such as databases and Node.js could each be allocated to their own containers, depending on user preferences and resource availability. This separation allows for independent scaling of each component, optimizing resource allocation and management. Additionally, it would be advantageous to add support for various types of databases, allowing users to select alternatives to Prisma. This flexibility empowers developers to choose the database solutions that best fit their specific use cases. Moreover, having cron jobs run in dedicated containers would further improve the system’s flexibility, particularly in Docker Swarm or cluster environments. This setup could facilitate efficient task management and scheduling, making the overall system more robust and adaptable to changing demands. While I’m not certain if this is feasible, I believe this approach could significantly enhance the application’s performance and maintainability, making it an idea worth considering.
yindo added the enhancementfeature request labels 2026-02-22 18:26:33 -05:00
yindo closed this issue 2026-02-22 18:26:33 -05:00
Author
Owner

@timothycarambat commented on GitHub (Dec 11, 2024):

I dont disagree but adding this into our core app is not going to happen - the main reason is portability as having a singlular image just works much easier and is way less complex for someone to deploy.

However, you can easily fork and make a docker folder that can make you images for server/collector and then simply connect the two using their URLS as some kind of ENV config.

In a server config, you would need to replace this with an ENV - now they can be separate, for example.
https://github.com/Mintplex-Labs/anything-llm/blob/a0c5d898f00c1f1af8a851e05606680946a91084/server/utils/collectorApi/index.js#L11

The main thing is you will want to make sure all containers are using the same storage volume mount since they share some file objects like the key that signs payloads to the collector, among a lot of other things.

@timothycarambat commented on GitHub (Dec 11, 2024): I dont disagree but adding this into our core app is not going to happen - the main reason is portability as having a singlular image just works much easier and is way less complex for someone to deploy. However, you can easily fork and make a `docker` folder that can make you images for server/collector and then simply connect the two using their URLS as some kind of ENV config. In a server config, you would need to replace this with an ENV - now they can be separate, for example. https://github.com/Mintplex-Labs/anything-llm/blob/a0c5d898f00c1f1af8a851e05606680946a91084/server/utils/collectorApi/index.js#L11 The main thing is you will want to make sure all containers are using the same storage volume mount since they share some file objects like the key that signs payloads to the collector, among a lot of other things.
yindo changed title from [FEAT]: Feature Request: Support for Microservices Architecture with Separate Containers in Docker to [GH-ISSUE #2795] [FEAT]: Feature Request: Support for Microservices Architecture with Separate Containers in Docker 2026-06-05 14:42:42 -04:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Mintplex-Labs/anything-llm#1789