# xCloud-ready FastAPI + PostgreSQL + Celery worker # Replace OWNER/REPO with your GitHub username/repo services: app: image: ghcr.io/OWNER/REPO:latest ports: - "8000:8000" environment: DATABASE_URL: postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@db:5432/${POSTGRES_DB} REDIS_URL: redis://redis:6379/0 SECRET_KEY: ${SECRET_KEY} depends_on: db: condition: service_healthy redis: condition: service_healthy networks: - app-network worker: image: ghcr.io/OWNER/REPO:latest command: celery -A app.worker worker --loglevel=info environment: DATABASE_URL: postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@db:5432/${POSTGRES_DB} REDIS_URL: redis://redis:6379/0 depends_on: - db - redis restart: unless-stopped networks: - app-network db: image: postgres:16-alpine expose: - "5432" environment: POSTGRES_DB: ${POSTGRES_DB} POSTGRES_USER: ${POSTGRES_USER} POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} volumes: - db-data:/var/lib/postgresql/data healthcheck: test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER}"] interval: 10s timeout: 5s retries: 5 networks: - app-network redis: image: redis:7-alpine expose: - "6379" healthcheck: test: ["CMD", "redis-cli", "ping"] networks: - app-network volumes: db-data: networks: app-network: driver: bridge