version: '3.8' services: app: build: . ports: - "8501:8501" depends_on: - elasticsearch - ollama environment: - ELASTICSEARCH_HOST=elasticsearch - ELASTICSEARCH_PORT=9200 - YOUTUBE_API_KEY=${YOUTUBE_API_KEY} - OLLAMA_HOST=http://ollama:11434 - OLLAMA_TIMEOUT=${OLLAMA_TIMEOUT:-120} - OLLAMA_MAX_RETRIES=${OLLAMA_MAX_RETRIES:-3} env_file: - .env volumes: - ./data:/app/data - ./config:/app/config - ./app:/app/app # Add this line to map your local app directory elasticsearch: image: docker.elastic.co/elasticsearch/elasticsearch:8.9.0 container_name: elasticsearch environment: - discovery.type=single-node - xpack.security.enabled=false ports: - "9200:9200" - "9300:9300" deploy: resources: limits: memory: 2G volumes: - esdata:/usr/share/elasticsearch/data grafana: image: grafana/grafana:latest ports: - "3000:3000" volumes: - grafana-storage:/var/lib/grafana - ./config/grafana:/etc/grafana/provisioning depends_on: - elasticsearch ollama: image: ollama/ollama:latest ports: - "11434:11434" volumes: - ollama_data:/root/.ollama volumes: esdata: driver: local grafana-storage: ollama_data: