Spaces:
Sleeping
Sleeping
| 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} | |
| - PYTHONPATH=/app | |
| - STREAMLIT_BROWSER_GATHER_USAGE_STATS=false | |
| - STREAMLIT_THEME_PRIMARY_COLOR="#FF4B4B" | |
| env_file: | |
| - .env | |
| volumes: | |
| - ./app:/app/app | |
| - ./data:/app/data | |
| - ./config:/app/config | |
| - ./logs:/app/logs | |
| - ./.streamlit:/root/.streamlit:ro | |
| healthcheck: | |
| test: ["CMD", "curl", "-f", "http://localhost:8501/_stcore/health"] | |
| interval: 30s | |
| timeout: 10s | |
| retries: 5 | |
| elasticsearch: | |
| image: docker.elastic.co/elasticsearch/elasticsearch:8.9.0 | |
| container_name: elasticsearch | |
| environment: | |
| - discovery.type=single-node | |
| - xpack.security.enabled=false | |
| - "ES_JAVA_OPTS=-Xms512m -Xmx512m" | |
| ports: | |
| - "9200:9200" | |
| - "9300:9300" | |
| deploy: | |
| resources: | |
| limits: | |
| memory: 2G | |
| volumes: | |
| - esdata:/usr/share/elasticsearch/data | |
| healthcheck: | |
| test: ["CMD", "curl", "-f", "http://localhost:9200"] | |
| interval: 30s | |
| timeout: 10s | |
| retries: 5 | |
| grafana: | |
| image: grafana/grafana:latest | |
| ports: | |
| - "3000:3000" | |
| environment: | |
| - GF_AUTH_ANONYMOUS_ENABLED=false | |
| - GF_SECURITY_ADMIN_USER=${GRAFANA_USERNAME:-admin} | |
| - GF_SECURITY_ADMIN_PASSWORD=${GRAFANA_PASSWORD:-admin} | |
| - GF_INSTALL_PLUGINS=frser-sqlite-datasource | |
| - GF_PLUGINS_ALLOW_LOADING_UNSIGNED_PLUGINS=frser-sqlite-datasource | |
| - GF_LOG_LEVEL=debug | |
| volumes: | |
| - ./grafana/provisioning:/etc/grafana/provisioning | |
| - ./grafana/dashboards:/etc/grafana/dashboards | |
| - grafana-storage:/var/lib/grafana | |
| - ./data:/app/data:ro | |
| - ./logs:/var/log/grafana | |
| depends_on: | |
| - elasticsearch | |
| healthcheck: | |
| test: ["CMD-SHELL", "wget -q --spider http://localhost:3000/api/health || exit 1"] | |
| interval: 30s | |
| timeout: 10s | |
| retries: 5 | |
| ollama: | |
| image: ollama/ollama:latest | |
| ports: | |
| - "11434:11434" | |
| volumes: | |
| - ollama_data:/root/.ollama | |
| deploy: | |
| resources: | |
| limits: | |
| memory: 6G | |
| healthcheck: | |
| test: ["CMD", "curl", "-f", "http://localhost:11434/api/health"] | |
| interval: 30s | |
| timeout: 10s | |
| retries: 5 | |
| volumes: | |
| esdata: | |
| driver: local | |
| grafana-storage: | |
| ollama_data: | |
| networks: | |
| default: | |
| driver: bridge |