services:
  backend:
    image: ghcr.io/maxdorninger/mediamanager/backend:latest
    container_name: backend
    ports:
      - "8000:8000"
    # In your reverse proxy you will probably need to set rule that only requests with a path prefix
    # of /api/v1 will be forwarded to this container
    # if you are using traefik the rule is going to look something like this:
    # "traefik.http.routers.mm-api.rule=Host(`media.example`)&&PathPrefix(`/api/v1`)"
    environment:
      - QBITTORRENT_PASSWORD=
      - QBITTORRENT_HOST=
      - QBITTORRENT_USERNAME=
      - QBITTORRENT_PORT=

      - CORS_URLS=

      - DB_HOST=db
      #- DB_NAME=
      #- DB_PORT=
      #- DB_PASSWORD=
      #- DB_DBNAME=

      # generate a random string with "openssl rand -hex 32"
      - AUTH_TOKEN_SECRET=

      # this should be you email address
      - AUTH_ADMIN_EMAIL=

      # this is the URL of your frontend, e.g. https://mediamanager.example.com
      - FRONTEND_URL=

      #- OPENID_ENABLED=FALSE
      #- OPENID_CLIENT_ID=
      #- OPENID_CLIENT_SECRET=
      #- OPENID_CONFIGURATION_ENDPOINT=
      #- OPENID_NAME=

      #- AUTH_SESSION_LIFETIME=
      #- API_BASE_PATH=/api/v1
      #- DEVELOPMENT=

    volumes:
      - ./data/:/data/
  frontend:
    image: ghcr.io/maxdorninger/mediamanager/frontend:latest
    container_name: frontend
    ports:
      - "3000:3000"
    volumes:
      - ./cache:/app/cache
    environment:
      - PUBLIC_API_URL=http://localhost:8000/api/v1
  db:
    image: postgres:latest
    restart: unless-stopped
    container_name: postgres
    volumes:
      - ./postgres:/var/lib/postgresql/data
    environment:
      POSTGRES_USER: MediaManager
      POSTGRES_DB: MediaManager
      POSTGRES_PASSWORD: MediaManager
    ports:
      - "5432:5432"


