version: '3.8' services: postgres: image: pgvector/pgvector:pg15 container_name: parentflow-postgres-prod environment: POSTGRES_DB: parentflow_production POSTGRES_USER: parentflow_user POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-parentflow_secure_password_2024} ports: - "5432:5432" volumes: - postgres_prod_data:/var/lib/postgresql/data - ./maternal-app/maternal-app-backend/src/database/migrations:/docker-entrypoint-initdb.d:ro networks: - parentflow-network restart: unless-stopped healthcheck: test: ["CMD-SHELL", "pg_isready -U parentflow_user -d parentflow_production"] interval: 10s timeout: 5s retries: 5 redis: image: redis:7-alpine container_name: parentflow-redis-prod ports: - "6379:6379" volumes: - redis_prod_data:/data networks: - parentflow-network command: redis-server --appendonly yes --requirepass ${REDIS_PASSWORD:-parentflow_redis_password_2024} restart: unless-stopped healthcheck: test: ["CMD", "redis-cli", "--raw", "incr", "ping"] interval: 10s timeout: 3s retries: 5 mongodb: image: mongo:4.4 container_name: parentflow-mongodb-prod environment: MONGO_INITDB_ROOT_USERNAME: parentflow_admin MONGO_INITDB_ROOT_PASSWORD: ${MONGO_PASSWORD:-parentflow_mongo_password_2024} MONGO_INITDB_DATABASE: parentflow_ai_chat ports: - "27017:27017" volumes: - mongodb_prod_data:/data/db - mongodb_prod_config:/data/configdb networks: - parentflow-network restart: unless-stopped healthcheck: test: echo 'db.runCommand("ping").ok' | mongo localhost:27017/test --quiet interval: 10s timeout: 5s retries: 5 minio: image: minio/minio:RELEASE.2023-01-25T00-19-54Z container_name: parentflow-minio-prod environment: MINIO_ROOT_USER: ${MINIO_ROOT_USER:-parentflow_minio_admin} MINIO_ROOT_PASSWORD: ${MINIO_ROOT_PASSWORD:-parentflow_minio_password_2024} ports: - "9000:9000" - "9001:9001" volumes: - minio_prod_data:/data networks: - parentflow-network command: server /data --console-address ":9001" restart: unless-stopped healthcheck: test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"] interval: 30s timeout: 20s retries: 3 networks: parentflow-network: driver: bridge volumes: postgres_prod_data: driver: local redis_prod_data: driver: local mongodb_prod_data: driver: local mongodb_prod_config: driver: local minio_prod_data: driver: local