LightRAG/docker-compose.all-in-one.yml
Taddeus 4d9342c8e1 Cleans up documentation and deployment scripts for consistency
Removes trailing whitespace and fixes minor formatting issues in Kubernetes deployment docs, storage report, and Helm chart files.

Standardizes indentation and spacing in Docker Compose and deployment shell scripts to improve readability and maintainability.

These edits improve documentation clarity and make deployment scripts more robust without altering functionality.

Relates to MLO-469
2025-11-03 14:23:16 +02:00

148 lines
3.6 KiB
YAML

version: '3.8'
# Docker All-in-One Stack
# Neo4j + Qdrant + Redis + MongoDB
# Best for: Containerized deployments, cloud environments
services:
# LightRAG Application
lightrag:
image: ghcr.io/hkuds/lightrag:latest
container_name: lightrag-aio
env_file:
- .env
environment:
# All-in-One Storage Configuration
LIGHTRAG_GRAPH_STORAGE: Neo4JStorage
LIGHTRAG_VECTOR_STORAGE: QdrantVectorDBStorage
LIGHTRAG_KV_STORAGE: RedisKVStorage
LIGHTRAG_DOC_STATUS_STORAGE: MongoDocStatusStorage
# Service Connection Details
NEO4J_URI: bolt://neo4j:7687
NEO4J_USERNAME: neo4j
NEO4J_PASSWORD: lightrag_neo4j_pass
QDRANT_URL: http://qdrant:6333
REDIS_URI: redis://redis:6379
MONGO_URI: mongodb://lightrag_user:lightrag_pass@mongodb:27017/lightrag?authSource=admin
MONGO_DATABASE: lightrag
# Performance settings
MAX_ASYNC: 6
MAX_TOKENS: 32768
ENABLE_LLM_CACHE: true
ENABLE_LLM_CACHE_FOR_EXTRACT: true
ports:
- "9621:9621"
depends_on:
mongodb:
condition: service_healthy
redis:
condition: service_healthy
neo4j:
condition: service_started
qdrant:
condition: service_healthy
volumes:
- ./data/inputs:/app/inputs
- ./data/rag_storage:/app/rag_storage
networks:
- lightrag-aio-network
restart: unless-stopped
# MongoDB for Document Status Storage
mongodb:
image: mongo:7
container_name: lightrag-aio-mongodb
environment:
MONGO_INITDB_ROOT_USERNAME: admin
MONGO_INITDB_ROOT_PASSWORD: admin_pass
MONGO_INITDB_DATABASE: lightrag
ports:
- "27017:27017"
volumes:
- mongodb_data:/data/db
- ./mongo-init-aio:/docker-entrypoint-initdb.d
healthcheck:
test: ["CMD", "mongosh", "--eval", "db.runCommand('ping').ok", "--quiet"]
interval: 10s
timeout: 5s
retries: 5
networks:
- lightrag-aio-network
restart: unless-stopped
# Redis for KV Storage
redis:
image: redis:7-alpine
container_name: lightrag-aio-redis
command: redis-server --appendonly yes --maxmemory 1gb --maxmemory-policy allkeys-lru
ports:
- "6379:6379"
volumes:
- redis_data:/data
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 10s
timeout: 5s
retries: 5
networks:
- lightrag-aio-network
restart: unless-stopped
# Neo4j for Graph Storage
neo4j:
image: neo4j:5.15
container_name: lightrag-aio-neo4j
environment:
NEO4J_AUTH: neo4j/lightrag_neo4j_pass
NEO4J_PLUGINS: '["apoc"]'
NEO4J_dbms_security_procedures_unrestricted: apoc.*
NEO4J_dbms_memory_heap_initial__size: 512M
NEO4J_dbms_memory_heap_max__size: 1G
NEO4J_dbms_memory_pagecache_size: 512M
ports:
- "7474:7474"
- "7687:7687"
volumes:
- neo4j_data:/data
- neo4j_logs:/logs
networks:
- lightrag-aio-network
restart: unless-stopped
# Qdrant Vector Database
qdrant:
image: qdrant/qdrant:latest
container_name: lightrag-aio-qdrant
environment:
QDRANT__SERVICE__HTTP_PORT: 6333
QDRANT__SERVICE__GRPC_PORT: 6334
QDRANT__LOG_LEVEL: INFO
ports:
- "6333:6333"
- "6334:6334"
volumes:
- qdrant_data:/qdrant/storage
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:6333/health"]
interval: 30s
timeout: 20s
retries: 3
networks:
- lightrag-aio-network
restart: unless-stopped
volumes:
mongodb_data:
redis_data:
neo4j_data:
neo4j_logs:
qdrant_data:
networks:
lightrag-aio-network:
driver: bridge