version: "3.7"
services:
  itcc-explorer:
    container_name: lens_itcc_explorer
    image: samply/itcc-explorer:main
    environment:
      HOST: "0.0.0.0"
      BIND_ADDR: "0.0.0.0:3000"
      PUBLIC_ENVIRONMENT: ${PUBLIC_ENVIRONMENT}
      PUBLIC_SPOT_URL: https://${HOST}/prod
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.itcc.rule=Host(`${HOST}`) && PathPrefix(`/`)"
      - "traefik.http.routers.itcc.entrypoints=websecure"
      - "traefik.http.services.itcc.loadbalancer.server.port=3000"
      - "traefik.http.routers.itcc.tls=true"

  spot:
    image: samply/rustyspot:latest
    environment:
      BEAM_SECRET: "${FOCUS_BEAM_SECRET_SHORT}"
      BEAM_PROXY_URL: http://beam-proxy:8081
      BEAM_PROXY_ID: ${SITE_ID}
      BEAM_BROKER_ID: ${BROKER_ID}
      BEAM_APP_ID: "spot.${SITE_ID}.${BROKER_ID}"
      CORS_ORIGIN: "https://${HOST}"
      SITES: ${SITES}
      TRANSFORM: LENS
      PROJECT: "itcc"
      BIND_ADDR: 0.0.0.0:8055
    depends_on:
      - "beam-proxy"
    labels:
      - "traefik.enable=true"
      - "traefik.http.services.spot.loadbalancer.server.port=8055"
      - "traefik.http.middlewares.corsheaders2.headers.accesscontrolallowmethods=GET,OPTIONS,POST"
      - "traefik.http.middlewares.corsheaders2.headers.accesscontrolallowheaders=content-type"
      - "traefik.http.middlewares.corsheaders2.headers.accesscontrolalloworiginlist=https://${HOST}"
      - "traefik.http.middlewares.corsheaders2.headers.accesscontrolallowcredentials=true"
      - "traefik.http.middlewares.corsheaders2.headers.accesscontrolmaxage=-1"
      - "traefik.http.routers.spot.rule=Host(`${HOST}`) && PathPrefix(`/prod`)"
      - "traefik.http.middlewares.stripprefix_spot.stripprefix.prefixes=/prod"
      - "traefik.http.routers.spot.tls=true"
      - "traefik.http.routers.spot.middlewares=corsheaders2,stripprefix_spot,auth"

  beam-proxy:
    environment:
      APP_spot_KEY: ${FOCUS_BEAM_SECRET_SHORT}
