services: postgres: image: postgres:16-alpine environment: POSTGRES_DB: ${POSTGRES_DB:-aurora_moments} POSTGRES_USER: ${POSTGRES_USER:-aurora} POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-aurora} volumes: - postgres_data:/var/lib/postgresql/data ports: - "5433:5432" healthcheck: test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER:-aurora}"] interval: 5s timeout: 5s retries: 10 redis: image: redis:7-alpine ports: - "6380:6379" api: build: ./api command: sh -c "python manage.py migrate && python manage.py runserver 0.0.0.0:8000" env_file: .env volumes: - ./api:/app - media_data:/app/media ports: - "8000:8000" depends_on: postgres: condition: service_healthy redis: condition: service_started worker: build: ./api command: celery -A config worker --loglevel=info env_file: .env volumes: - ./api:/app - media_data:/app/media depends_on: postgres: condition: service_healthy redis: condition: service_started web: build: ./web env_file: .env environment: - VITE_API_BASE_URL=${VITE_API_BASE_URL:-http://localhost:8000} volumes: - ./web:/app - /app/node_modules ports: - "5173:5173" depends_on: - api volumes: postgres_data: media_data: