Files
eventsphere/deploy/docker-compose.yml
2026-04-25 21:57:48 +01:00

116 lines
3.2 KiB
YAML

services:
caddy:
image: caddy:2-alpine
restart: unless-stopped
ports:
- "80:80"
- "443:443"
environment:
LETSENCRYPT_EMAIL: ${LETSENCRYPT_EMAIL}
volumes:
- ./Caddyfile:/etc/caddy/Caddyfile:ro
- caddy_data:/data
- caddy_config:/config
depends_on:
- web
- api
web:
build:
context: ..
dockerfile: apps/web/Dockerfile
args:
NEXT_PUBLIC_API_URL: https://api.event.brainshare.ng/api/v1
restart: unless-stopped
environment:
NODE_ENV: production
api:
build:
context: ..
dockerfile: apps/api/Dockerfile
restart: unless-stopped
environment:
NODE_ENV: production
PORT: 4000
PUBLIC_API_URL: https://api.event.brainshare.ng
CORS_ORIGINS: https://event.brainshare.ng
DATABASE_URL: ${DATABASE_URL}
REDIS_URL: redis://redis:6379
JWT_SECRET: ${JWT_SECRET}
JWT_ACCESS_TTL: ${JWT_ACCESS_TTL}
JWT_REFRESH_TTL: ${JWT_REFRESH_TTL}
AUTO_BOOTSTRAP: ${AUTO_BOOTSTRAP}
DEFAULT_TENANT_NAME: ${DEFAULT_TENANT_NAME}
DEFAULT_TENANT_SLUG: ${DEFAULT_TENANT_SLUG}
DEFAULT_SUPERADMIN_FULL_NAME: ${DEFAULT_SUPERADMIN_FULL_NAME}
DEFAULT_SUPERADMIN_EMAIL: ${DEFAULT_SUPERADMIN_EMAIL}
DEFAULT_SUPERADMIN_PASSWORD: ${DEFAULT_SUPERADMIN_PASSWORD}
SMTP_HOST: ${SMTP_HOST}
SMTP_PORT: ${SMTP_PORT}
SMTP_USER: ${SMTP_USER}
SMTP_PASS: ${SMTP_PASS}
SMTP_FROM: ${SMTP_FROM}
AFRICASTALKING_USERNAME: ${AFRICASTALKING_USERNAME}
AFRICASTALKING_API_KEY: ${AFRICASTALKING_API_KEY}
AFRICASTALKING_SENDER_ID: ${AFRICASTALKING_SENDER_ID}
AFRICASTALKING_WHATSAPP_URL: ${AFRICASTALKING_WHATSAPP_URL}
PAYSTACK_SECRET_KEY: ${PAYSTACK_SECRET_KEY}
UPLOADS_DIR: /app/uploads
volumes:
- uploads:/app/uploads
depends_on:
- postgres
- redis
worker:
build:
context: ..
dockerfile: apps/worker/Dockerfile
restart: unless-stopped
environment:
NODE_ENV: production
PROCESS_QUEUES: "1"
PUBLIC_API_URL: https://api.event.brainshare.ng
DATABASE_URL: ${DATABASE_URL}
REDIS_URL: redis://redis:6379
JWT_SECRET: ${JWT_SECRET}
JWT_ACCESS_TTL: ${JWT_ACCESS_TTL}
JWT_REFRESH_TTL: ${JWT_REFRESH_TTL}
SMTP_HOST: ${SMTP_HOST}
SMTP_PORT: ${SMTP_PORT}
SMTP_USER: ${SMTP_USER}
SMTP_PASS: ${SMTP_PASS}
SMTP_FROM: ${SMTP_FROM}
AFRICASTALKING_USERNAME: ${AFRICASTALKING_USERNAME}
AFRICASTALKING_API_KEY: ${AFRICASTALKING_API_KEY}
AFRICASTALKING_SENDER_ID: ${AFRICASTALKING_SENDER_ID}
AFRICASTALKING_WHATSAPP_URL: ${AFRICASTALKING_WHATSAPP_URL}
PAYSTACK_SECRET_KEY: ${PAYSTACK_SECRET_KEY}
depends_on:
- postgres
- redis
postgres:
image: postgres:16-alpine
restart: unless-stopped
environment:
POSTGRES_DB: ${POSTGRES_DB}
POSTGRES_USER: ${POSTGRES_USER}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
volumes:
- pgdata:/var/lib/postgresql/data
redis:
image: redis:7-alpine
restart: unless-stopped
volumes:
- redisdata:/data
volumes:
pgdata:
redisdata:
uploads:
caddy_data:
caddy_config: