Best Practices for Setting Up Strapi with Docker for HA, Backups, and Multiple Environments

Hello, Strapi Community!

I’m currently planning to deploy Strapi within Docker containers and am looking for insights and best practices on a few critical aspects:

High Availability (HA): I want to ensure that my Strapi setup is highly available. What are the recommended strategies for achieving HA with Strapi in Docker? Specifically, I’m interested in how to handle stateful parts of the application, such as the database and file storage, in a way that maximizes uptime and resilience. I dont want to get “server restart” every time im updating something.

**Backups: **Data integrity and recoverability are crucial for my project. Could you share any proven strategies or tools for backing up Strapi’s data when running in containers? I’m particularly curious about both the database and any uploaded files.

Environment Management (Dev, Test, Prod): I plan to maintain three separate environments for development, testing, and production. What are the best practices for managing these environments with Docker? How do you handle configuration differences across these environments, especially regarding database connections and environment-specific settings?

Bonus Question: If anyone has any experience with automating the deployment of these environments in a CI/CD pipeline (particularly in Azure DevOps), I’d appreciate any insights you can share.

I’m looking for any advice, tutorials, or resources that can help guide me through the setup process. I want to make sure I’m adhering to best practices from the start.

Thank you in advance for your help and recommendations!

This topic has been created from a Discord post (1222206380614877195) to give it more visibility.
It will be on Read-Only mode here.
Join the conversation on Discord

I will be curious about any recommendations as well. I have been thinking about a HA Strapi set up myself. I can use a managed postgres DB with replication from cloud provider and have the frontend connect to it. but i am not completely sure how to handle HA for the frontend and specifically how to handle plugins, settings for each frontend nodes. and separately, how to handle the strategy for the Redis rest cache.