version: '3.8'

services:
  backend:
    build:
      context: ./backend
      dockerfile: Dockerfile
    container_name: media-downloader-backend
    ports:
      - "8080:8080"
    environment:
      - RUST_LOG=info
    volumes:
      - ./downloads:/tmp/media-downloader
    restart: unless-stopped

  frontend:
    build:
      context: ./frontend
      dockerfile: Dockerfile
    container_name: media-downloader-frontend
    ports:
      - "3000:80"
    depends_on:
      - backend
    restart: unless-stopped

  caddy:
    image: caddy:2-alpine
    container_name: media-downloader-caddy
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - ./Caddyfile:/etc/caddy/Caddyfile
      - caddy_data:/data
      - caddy_config:/config
    depends_on:
      - backend
      - frontend
    restart: unless-stopped

volumes:
  caddy_data:
  caddy_config:
