version: '3.8' services: neo4j: image: neo4j:5.15-community container_name: raredx-neo4j ports: - "7474:7474" # HTTP browser - "7687:7687" # Bolt protocol environment: NEO4J_AUTH: neo4j/raredx_password NEO4J_PLUGINS: '["apoc"]' NEO4J_dbms_memory_pagecache_size: 512M NEO4J_dbms_memory_heap_initial__size: 512M NEO4J_dbms_memory_heap_max__size: 1G NEO4J_dbms_security_procedures_unrestricted: "apoc.*" NEO4J_dbms_security_procedures_allowlist: "apoc.*" volumes: - neo4j_data:/data - neo4j_logs:/logs - neo4j_import:/var/lib/neo4j/import healthcheck: test: ["CMD", "cypher-shell", "-u", "neo4j", "-p", "raredx_password", "RETURN 1"] interval: 15s timeout: 10s retries: 10 chromadb: image: chromadb/chroma:latest container_name: raredx-chromadb ports: - "8000:8000" environment: IS_PERSISTENT: "TRUE" PERSIST_DIRECTORY: /chroma/chroma ANONYMIZED_TELEMETRY: "FALSE" volumes: - chroma_data:/chroma/chroma healthcheck: test: ["CMD", "curl", "-f", "http://localhost:8000/api/v1/heartbeat"] interval: 10s timeout: 5s retries: 10 volumes: neo4j_data: neo4j_logs: neo4j_import: chroma_data: