services:
  # mkcert certificate manager - auto-generates trusted certificates
  mkcert:
    build:
      context: .
      dockerfile: docker/Dockerfile.mkcert
    container_name: timetracker-mkcert
    volumes:
      - ./nginx/ssl:/certs
      - mkcert-ca:/root/.local/share/mkcert
    environment:
      - HOST_IP=${HOST_IP:-192.168.1.100}
      - CERT_DOMAINS=localhost 127.0.0.1 ::1 ${HOST_IP:-192.168.1.100} *.local timetracker.local
    command: /generate-mkcert-certs.sh
    restart: "no"

  nginx:
    image: nginx:alpine
    container_name: timetracker-nginx
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - ./nginx/conf.d:/etc/nginx/conf.d:ro
      - ./nginx/ssl:/etc/nginx/ssl:ro
    depends_on:
      mkcert:
        condition: service_completed_successfully
      app:
        condition: service_started
    restart: unless-stopped

  app:
    ports: []  # nginx handles all ports
    environment:
      - WTF_CSRF_SSL_STRICT=true
      - SESSION_COOKIE_SECURE=true
      - CSRF_COOKIE_SECURE=true
    restart: unless-stopped

volumes:
  mkcert-ca:
    driver: local

