version: '3.8' services: app: image: leagueledger:latest deploy: replicas: 3 update_config: parallelism: 2 delay: 10s restart_policy: condition: on-failure networks: - traefik-public environment: - DATABASE_URL=postgresql://user:password@db:5432/leagueledger - SECRET_KEY=your-very-secret-session-key - TRAEFIK_ENTRYPOINT=http labels: - "traefik.enable=true" - "traefik.http.routers.leagueledger.rule=Host(`yourdomain.com`)" - "traefik.http.services.leagueledger.loadbalancer.server.port=8000" volumes: - ./app:/app ports: - "8000:8000" db: image: postgres:13 deploy: restart_policy: condition: on-failure networks: - traefik-public environment: POSTGRES_USER: user POSTGRES_PASSWORD: password POSTGRES_DB: leagueledger volumes: - db_data:/var/lib/postgresql/data networks: traefik-public: external: true volumes: db_data: