services: graph: profiles: [""] build: context: . ports: - "8000:8000" healthcheck: test: [ "CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://localhost:8000/healthcheck')", ] interval: 10s timeout: 5s retries: 3 depends_on: neo4j: condition: service_healthy environment: - OPENAI_API_KEY=${OPENAI_API_KEY} - NEO4J_URI=bolt://neo4j:${NEO4J_PORT:-7687} - NEO4J_USER=${NEO4J_USER:-neo4j} - NEO4J_PASSWORD=${NEO4J_PASSWORD:-password} - PORT=8000 - db_backend=neo4j neo4j: image: neo4j:5.26.2 profiles: [""] healthcheck: test: [ "CMD-SHELL", "wget -qO- http://localhost:${NEO4J_PORT:-7474} || exit 1", ] interval: 1s timeout: 10s retries: 10 start_period: 3s ports: - "7474:7474" # HTTP - "${NEO4J_PORT:-7687}:${NEO4J_PORT:-7687}" # Bolt volumes: - neo4j_data:/data environment: - NEO4J_AUTH=${NEO4J_USER:-neo4j}/${NEO4J_PASSWORD:-password} falkordb: image: falkordb/falkordb:latest profiles: ["falkordb"] ports: - "6379:6379" volumes: - falkordb_data:/data environment: - FALKORDB_ARGS=--port 6379 --cluster-enabled no healthcheck: test: ["CMD", "redis-cli", "-p", "6379", "ping"] interval: 1s timeout: 10s retries: 10 start_period: 3s graph-falkordb: build: args: INSTALL_FALKORDB: "true" context: . profiles: ["falkordb"] ports: - "8001:8001" depends_on: falkordb: condition: service_healthy healthcheck: test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://localhost:8001/healthcheck')"] interval: 10s timeout: 5s retries: 3 environment: - OPENAI_API_KEY=${OPENAI_API_KEY} - FALKORDB_HOST=falkordb - FALKORDB_PORT=6379 - FALKORDB_DATABASE=default_db - GRAPHITI_BACKEND=falkordb - PORT=8001 - db_backend=falkordb memgraph: image: memgraph/memgraph:latest healthcheck: test: [ "CMD", "mg_client", "--host", "localhost", "--port", "7687", "--use-ssl=false", "--query", "RETURN 1;" ] interval: 5s timeout: 10s retries: 10 start_period: 3s ports: - "7688:7687" # Bolt (using different port to avoid conflict) volumes: - memgraph_data:/var/lib/memgraph environment: - MEMGRAPH_USER=${MEMGRAPH_USER:-} - MEMGRAPH_PASSWORD=${MEMGRAPH_PASSWORD:-} command: ["--log-level=TRACE", "--also-log-to-stderr", "--bolt-port=7687"] volumes: neo4j_data: memgraph_data: falkordb_data: