services: app-setup: build: . command: ["/app/setup.sh"] env_file: .env network_mode: host web: build: . command: ["poetry", "run", "daphne", "-b", "0.0.0.0", "-p", "8000", "config.asgi:application"] restart: unless-stopped env_file: .env depends_on: app-setup: condition: service_completed_successfully # Media storage is now S3 (Garage) - no local volume mount needed networks: - internal celery: build: . command: ["poetry", "run", "celery", "-A", "config", "worker", "-l", "info"] restart: unless-stopped env_file: .env depends_on: app-setup: condition: service_completed_successfully # Media storage is now S3 (Garage) - no local volume mount needed networks: - internal celery-beat: build: . command: ["poetry", "run", "celery", "-A", "config", "beat", "-l", "info"] restart: unless-stopped env_file: .env depends_on: app-setup: condition: service_completed_successfully networks: - internal nginx: image: nginx:1.25-alpine restart: unless-stopped depends_on: - web ports: - "5500:5500" volumes: # Media serving is now via S3 proxy - no local volume mount needed - ./nginx.conf:/etc/nginx/conf.d/default.conf:ro networks: - internal networks: internal: driver: bridge