services: api: build: . command: gunicorn api.wsgi:application --bind 0.0.0.0:8000 restart: always volumes: - database:/app/db - static:/app/static - geoipupdate_data:/app/geoip expose: - 8000 depends_on: - redis - geoipupdate celery: build: . command: celery -A api worker -l info restart: always volumes: - database:/app/db depends_on: - api celery-beat: build: . command: celery -A api beat -l info restart: always depends_on: - api nginx: image: nginx restart: always ports: - 9969:80 volumes: - ./nginx.conf:/etc/nginx/conf.d/default.conf - static:/app/static depends_on: - api redis: image: redis:alpine restart: always geoipupdate: image: ghcr.io/maxmind/geoipupdate env_file: .env restart: always volumes: - geoipupdate_data:/usr/share/GeoIP volumes: database: static: geoipupdate_data: