volumes: neo4j_data: driver: local networks: pentagi-network: driver: bridge external: true name: pentagi-network services: neo4j: image: neo4j:5.26.2 restart: unless-stopped container_name: neo4j hostname: neo4j healthcheck: test: ["CMD-SHELL", "wget -qO- http://localhost:7474 || exit 1"] interval: 1s timeout: 10s retries: 10 start_period: 3s ports: - "127.0.0.1:7474:7474" # HTTP - "127.0.0.1:7687:7687" # Bolt logging: options: max-size: 50m max-file: "7" volumes: - neo4j_data:/data environment: - NEO4J_AUTH=${NEO4J_USER:-neo4j}/${NEO4J_PASSWORD:-devpassword} networks: - pentagi-network shm_size: 4g graphiti: image: vxcontrol/graphiti:latest restart: unless-stopped container_name: graphiti hostname: graphiti 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 ports: - "127.0.0.1:8000:8000" logging: options: max-size: 50m max-file: "7" environment: - NEO4J_URI=${NEO4J_URI:-bolt://neo4j:7687} - NEO4J_USER=${NEO4J_USER:-neo4j} - NEO4J_DATABASE=${NEO4J_DATABASE:-neo4j} - NEO4J_PASSWORD=${NEO4J_PASSWORD:-devpassword} - MODEL_NAME=${GRAPHITI_MODEL_NAME:-gpt-5-mini} - OPENAI_BASE_URL=${OPEN_AI_SERVER_URL:-https://api.openai.com/v1} - OPENAI_API_KEY=${OPEN_AI_KEY:-} - PORT=8000 networks: - pentagi-network