Data Storage Architecture
Cognee operates on a three-tier data storage model, each optimized for specific data types and query patterns:Graph Database
Relationships & EntitiesStores knowledge graph structure, entity relationships, and semantic connections.
Vector Database
Embeddings & SearchHandles semantic embeddings for similarity search and content retrieval.
Relational Database
Metadata & StateManages datasets, user permissions, pipeline state, and operational data.
Each storage layer can be deployed as managed services, self-hosted servers, or file-based systems (like S3 buckets), giving you complete flexibility over your infrastructure.
Deployment Options
Choose the deployment strategy that matches your requirements:- Development
- Production
- Hybrid
Local & Testing
- Docker: Containerized local deployment with embedded databases
- MCP: Direct integration with code editors and IDEs
- File-based: SQLite, local files, and embedded vector stores
Storage Configuration Examples
Local Development
Local Development
Embedded & File-based
Cloud Production
Cloud Production
Managed Services
Hybrid S3
Hybrid S3
S3 + Managed Databases
Migrating to Another Instance
Migrating to Another Instance
Cognee stores all persistent data under See Graph Stores and Vector Stores for all supported external providers.
SYSTEM_ROOT_DIRECTORY (default: .cognee_system). There is no dedicated export API; migration works by either copying the database files or switching to shared external databases.- Option 1: Copy database files
Stop Cognee on the source instance, copy the File paths inside
databases/ folder to the destination, then set SYSTEM_ROOT_DIRECTORY to the new path:databases/:cognee_graph_kuzu— Kuzu graph databasecognee.lancedb— LanceDB vector storecognee_db— SQLite relational database
Quick Start Guide
Deployment Methods
Docker Deployment
Local & ServerStart Cognee with optional databases using compose profiles.
Modal Deployment
Serverless & Auto-scalingPerfect for variable workloads with automatic resource management.
Kubernetes (Helm)
Enterprise & ProductionContainer orchestration with full control and high availability.
EC2 Deployment
Traditional CloudStandard server deployment with custom configurations.
Self-hosted vs Cognee Cloud
Cognee can run fully self-hosted without Cognee Cloud. The open-source package works as an embedded Python SDK, a Docker/Compose service, or a server deployment on Modal, Kubernetes, or a VM.| Self-hosted open source | Cognee Cloud | |
|---|---|---|
| Account | Not required | Required |
| Infrastructure | Your laptop, server, VPC, or cloud account | Managed by Cognee |
| Data location | Your configured local or external databases | Cognee-managed storage |
| Best for | Custom infrastructure, air-gapped environments, full control | Hosted UI, collaboration, and lower operations burden |
cognee.serve() can point the local SDK at Cognee Cloud or at your own self-hosted API backend; it does not copy local datasets by itself. To move an already-built local graph, use cognee.push().
Self-hosted data is organized by datasets, not Cloud projects. Without Cognee Cloud, datasets live in the storage backends you configure, such as local Kuzu/LanceDB/SQLite files, a Modal persistent volume, or external Postgres, Neo4j, Qdrant, and related services.
Architecture Benefits
Cost Optimization: Use file-based storage (S3) for archival data and managed services for active workloads.
Need Help?
Join Our Community
Get deployment support, share configurations, and connect with other Cognee users.