version: '3.8' services: db: image: postgres:15-alpine environment: POSTGRES_USER: ${DB_USER} POSTGRES_PASSWORD: ${DB_PASSWORD} POSTGRES_DB: ${DB_NAME} volumes: - postgres_data:/var/lib/postgresql/data ports: - "4002:5432" healthcheck: test: ["CMD-SHELL", "pg_isready -U ${DB_USER}"] interval: 5s timeout: 5s retries: 5 backend: build: context: ./backend dockerfile: Dockerfile environment: DATABASE_URL: postgresql://${DB_USER}:${DB_PASSWORD}@db:5432/${DB_NAME} SECRET_KEY: ${SECRET_KEY:-change-me-in-production} S3_ENDPOINT_URL: ${S3_ENDPOINT_URL} S3_ACCESS_KEY: ${S3_ACCESS_KEY} S3_SECRET_KEY: ${S3_SECRET_KEY} S3_BUCKET_NAME: ${S3_BUCKET_NAME:-enigfm} S3_REGION: ${S3_REGION:-default} MAX_FILE_SIZE_MB: ${MAX_FILE_SIZE_MB:-10} MAX_STORAGE_GB: ${MAX_STORAGE_GB:-90} MAX_ROOM_PARTICIPANTS: ${MAX_ROOM_PARTICIPANTS:-50} ports: - "4001:8000" depends_on: db: condition: service_healthy restart: unless-stopped frontend: build: context: ./frontend dockerfile: Dockerfile args: VITE_MAX_FILE_SIZE_MB: ${VITE_MAX_FILE_SIZE_MB:-100} ports: - "4000:80" depends_on: - backend restart: unless-stopped volumes: postgres_data: