# EDR Platform — application containers only (no Postgres).
# Requires a local .npmrc with GitHub Packages auth for @tria-plc (freight API + freight web).
# Copy apps/*/env.example to .env and set real values before `docker compose up`.
#
# Build:  DOCKER_BUILDKIT=1 docker compose build
# Run:    docker compose up -d
services:
  freight-api:
    build:
      context: .
      dockerfile: apps/edr-freight-api/Dockerfile
      secrets:
        - npmrc
    ports:
      - "${FREIGHT_API_PORT:-3001}:${FREIGHT_API_PORT:-3001}"
    env_file:
      - apps/edr-freight-api/.env
    extra_hosts:
      - "paymentcallback.triaplc.com:10.18.7.179"

  gps-tracker:
    build:
      context: .
      dockerfile: apps/edr-gps-tracker/Dockerfile
      secrets:
        - npmrc
    ports:
      - "${GT06_TCP_PORT:-5023}:5023"
    environment:
      GT06_TCP_PORT: "5023"
      GT06_TCP_HOST: "0.0.0.0"
    env_file:
      - apps/edr-gps-tracker/.env
    restart: unless-stopped

  passenger-api:
    build:
      context: .
      dockerfile: apps/edr-passenger-api/Dockerfile
    ports:
      - "${PASSENGER_API_PORT:-4000}:${PASSENGER_API_PORT:-4000}"
    env_file:
      - apps/edr-passenger-api/.env
    extra_hosts:
      - "paymentcallback.triaplc.com:10.18.7.179"
    restart: unless-stopped
 
  freight-portal:
    build:
      context: .
      dockerfile: infrastructure/docker/Dockerfile.web
      args:
        TURBO_FILTER: "@edr/freight-portal"
        APP_PATH: apps/edr-freight-web/portal
        VITE_API_URL: ${VITE_API_URL:-}
        VITE_BASE_API_URL: ${VITE_BASE_API_URL:-}
        VITE_USER_MANAGEMENT_BASE: ${VITE_USER_MANAGEMENT_BASE:-}
        VITE_GOOGLE_MAPS_API_KEY: ${VITE_GOOGLE_MAPS_API_KEY:-}
        VITE_POSTHOG_KEY: ${VITE_POSTHOG_KEY:-}
        VITE_POSTHOG_HOST: ${VITE_POSTHOG_HOST:-}
      secrets:
        - npmrc
    ports:
      - "${FREIGHT_PORTAL_PORT:-5173}:80"
  
  freight-backoffice:
    build:
      context: .
      dockerfile: infrastructure/docker/Dockerfile.web
      args:
        TURBO_FILTER: "@edr/freight-backoffice"
        APP_PATH: apps/edr-freight-web/backoffice
        VITE_API_URL: ${VITE_API_URL:-}
        VITE_BASE_API_URL: ${VITE_BASE_API_URL:-}
        VITE_USER_MANAGEMENT_BASE: ${VITE_USER_MANAGEMENT_BASE:-}
        VITE_GOOGLE_MAPS_API_KEY: ${VITE_GOOGLE_MAPS_API_KEY:-}
        VITE_POSTHOG_KEY: ${VITE_POSTHOG_KEY:-}
        VITE_POSTHOG_HOST: ${VITE_POSTHOG_HOST:-}
      secrets:
        - npmrc
    ports:
      - "${FREIGHT_BACKOFFICE_PORT:-5183}:80"
  
  passenger-portal:
    build:
      context: .
      dockerfile: infrastructure/docker/Dockerfile.passenger-web
      args:
        APP_PACKAGE: "@edr/passenger-portal"
        APP_PATH: apps/edr-passenger-web/portal
        NEXT_PUBLIC_API_URL: ${NEXT_PUBLIC_API_URL:-}
      secrets:
        - npmrc
    ports:
      - "${PASSENGER_PORTAL_PORT:-5174}:${PASSENGER_PORTAL_PORT:-5174}"
    env_file:
      - apps/edr-passenger-web/portal/.env
    restart: unless-stopped
  
  passenger-backoffice:
    build:
      context: .
      dockerfile: infrastructure/docker/Dockerfile.passenger-web
      args:
        APP_PACKAGE: "@edr/passenger-backoffice"
        APP_PATH: apps/edr-passenger-web/backoffice
        NEXT_PUBLIC_API_URL: ${NEXT_PUBLIC_API_URL:-}
      secrets:
        - npmrc
    ports:
      - "${PASSENGER_BACKOFFICE_PORT:-5184}:${PASSENGER_BACKOFFICE_PORT:-5184}"
    env_file:
      - apps/edr-passenger-web/backoffice/.env
    restart: unless-stopped
  
  payment-api:
    build:
      context: .
      dockerfile: apps/edr-payment-api/Dockerfile
      args:
        APP_PACKAGE: "@edr/payment-api"
        APP_PATH: apps/edr-payment-api
      secrets:
        - npmrc
    ports:
      - "${PAYMENT_API_PORT:-3008}:${PAYMENT_API_PORT:-3008}"
    env_file:
      - apps/edr-payment-api/.env
secrets:
  npmrc:
    file: .npmrc
