version: '3.8' # Production Docker Compose for ParentFlow # PostgreSQL is on dedicated server: 10.0.0.207 # These services run on application server: 10.0.0.240 services: # PostgreSQL removed - using dedicated server # Connection: postgresql://postgres:a3ppq@10.0.0.207:5432/parentflow # Migrations should be run directly on the database server 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: redis_prod_data: driver: local mongodb_prod_data: driver: local mongodb_prod_config: driver: local minio_prod_data: driver: local