Fountain Coach Gitowner-controlled · read only

baseline-awareness-service.git · docker-compose.yml

baseline-awareness-service.git / docker-compose.yml

revision d73c06b4a827d955161432eeb15e26eb55863c32 · complete file

version: "3.8"

services:
  typesense:
    image: typesense/typesense:0.24.1
    container_name: typesense
    ports:
      - "${TYPESENSE_PORT}:8108"
    volumes:
      - typesense-data:/data
    env_file:
      - .env
    command: >
      typesense-server
      --api-key=${TYP_API_KEY}
      --data-dir=/data
      --listen-port=8108
      --enable-cors

  dashboard:
    image: bfritscher/typesense-dashboard:latest
    container_name: typesense-dashboard
    depends_on:
      - typesense
    ports:
      - "${DASHBOARD_PORT}:80"
    env_file:
      - .env
    environment:
      - REACT_APP_TYPESENSE_SERVER_URL=http://typesense:8108
      - REACT_APP_TYPESENSE_API_KEY=${TYP_API_KEY}

  baseline-service:
    build:
      context: ./baseline-service
      dockerfile: Dockerfile
    container_name: baseline-awareness-service
    ports:
      - "${BASELINE_PORT}:80"
    env_file:
      - .env
    environment:
      - PYTHONPATH=/app
      - OPENAI_API_KEY=${OPENAI_API_KEY}
      - GPT_MODEL=${GPT_MODEL}
      - GPT_TEMPERATURE=${GPT_TEMPERATURE}
      - GPT_MAX_TOKENS=${GPT_MAX_TOKENS}
      - SEMANTIC_ARC_SYSTEM_PROMPT=${SEMANTIC_ARC_SYSTEM_PROMPT}
      - HISTORY_SYSTEM_PROMPT=${HISTORY_SYSTEM_PROMPT}
      - PATTERNS_SYSTEM_PROMPT=${PATTERNS_SYSTEM_PROMPT}
      - DRIFT_SYSTEM_PROMPT=${DRIFT_SYSTEM_PROMPT}
    depends_on:
      - typesense
    command: >
      uvicorn baseline_service.entrypoint:app
      --app-dir src
      --host 0.0.0.0
      --port 80
      --reload
    volumes:
      - ./baseline-service:/app

  prometheus:
    image: prom/prometheus:latest
    container_name: prom_baseline
    ports:
      - "${PROMETHEUS_PORT}:9090"
    volumes:
      - ./monitoring/prometheus.yml:/etc/prometheus/prometheus.yml:ro
    depends_on:
      - baseline-service

  grafana:
    image: grafana/grafana:latest
    container_name: grafana_baseline
    depends_on:
      - prometheus
    ports:
      - "${GRAFANA_PORT}:3000"
    environment:
      GF_SECURITY_ADMIN_PASSWORD: "admin"

  registry-service:
    build:
      context: ./registry-service
      dockerfile: Dockerfile
    container_name: registry-service
    ports:
      - "${REGISTRY_PORT}:8000"
    env_file:
      - .env
    environment:
      - BASELINE_API_URL=http://baseline-service:80
      - REGISTRY_CORPUS=${REGISTRY_CORPUS}
      - PROMETHEUS_URL=http://prometheus:${PROMETHEUS_PORT}
    depends_on:
      - baseline-service
      - prometheus

  planner-service:
    build:
      context: ./planner-service
      dockerfile: Dockerfile
    container_name: planner-service
    ports:
      - "${PLANNER_PORT}:8000"
    env_file:
      - .env
    environment:
      - BASELINE_API_URL=http://baseline-service:80
      - REGISTRY_SERVICE_URL=http://registry-service:${REGISTRY_PORT}
      - PROMETHEUS_URL=http://prometheus:${PROMETHEUS_PORT}
      - OPENAI_API_KEY=${OPENAI_API_KEY}
      - GPT_MODEL=${GPT_MODEL}
      - GPT_TEMPERATURE=${GPT_TEMPERATURE}
      - GPT_MAX_TOKENS=${GPT_MAX_TOKENS}
      - SEMANTIC_ARC_SYSTEM_PROMPT=${SEMANTIC_ARC_SYSTEM_PROMPT}
      - HISTORY_SYSTEM_PROMPT=${HISTORY_SYSTEM_PROMPT}
      - PATTERNS_SYSTEM_PROMPT=${PATTERNS_SYSTEM_PROMPT}
      - DRIFT_SYSTEM_PROMPT=${DRIFT_SYSTEM_PROMPT}
      - COST_POLL_THRESHOLD_MS=${COST_POLL_THRESHOLD_MS}
      - COST_SCHEDULE_THRESHOLD_MS=${COST_SCHEDULE_THRESHOLD_MS}
    depends_on:
      - baseline-service
      - registry-service
      - prometheus

volumes:
  typesense-data: