{"repo": "bcefghj/agent-knowledge-hub", "files": {"docker-compose.yml": {"d401c84da29e08c5b0a1f92e6d9c0deee75972ac": {"t": 1785603970.2223995, "n": 1647, "h": "781aaef38a8ec2a5", "c": "version: \"3.9\"\n\nservices:\n # ── Neo4j 知识图谱数据库 ──────────────────────\n neo4j:\n image: neo4j:5.28-community\n container_name: agenthub-neo4j\n ports:\n - \"7474:7474\" # Web UI\n - \"7687:7687\" # Bolt\n environment:\n NEO4J_AUTH: neo4j/password\n NEO4J_PLUGINS: '[\"apoc\"]'\n volumes:\n - neo4j_data:/data\n healthcheck:\n test: [\"CMD\", \"neo4j\", \"status\"]\n interval: 10s\n timeout: 5s\n retries: 5\n\n # ── ChromaDB 向量数据库 ───────────────────────\n chromadb:\n image: chromadb/chroma:latest\n container_name: agenthub-chromadb\n ports:\n - \"8000:8000\"\n volumes:\n - chroma_data:/chroma/chroma\n environment:\n ANONYMIZED_TELEMETRY: \"false\"\n\n # ── Kafka (CDC 消息队列) ──────────────────────\n zookeeper:\n image: confluentinc/cp-zookeeper:7.7.0\n container_name: agenthub-zookeeper\n environment:\n ZOOKEEPER_CLIENT_PORT: 2181\n\n kafka:\n image: confluentinc/cp-kafka:7.7.0\n container_name: agenthub-kafka\n ports:\n - \"9092:9092\"\n environment:\n KAFKA_BROKER_ID: 1\n KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181\n KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://localhost:9092\n KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1\n depends_on:\n - zookeeper\n\n # ── Python API 服务 ───────────────────────────\n api:\n build:\n context: ./python\n dockerfile: Dockerfile\n container_name: agenthub-api\n ports:\n - \"8080:8080\"\n env_file:\n - ./python/.env\n depends_on:\n - neo4j\n - chromadb\n - kafka\n volumes:\n - ./python:/app\n - uploads:/app/uploads\n\nvolumes:\n neo4j_data:\n chroma_data:\n uploads:\n"}}}}