// the find
apecloud/ApeRAG
ApeRAG: Production-ready GraphRAG with multi-modal indexing, AI agents, MCP support, and scalable K8s deployment
ApeRAG is a Python-based RAG platform that combines vector search, full-text search, and graph-based retrieval (via a forked LightRAG) into one self-hosted system. It's aimed at teams who want to build knowledge-base chatbots or document Q&A without stitching together five separate services themselves. The scope is genuinely ambitious: five index types, MCP server, multimodal parsing, Celery task queue, and Kubernetes Helm charts.
The LightRAG fork is the most interesting part — they've added entity normalization (merging duplicate nodes in the knowledge graph), distributed Celery task processing, and stateless operation, which are real production concerns that the upstream project sidesteps. The flow engine (aperag/flow/) lets you wire retrieval steps as a YAML DAG, which is more honest than hiding the retrieval pipeline behind magic. MCP support is first-class and the server implementation looks complete, not bolted on. Kubernetes deployment uses KubeBlocks for the dependency stack (Postgres, Redis, Qdrant, Elasticsearch, Neo4j), which is a concrete time-saver over writing five StatefulSet manifests yourself.
The dependency footprint is brutal: Postgres, Redis, Qdrant, Elasticsearch, and Neo4j all running simultaneously just to index documents. That's five databases for one application, and the minimum Docker Compose spec requires 4 GiB RAM before you even load a document. The test coverage looks thin — the test files visible in the tree are mostly in flow/ and evaluation/, and the CI workflows suggest more e2e than unit coverage, which means you'll discover breakage at integration time. LightRAG is vendored as a full copy inside aperag/graph/lightrag/ rather than as a tracked fork, so upstream security fixes and improvements won't flow in automatically. The last push was May 2026 but migration timestamps run to March 2026, suggesting the schema is changing fast and upgrading between versions without data loss may be adventurous.