version: '3.8'

services:
  web:
    build: .
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.photos.rule=Host(`photos.dws.rip`)"
      - "traefik.http.services.photos.loadbalancer.server.port=5000"
      - "traefik.http.routers.photos.tls=true"
      - "traefik.http.routers.photos.tls.certresolver=default"
    volumes:
      - ./uploads:/app/uploads
      - ./thumbnails:/app/thumbnails
      - ./config.toml:/app/config.toml
      - ./photos.db:/app/photos.db
    environment:
      - PYTHONUNBUFFERED=1
      - FLASK_ENV=production
      - WORKERS=4
    restart: unless-stopped
    networks:
      - traefik-public
      - default
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:5000/"]
      interval: 30s
      timeout: 10s
      retries: 3
      start_period: 40s

networks:
  traefik-public:
    external: true