services: postgis: image: postgis/postgis:16-3.4 environment: POSTGRES_DB: radio POSTGRES_USER: radio POSTGRES_PASSWORD: ${DB_PASSWORD:-radio} volumes: - pgdata:/var/lib/postgresql/data - ./db/init:/docker-entrypoint-initdb.d:ro ports: - "${POSTGIS_PORT:-5432}:5432" redis: image: redis:7-alpine ports: - "${REDIS_PORT:-6379}:6379" api: build: ./api env_file: .env depends_on: - postgis - redis volumes: - ./data:/data:ro ports: - "${API_PORT:-8000}:8000" command: gunicorn app.main:app -k uvicorn.workers.UvicornWorker -w 4 -b 0.0.0.0:8000 worker: build: ./api env_file: .env depends_on: - postgis - redis volumes: - ./data:/data:ro command: celery -A app.workers.celery_app worker --concurrency=4 -l info tiler: image: ghcr.io/developmentseed/titiler:latest profiles: - tiler ports: - "${TILER_PORT:-8001}:8000" volumes: - ./data:/data:ro volumes: pgdata: