services: server: build: context: . dockerfile: Dockerfile ports: - "5002:5002" environment: - FLASK_SECRET_KEY=${FLASK_SECRET_KEY} - SMTP_HOST=${SMTP_HOST} - SMTP_PORT=${SMTP_PORT} - SMTP_USERNAME=${SMTP_USERNAME} - SMTP_PASSWORD=${SMTP_PASSWORD} - SMTP_SENDER=${SMTP_SENDER} - SMTP_RECIPIENTS=${SMTP_RECIPIENTS} - SMTP_USE_TLS=${SMTP_USE_TLS} - RATE_LIMIT_MAX=${RATE_LIMIT_MAX} - RATE_LIMIT_WINDOW=${RATE_LIMIT_WINDOW} - REDIS_URL=${REDIS_URL} - SENTRY_DSN=${SENTRY_DSN} - SENTRY_TRACES_SAMPLE_RATE=${SENTRY_TRACES_SAMPLE_RATE} - GUNICORN_WORKERS=${GUNICORN_WORKERS} - GUNICORN_TIMEOUT=${GUNICORN_TIMEOUT} - ENABLE_JSON_LOGS=${ENABLE_JSON_LOGS} - ENABLE_REQUEST_LOGS=${ENABLE_REQUEST_LOGS} - STRICT_ORIGIN_CHECK=${STRICT_ORIGIN_CHECK} - ALLOWED_ORIGIN=${ALLOWED_ORIGIN} volumes: - ./data:/app/data healthcheck: test: ["CMD-SHELL", "curl -f http://localhost:5002/health || exit 1"] interval: 30s timeout: 5s retries: 3