Production Deployment
We recommend using managed services as much as possible. Our basic Helm chart deploys pods for DB, S3, etc., which is great for small environments but not intended for production.
Best Practices
- Managed PostgreSQL / Aurora PostgreSQL
- Fast Managed S3 (Object Storage).
- Managed Redis
- Managed Elasticsearch / OpenSearch
- Multiple pods for RepoFlow server deployment in the chart
- Multiple pods for RepoFlow client deployment in the chart
- Disable the console UI of Hasura
Required Changes in Helm Chart
Below are the server, client, and Hasura environment variables you will likely need to configure. For more details, refer to the relevant documentation:
Server Environment Variables
(Read more here):
- S3 connection details
- Redis connection details
- Search engine connection details (Elasticsearch/OpenSearch)
SERVER_URL
FRONTEND_URL
HASURA_URL
COOKIE_DOMAIN
GENERAL_COOKIE_SECRET
JWT_SECRET
RESET_PASSWORD_JWT_SECRET
PERSONAL_ACCESS_TOKEN_JWT_SECRET
HASURA_ADMIN_SECRET
Hasura Environment Variables
HASURA_GRAPHQL_ADMIN_SECRET
(must match the server'sHASURA_ADMIN_SECRET
value)
Client Environment Variables
(Read more here):
HASURA_API_URL
HASURA_WEB_SOCKET_URL
IS_CONNECTION_SECURE
REPOFLOW_SERVER
COOKIE_DOMAIN