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_URLFRONTEND_URLHASURA_URLCOOKIE_DOMAINGENERAL_COOKIE_SECRETJWT_SECRETRESET_PASSWORD_JWT_SECRETPERSONAL_ACCESS_TOKEN_JWT_SECRETHASURA_ADMIN_SECRET
Hasura Environment Variables
HASURA_GRAPHQL_ADMIN_SECRET(must match the server'sHASURA_ADMIN_SECRETvalue)HASURA_GRAPHQL_JWT_SECRET: Must be a JSON string in the format{"key": "<JWT_SECRET>", "type": "HS256"}. Thekeyvalue must match the server’sJWT_SECRET.
Client Environment Variables
(Read more here):
HASURA_API_URLHASURA_WEB_SOCKET_URLREPOFLOW_SERVER