services: neo4j: profiles: [""] image: neo4j:5.26.0 ports: - "7474:7474" # HTTP - "7687:7687" # Bolt environment: - NEO4J_AUTH=${NEO4J_USER:-neo4j}/${NEO4J_PASSWORD:-demodemo} - NEO4J_server_memory_heap_initial__size=512m - NEO4J_server_memory_heap_max__size=1G - NEO4J_server_memory_pagecache_size=512m volumes: - neo4j_data:/data - neo4j_logs:/logs healthcheck: test: ["CMD", "wget", "-O", "/dev/null", "http://localhost:7474"] interval: 10s timeout: 5s retries: 5 start_period: 30s graphiti-mcp-neo4j: profiles: [""] image: zepai/knowledge-graph-mcp:latest build: context: . dockerfile: Dockerfile env_file: - path: .env required: false # Makes the file optional. Default value is 'true' depends_on: neo4j: condition: service_healthy environment: - PORT=8000 - DATABASE_TYPE=neo4j - NEO4J_URI=${NEO4J_URI:-bolt://neo4j:7687} - NEO4J_USER=${NEO4J_USER:-neo4j} - NEO4J_PASSWORD=${NEO4J_PASSWORD:-demodemo} - OPENAI_API_KEY=${OPENAI_API_KEY} - MODEL_NAME=${MODEL_NAME} - PATH=/root/.local/bin:${PATH} - SEMAPHORE_LIMIT=${SEMAPHORE_LIMIT:-10} ports: - "8000:8000" # Expose the MCP server via HTTP for SSE transport command: ["uv", "run", "graphiti_mcp_server.py", "--transport", "sse"] falkordb: profiles: ["falkordb"] image: falkordb/falkordb:latest ports: - "6379:6379" command: ["falkordb-server", "--loadmodule", "/FalkorDB/bin/src/falkordb.so"] volumes: - falkordb_data:/data healthcheck: test: ["CMD", "redis-cli", "ping"] interval: 10s timeout: 5s retries: 5 start_period: 30s graphiti-mcp-falkordb: profiles: ["falkordb"] build: args: INSTALL_FALKORDB: "true" context: . dockerfile: Dockerfile env_file: - path: .env required: false depends_on: falkordb: condition: service_healthy environment: - PORT=8001 - DATABASE_TYPE=falkordb - FALKORDB_HOST=falkordb - FALKORDB_PORT=6379 - FALKORDB_USER=${FALKORDB_USER:-} - FALKORDB_PASSWORD=${FALKORDB_PASSWORD:-} - OPENAI_API_KEY=${OPENAI_API_KEY} - MODEL_NAME=${MODEL_NAME} - PATH=/root/.local/bin:${PATH} - SEMAPHORE_LIMIT=${SEMAPHORE_LIMIT:-10} ports: - "8001:8001" # Expose the MCP server via HTTP for SSE transport command: ["uv", "run", "graphiti_mcp_server.py", "--transport", "sse"] volumes: neo4j_data: neo4j_logs: falkordb_data: