services: searxng: image: searxng/searxng:latest container_name: orio-search-searxng ports: - "8080:8080" volumes: - ./searxng/settings.yml:/etc/searxng/settings.yml:ro restart: unless-stopped healthcheck: test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:8080/healthz"] interval: 30s timeout: 5s retries: 3 redis: image: redis:7-alpine container_name: orio-search-redis ports: - "6379:6379" restart: unless-stopped healthcheck: test: ["CMD", "redis-cli", "ping"] interval: 10s timeout: 3s retries: 5 deploy: resources: limits: memory: 256M ollama: image: ollama/ollama:latest container_name: orio-search-ollama profiles: ["llm"] ports: - "11434:11434" volumes: - ollama_data:/root/.ollama restart: unless-stopped deploy: resources: limits: memory: 4G api: build: . container_name: orio-search-api ports: - "8000:8000" volumes: - ./config.yaml:/app/config.yaml:ro depends_on: searxng: condition: service_healthy redis: condition: service_healthy environment: - ORIO_SEARCH_CONFIG=/app/config.yaml restart: unless-stopped deploy: resources: limits: memory: 1G volumes: ollama_data: