HostRegexp patterns don't work with HTTP challenge because Traefik can't request certificates for dynamic subdomains. Switched to DNS challenge using DigitalOcean provider for *.smoothschedule.com wildcard. Requires DO_AUTH_TOKEN environment variable to be set. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
90 lines
2.0 KiB
YAML
90 lines
2.0 KiB
YAML
volumes:
|
|
production_postgres_data: {}
|
|
production_postgres_data_backups: {}
|
|
production_traefik: {}
|
|
|
|
production_redis_data: {}
|
|
|
|
services:
|
|
django: &django
|
|
build:
|
|
context: .
|
|
dockerfile: ./compose/production/django/Dockerfile
|
|
|
|
image: smoothschedule_production_django
|
|
depends_on:
|
|
- postgres
|
|
- redis
|
|
env_file:
|
|
- ./.envs/.production/.django
|
|
- ./.envs/.production/.postgres
|
|
command: /start
|
|
|
|
postgres:
|
|
build:
|
|
context: .
|
|
dockerfile: ./compose/production/postgres/Dockerfile
|
|
image: smoothschedule_production_postgres
|
|
volumes:
|
|
- production_postgres_data:/var/lib/postgresql/data
|
|
- production_postgres_data_backups:/backups
|
|
env_file:
|
|
- ./.envs/.production/.postgres
|
|
|
|
traefik:
|
|
build:
|
|
context: .
|
|
dockerfile: ./compose/production/traefik/Dockerfile
|
|
image: smoothschedule_production_traefik
|
|
depends_on:
|
|
- django
|
|
volumes:
|
|
- production_traefik:/etc/traefik/acme
|
|
environment:
|
|
# DigitalOcean API token for DNS challenge (wildcard certs)
|
|
- DO_AUTH_TOKEN=${DO_AUTH_TOKEN}
|
|
ports:
|
|
- '0.0.0.0:80:80'
|
|
- '0.0.0.0:443:443'
|
|
- '0.0.0.0:5555:5555'
|
|
|
|
nginx:
|
|
build:
|
|
context: ../frontend
|
|
dockerfile: Dockerfile.prod
|
|
args:
|
|
VITE_API_URL: https://api.smoothschedule.com
|
|
depends_on:
|
|
- django
|
|
ports:
|
|
- "8080:80" # Expose internally for Traefik
|
|
redis:
|
|
image: docker.io/redis:7.2
|
|
|
|
volumes:
|
|
- production_redis_data:/data
|
|
|
|
celeryworker:
|
|
<<: *django
|
|
image: smoothschedule_production_celeryworker
|
|
command: /start-celeryworker
|
|
|
|
celerybeat:
|
|
<<: *django
|
|
image: smoothschedule_production_celerybeat
|
|
command: /start-celerybeat
|
|
|
|
flower:
|
|
<<: *django
|
|
image: smoothschedule_production_flower
|
|
command: /start-flower
|
|
|
|
awscli:
|
|
build:
|
|
context: .
|
|
dockerfile: ./compose/production/aws/Dockerfile
|
|
env_file:
|
|
- ./.envs/.production/.django
|
|
volumes:
|
|
- production_postgres_data_backups:/backups:z
|