| version: "3.9" | |
| services: | |
| cascade-api: | |
| build: . | |
| ports: | |
| - "8000:8000" | |
| environment: | |
| - REDIS_HOST=redis | |
| - REDIS_PORT=6379 | |
| - QDRANT_URL=http://qdrant:6333 | |
| - OPENAI_API_KEY=${OPENAI_API_KEY} | |
| depends_on: | |
| - redis | |
| - qdrant | |
| restart: unless-stopped | |
| healthcheck: | |
| test: ["CMD", "curl", "-f", "http://localhost:8000/health"] | |
| interval: 30s | |
| timeout: 10s | |
| retries: 3 | |
| cascade-ui: | |
| build: . | |
| command: streamlit run src/cascade/ui/app.py --server.port=8501 --server.address=0.0.0.0 | |
| ports: | |
| - "8501:8501" | |
| environment: | |
| - API_URL=http://cascade-api:8000 | |
| depends_on: | |
| - cascade-api | |
| restart: unless-stopped | |
| redis: | |
| image: redis:7-alpine | |
| ports: | |
| - "6379:6379" | |
| volumes: | |
| - redis_data:/data | |
| restart: unless-stopped | |
| healthcheck: | |
| test: ["CMD", "redis-cli", "ping"] | |
| interval: 10s | |
| timeout: 5s | |
| retries: 5 | |
| qdrant: | |
| image: qdrant/qdrant:latest | |
| ports: | |
| - "6333:6333" | |
| - "6334:6334" | |
| volumes: | |
| - qdrant_data:/qdrant/storage | |
| restart: unless-stopped | |
| healthcheck: | |
| test: ["CMD", "curl", "-f", "http://localhost:6333/"] | |
| interval: 10s | |
| timeout: 5s | |
| retries: 5 | |
| volumes: | |
| redis_data: | |
| qdrant_data: | |