services: web: build: context: . dockerfile: ./build/Dockerfile container_name: django_web_prod command: gunicorn core.wsgi:application --bind 0.0.0.0:8000 --workers 3 dns: - 8.8.8.8 - 8.8.4.4 volumes: - static_volume:/app/staticfiles - media_volume:/app/media expose: - 8000 networks: - dokploy-network environment: - DEBUG=0 - SECRET_KEY=${SECRET_KEY} - USE_POSTGRES=${USE_POSTGRES} - POSTGRES_DB=${POSTGRES_DB} - POSTGRES_USER=${POSTGRES_USER} - POSTGRES_PASSWORD=${POSTGRES_PASSWORD} - POSTGRES_HOST=${POSTGRES_HOST:-10.80.80.50} - POSTGRES_PORT=${POSTGRES_PORT:-5432} - DJANGO_ALLOWED_HOSTS=${DJANGO_ALLOWED_HOSTS} - CELERY_BROKER_URL=${CELERY_BROKER_URL} - CELERY_RESULT_BACKEND=${CELERY_RESULT_BACKEND} restart: unless-stopped celery: build: context: . dockerfile: ./build/Dockerfile container_name: django_celery_prod command: celery -A core worker -l info dns: - 8.8.8.8 - 8.8.4.4 volumes: - media_volume:/app/media networks: - dokploy-network environment: - DEBUG=0 - SECRET_KEY=${SECRET_KEY} - USE_POSTGRES=${USE_POSTGRES} - POSTGRES_DB=${POSTGRES_DB} - POSTGRES_USER=${POSTGRES_USER} - POSTGRES_PASSWORD=${POSTGRES_PASSWORD} - POSTGRES_HOST=${POSTGRES_HOST:-10.80.80.50} - POSTGRES_PORT=${POSTGRES_PORT:-5432} - DJANGO_ALLOWED_HOSTS=${DJANGO_ALLOWED_HOSTS} - CELERY_BROKER_URL=${CELERY_BROKER_URL} - CELERY_RESULT_BACKEND=${CELERY_RESULT_BACKEND} depends_on: - web restart: unless-stopped caddy: build: context: . dockerfile: ./caddy/Dockerfile container_name: django_caddy expose: - 80 networks: - dokploy-network volumes: - static_volume:/app/staticfiles:ro - media_volume:/app/media:ro - caddy_data:/data - caddy_config:/config depends_on: - web restart: unless-stopped labels: - "coolify.managed=true" - "coolify.http.port=80" volumes: static_volume: media_volume: caddy_data: caddy_config: networks: dokploy-network: external: true