docker compose
Overview
Docker Compose uses environment variables to customize container configurations. These variables can be defined in multiple ways to support different deployment scenarios.
Env file
The .env file is a key-value file placed in the same directory as your docker-compose.yaml. It contains environment variables that will be loaded by Docker Compose.
Example .env file:
https://github.com/atomic-blend/backend/blob/main/.env.example
ENV=dev
# generate using "openssl rand 256 | base64 -w0"
SSO_SECRET=""
GOOGLE_APPLICATION_CREDENTIALS="/app/firebase_sac.json"
FIREBASE_PROJECT_ID=""
RESEND_API_KEY=""
MONGO_USERNAME=mongo_user
MONGO_PASSWORD=password
MONGO_HOST=mongodb
MONGO_PORT=27017
DATABASE_NAME=atomic-blend
MONGO_AUTH_SOURCE=admin
# cors config for api
CORS_ALLOWED_ORIGINS=http://localhost:53631
CORS_ALLOWED_METHODS=GET,POST,PUT,PATCH,DELETE,OPTIONS
CORS_ALLOWED_HEADERS=Content-Type,Authorization,X-Requested-With,Accept,Origin
CORS_ALLOW_CREDENTIALS=true
# fallback values for amqp
AMQP_URL=amqp://user:password@rabbitmq:5672
AMQP_EXCHANGE_NAMES=mail
AMQP_QUEUE_NAME=mail_queue
AMQP_ROUTING_KEYS=mail:sent,mail:received
# mail api amqp config
MAIL_AMQP_CONSUMER_URL=amqp://user:password@rabbitmq:5672
MAIL_AMQP_CONSUMER_EXCHANGE_NAMES=mail
MAIL_AMQP_CONSUMER_QUEUE_NAME=mail_queue
MAIL_AMQP_CONSUMER_ROUTING_KEYS=mail:received
MAIL_AMQP_PRODUCER_URL=amqp://user:password@rabbitmq:5672
MAIL_AMQP_PRODUCER_EXCHANGE_NAMES=mail
MAIL_AMQP_PRODUCER_QUEUE_NAME=mail_queue
MAIL_AMQP_PRODUCER_ROUTING_KEYS=mail:sent
# mail server producer config
MAIL_SERVER_AMQP_PRODUCER_URL=amqp://user:password@rabbitmq:5672
MAIL_SERVER_AMQP_PRODUCER_EXCHANGE_NAMES=mail
MAIL_SERVER_AMQP_PRODUCER_QUEUE_NAME=mail_queue
MAIL_SERVER_AMQP_PRODUCER_ROUTING_KEYS=mail:received
# mail server consumer config
MAIL_SERVER_AMQP_CONSUMER_URL=amqp://user:password@rabbitmq:5672
MAIL_SERVER_AMQP_CONSUMER_EXCHANGE_NAMES=mail
MAIL_SERVER_AMQP_CONSUMER_QUEUE_NAME=mail_queue
MAIL_SERVER_AMQP_CONSUMER_ROUTING_KEYS=mail:sent
# lail retyr queue config
MAIL_SERVER_AMQP_PRODUCER_RETRY_ENABLED=true
MAIL_SERVER_AMQP_PRODUCER_RETRY_EXCHANGE=mail
MAIL_SERVER_AMQP_PRODUCER_RETRY_ROUTING_KEY=sent
MAIL_SERVER_AMQP_PRODUCER_RETRY_QUEUE_NAME=retry_queue
MAIL_SERVER_AMQP_PRODUCER_RETRY_BINDING_KEY=send_retry
# rspamd config
RSPAMD_BASE_URL=http://rspamd-compose-rspamd:11333
RSPAMD_PASSWORD=
RSPAMD_TIMEOUT_SECONDS=30
RSPAMD_MAX_RETRIES=3
#s3 file storage config
AWS_ENDPOINT=http://minio:9000
AWS_ACCESS_KEY_ID=minioadmin
AWS_SECRET_ACCESS_KEY=minioadmin
AWS_DEFAULT_REGION=eu-west
AWS_BUCKET=ab-files
#set to true when running locally
AWS_USE_PATH_STYLE_ENDPOINT=true
# DKIM signing config
DKIM_PRIVATE_KEY_PATH=/app/dkim_private_key.pem
DKIM_SELECTOR=local
Required Environment Variables
The following environment variables are required:
Env
ENV
: the env of the project (dev / prod)
Database
DATABASE_NAME
: The name of the database
SSO
SSO_SECRET
: Secret to generate and sign JWT Secrets
Firebase (optional)
GOOGLE_APPLICATION_CREDENTIALS
: The path of the google JSON credentials to use Firebase (for notifications)FIREBASE_PROJECT_ID
: The project ID of the Firebase Project
Last updated