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
This commit is contained in:
parent
81dff560f1
commit
4d9342c8e1
20 changed files with 92 additions and 92 deletions
|
|
@ -26,17 +26,17 @@ graph TD
|
||||||
E[Secrets & API Keys]
|
E[Secrets & API Keys]
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
F[Helm Chart Management]
|
F[Helm Chart Management]
|
||||||
G[External Access]
|
G[External Access]
|
||||||
H[OpenAI API]
|
H[OpenAI API]
|
||||||
|
|
||||||
F --> A
|
F --> A
|
||||||
F --> B
|
F --> B
|
||||||
A --> B
|
A --> B
|
||||||
A --> H
|
A --> H
|
||||||
C --> G
|
C --> G
|
||||||
|
|
||||||
style A fill:#e1f5fe
|
style A fill:#e1f5fe
|
||||||
style B fill:#f3e5f5
|
style B fill:#f3e5f5
|
||||||
style F fill:#e8f5e8
|
style F fill:#e8f5e8
|
||||||
|
|
@ -102,7 +102,7 @@ kubectl wait --namespace lightrag \
|
||||||
-l app.kubernetes.io/name=postgresql \
|
-l app.kubernetes.io/name=postgresql \
|
||||||
--timeout=120s
|
--timeout=120s
|
||||||
|
|
||||||
# Wait for LightRAG to be ready
|
# Wait for LightRAG to be ready
|
||||||
kubectl wait --namespace lightrag \
|
kubectl wait --namespace lightrag \
|
||||||
--for=condition=ready pod \
|
--for=condition=ready pod \
|
||||||
-l app.kubernetes.io/name=lightrag-minimal \
|
-l app.kubernetes.io/name=lightrag-minimal \
|
||||||
|
|
@ -130,7 +130,7 @@ kubectl port-forward --namespace lightrag svc/lightrag-minimal 9621:9621 &
|
||||||
# - Secure passwords
|
# - Secure passwords
|
||||||
# - Resource limits based on your needs
|
# - Resource limits based on your needs
|
||||||
|
|
||||||
# Substitute environment variables
|
# Substitute environment variables
|
||||||
envsubst < values-prod.yaml > values-prod-final.yaml
|
envsubst < values-prod.yaml > values-prod-final.yaml
|
||||||
|
|
||||||
# Deploy with production configuration
|
# Deploy with production configuration
|
||||||
|
|
@ -187,7 +187,7 @@ ingress:
|
||||||
enabled: false
|
enabled: false
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Production (values-prod.yaml)
|
#### Production (values-prod.yaml)
|
||||||
```yaml
|
```yaml
|
||||||
# Production resources
|
# Production resources
|
||||||
resources:
|
resources:
|
||||||
|
|
@ -262,7 +262,7 @@ curl http://localhost:9621/documents
|
||||||
# LightRAG logs
|
# LightRAG logs
|
||||||
kubectl logs --namespace lightrag -l app.kubernetes.io/name=lightrag-minimal -f
|
kubectl logs --namespace lightrag -l app.kubernetes.io/name=lightrag-minimal -f
|
||||||
|
|
||||||
# PostgreSQL logs
|
# PostgreSQL logs
|
||||||
kubectl logs --namespace lightrag -l app.kubernetes.io/name=postgresql -f
|
kubectl logs --namespace lightrag -l app.kubernetes.io/name=postgresql -f
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
@ -302,7 +302,7 @@ python load_docs.py /path/to/docs --no-test
|
||||||
- Example: `[DC] getting-started/installation.md`
|
- Example: `[DC] getting-started/installation.md`
|
||||||
|
|
||||||
**URLs Mode:**
|
**URLs Mode:**
|
||||||
- Uses live website URLs in query response references
|
- Uses live website URLs in query response references
|
||||||
- Provides clickable links in responses
|
- Provides clickable links in responses
|
||||||
- Better user experience with direct access to source material
|
- Better user experience with direct access to source material
|
||||||
- Example: `[DC] https://docs.apolo.us/index/getting-started/installation`
|
- Example: `[DC] https://docs.apolo.us/index/getting-started/installation`
|
||||||
|
|
@ -321,7 +321,7 @@ docs/guides/deployment.md → https://docs.example.com/guides/deployme
|
||||||
|
|
||||||
**Setup Instructions:**
|
**Setup Instructions:**
|
||||||
1. **Analyze your docs site URLs** - Note the exact path structure
|
1. **Analyze your docs site URLs** - Note the exact path structure
|
||||||
2. **Create matching directories** - Mirror the URL structure locally
|
2. **Create matching directories** - Mirror the URL structure locally
|
||||||
3. **Place files correctly** - Remove `.md` from URL paths to match filenames
|
3. **Place files correctly** - Remove `.md` from URL paths to match filenames
|
||||||
4. **Test URLs** - Verify a few links work before loading documents
|
4. **Test URLs** - Verify a few links work before loading documents
|
||||||
|
|
||||||
|
|
@ -329,7 +329,7 @@ This ensures generated URLs in query responses are valid and clickable.
|
||||||
|
|
||||||
### Loader Features
|
### Loader Features
|
||||||
|
|
||||||
- **Simple dependencies**: Only requires `httpx`
|
- **Simple dependencies**: Only requires `httpx`
|
||||||
- **Automatic discovery**: Finds all `.md` files recursively
|
- **Automatic discovery**: Finds all `.md` files recursively
|
||||||
- **Basic metadata**: Adds title, path, and source information
|
- **Basic metadata**: Adds title, path, and source information
|
||||||
- **Progress tracking**: Shows loading progress with success/failure counts
|
- **Progress tracking**: Shows loading progress with success/failure counts
|
||||||
|
|
@ -455,7 +455,7 @@ kubectl port-forward --namespace lightrag svc/lightrag-minimal 9621:9621
|
||||||
## 🎯 Advantages of This Approach
|
## 🎯 Advantages of This Approach
|
||||||
|
|
||||||
✅ **Pure Helm** - No manual kubectl apply commands
|
✅ **Pure Helm** - No manual kubectl apply commands
|
||||||
✅ **Integrated PostgreSQL** - Bitnami chart handles all PostgreSQL complexity
|
✅ **Integrated PostgreSQL** - Bitnami chart handles all PostgreSQL complexity
|
||||||
✅ **pgvector Support** - Automatic extension creation via initdb scripts
|
✅ **pgvector Support** - Automatic extension creation via initdb scripts
|
||||||
✅ **Environment Flexibility** - Separate values files for dev/prod
|
✅ **Environment Flexibility** - Separate values files for dev/prod
|
||||||
✅ **Production Ready** - Built-in scaling, security, monitoring hooks
|
✅ **Production Ready** - Built-in scaling, security, monitoring hooks
|
||||||
|
|
@ -503,4 +503,4 @@ This deployment process has been thoroughly validated through complete teardown
|
||||||
📊 Documentation: Ready for loading with included loader script
|
📊 Documentation: Ready for loading with included loader script
|
||||||
```
|
```
|
||||||
|
|
||||||
This approach provides a production-ready, maintainable solution for deploying LightRAG to any Kubernetes cluster with confidence in its reliability and repeatability.
|
This approach provides a production-ready, maintainable solution for deploying LightRAG to any Kubernetes cluster with confidence in its reliability and repeatability.
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@
|
||||||
|
|
||||||
LightRAG supports a modular storage architecture with 4 distinct storage types that can be mixed and matched:
|
LightRAG supports a modular storage architecture with 4 distinct storage types that can be mixed and matched:
|
||||||
- **Graph Storage**: Knowledge graph relationships
|
- **Graph Storage**: Knowledge graph relationships
|
||||||
- **Vector Storage**: Document embeddings
|
- **Vector Storage**: Document embeddings
|
||||||
- **KV Storage**: Key-value pairs and metadata
|
- **KV Storage**: Key-value pairs and metadata
|
||||||
- **Document Status Storage**: Document processing status
|
- **Document Status Storage**: Document processing status
|
||||||
|
|
||||||
|
|
@ -44,7 +44,7 @@ This report analyzes 25+ storage implementations across 8 database technologies
|
||||||
**Configuration:**
|
**Configuration:**
|
||||||
```yaml
|
```yaml
|
||||||
LIGHTRAG_KV_STORAGE: PGKVStorage
|
LIGHTRAG_KV_STORAGE: PGKVStorage
|
||||||
LIGHTRAG_VECTOR_STORAGE: PGVectorStorage
|
LIGHTRAG_VECTOR_STORAGE: PGVectorStorage
|
||||||
LIGHTRAG_DOC_STATUS_STORAGE: PGDocStatusStorage
|
LIGHTRAG_DOC_STATUS_STORAGE: PGDocStatusStorage
|
||||||
LIGHTRAG_GRAPH_STORAGE: PGGraphStorage # Requires AGE extension
|
LIGHTRAG_GRAPH_STORAGE: PGGraphStorage # Requires AGE extension
|
||||||
```
|
```
|
||||||
|
|
@ -175,7 +175,7 @@ LIGHTRAG_DOC_STATUS_STORAGE: MongoDocStatusStorage
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
LIGHTRAG_GRAPH_STORAGE: Neo4JStorage
|
LIGHTRAG_GRAPH_STORAGE: Neo4JStorage
|
||||||
LIGHTRAG_VECTOR_STORAGE: MilvusVectorDBStorage
|
LIGHTRAG_VECTOR_STORAGE: MilvusVectorDBStorage
|
||||||
LIGHTRAG_KV_STORAGE: RedisKVStorage
|
LIGHTRAG_KV_STORAGE: RedisKVStorage
|
||||||
LIGHTRAG_DOC_STATUS_STORAGE: PGDocStatusStorage
|
LIGHTRAG_DOC_STATUS_STORAGE: PGDocStatusStorage
|
||||||
```
|
```
|
||||||
|
|
@ -209,7 +209,7 @@ graph LR
|
||||||
```yaml
|
```yaml
|
||||||
LIGHTRAG_GRAPH_STORAGE: NetworkXStorage
|
LIGHTRAG_GRAPH_STORAGE: NetworkXStorage
|
||||||
LIGHTRAG_VECTOR_STORAGE: QdrantVectorDBStorage
|
LIGHTRAG_VECTOR_STORAGE: QdrantVectorDBStorage
|
||||||
LIGHTRAG_KV_STORAGE: RedisKVStorage
|
LIGHTRAG_KV_STORAGE: RedisKVStorage
|
||||||
LIGHTRAG_DOC_STATUS_STORAGE: PGDocStatusStorage
|
LIGHTRAG_DOC_STATUS_STORAGE: PGDocStatusStorage
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
@ -339,7 +339,7 @@ graph LR
|
||||||
|
|
||||||
### Vector Search Performance (Approximate)
|
### Vector Search Performance (Approximate)
|
||||||
| Implementation | Small (1K docs) | Medium (100K docs) | Large (1M+ docs) | Memory Usage |
|
| Implementation | Small (1K docs) | Medium (100K docs) | Large (1M+ docs) | Memory Usage |
|
||||||
|---------------|-----------------|--------------------|-----------------|--------------|
|
|---------------|-----------------|--------------------|-----------------|--------------|
|
||||||
| MilvusVectorDB | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | High |
|
| MilvusVectorDB | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | High |
|
||||||
| QdrantVectorDB | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ | Medium |
|
| QdrantVectorDB | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ | Medium |
|
||||||
| PGVectorStorage | ⭐⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐ | Medium |
|
| PGVectorStorage | ⭐⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐ | Medium |
|
||||||
|
|
@ -354,7 +354,7 @@ graph LR
|
||||||
| PGGraphStorage | ⭐⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐⭐ |
|
| PGGraphStorage | ⭐⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐⭐ |
|
||||||
| NetworkXStorage | ⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐ | ⭐⭐ |
|
| NetworkXStorage | ⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐ | ⭐⭐ |
|
||||||
|
|
||||||
### KV Operations Performance
|
### KV Operations Performance
|
||||||
| Implementation | Read Speed | Write Speed | Concurrency | Persistence |
|
| Implementation | Read Speed | Write Speed | Concurrency | Persistence |
|
||||||
|---------------|------------|-------------|-------------|-------------|
|
|---------------|------------|-------------|-------------|-------------|
|
||||||
| RedisKVStorage | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ |
|
| RedisKVStorage | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ |
|
||||||
|
|
@ -399,7 +399,7 @@ graph LR
|
||||||
|
|
||||||
### 📚 **Documentation/Knowledge Base**
|
### 📚 **Documentation/Knowledge Base**
|
||||||
- **Small (<10K docs)**: Development Stack
|
- **Small (<10K docs)**: Development Stack
|
||||||
- **Medium (<100K docs)**: Minimal Stack
|
- **Medium (<100K docs)**: Minimal Stack
|
||||||
- **Large (>100K docs)**: Balanced Stack
|
- **Large (>100K docs)**: Balanced Stack
|
||||||
|
|
||||||
### 🔬 **Research/Analytics**
|
### 🔬 **Research/Analytics**
|
||||||
|
|
@ -422,7 +422,7 @@ graph LR
|
||||||
The **Minimal Stack** (PostgreSQL + NetworkX) provides the best balance of performance, complexity, and cost for most use cases. It offers:
|
The **Minimal Stack** (PostgreSQL + NetworkX) provides the best balance of performance, complexity, and cost for most use cases. It offers:
|
||||||
|
|
||||||
- ✅ Production-ready reliability
|
- ✅ Production-ready reliability
|
||||||
- ✅ Reasonable performance for medium-scale deployments
|
- ✅ Reasonable performance for medium-scale deployments
|
||||||
- ✅ Low operational overhead
|
- ✅ Low operational overhead
|
||||||
- ✅ Clear upgrade path to specialized components
|
- ✅ Clear upgrade path to specialized components
|
||||||
|
|
||||||
|
|
@ -435,4 +435,4 @@ The modular architecture allows gradual optimization based on actual performance
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
*Report generated based on LightRAG v1.3.7 implementation analysis*
|
*Report generated based on LightRAG v1.3.7 implementation analysis*
|
||||||
|
|
|
||||||
|
|
@ -54,31 +54,31 @@ create_directories() {
|
||||||
deploy_stack() {
|
deploy_stack() {
|
||||||
local stack=$1
|
local stack=$1
|
||||||
local compose_file="docker-compose.${stack}.yml"
|
local compose_file="docker-compose.${stack}.yml"
|
||||||
|
|
||||||
if [ ! -f "$compose_file" ]; then
|
if [ ! -f "$compose_file" ]; then
|
||||||
print_error "Compose file $compose_file not found!"
|
print_error "Compose file $compose_file not found!"
|
||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
print_status "Deploying $stack stack..."
|
print_status "Deploying $stack stack..."
|
||||||
|
|
||||||
# Stop any existing containers
|
# Stop any existing containers
|
||||||
docker-compose -f "$compose_file" down 2>/dev/null || true
|
docker-compose -f "$compose_file" down 2>/dev/null || true
|
||||||
|
|
||||||
# Start the stack
|
# Start the stack
|
||||||
docker-compose -f "$compose_file" up -d
|
docker-compose -f "$compose_file" up -d
|
||||||
|
|
||||||
if [ $? -eq 0 ]; then
|
if [ $? -eq 0 ]; then
|
||||||
print_success "$stack stack deployed successfully!"
|
print_success "$stack stack deployed successfully!"
|
||||||
|
|
||||||
# Show running services
|
# Show running services
|
||||||
echo ""
|
echo ""
|
||||||
print_status "Running services:"
|
print_status "Running services:"
|
||||||
docker-compose -f "$compose_file" ps
|
docker-compose -f "$compose_file" ps
|
||||||
|
|
||||||
# Wait a bit for services to start
|
# Wait a bit for services to start
|
||||||
sleep 5
|
sleep 5
|
||||||
|
|
||||||
# Check LightRAG health
|
# Check LightRAG health
|
||||||
print_status "Checking LightRAG health..."
|
print_status "Checking LightRAG health..."
|
||||||
for i in {1..30}; do
|
for i in {1..30}; do
|
||||||
|
|
@ -93,7 +93,7 @@ deploy_stack() {
|
||||||
echo -n "."
|
echo -n "."
|
||||||
sleep 2
|
sleep 2
|
||||||
done
|
done
|
||||||
|
|
||||||
print_warning "LightRAG health check timed out. Check logs with:"
|
print_warning "LightRAG health check timed out. Check logs with:"
|
||||||
echo "docker-compose -f $compose_file logs lightrag"
|
echo "docker-compose -f $compose_file logs lightrag"
|
||||||
else
|
else
|
||||||
|
|
@ -106,12 +106,12 @@ deploy_stack() {
|
||||||
stop_stack() {
|
stop_stack() {
|
||||||
local stack=$1
|
local stack=$1
|
||||||
local compose_file="docker-compose.${stack}.yml"
|
local compose_file="docker-compose.${stack}.yml"
|
||||||
|
|
||||||
if [ ! -f "$compose_file" ]; then
|
if [ ! -f "$compose_file" ]; then
|
||||||
print_error "Compose file $compose_file not found!"
|
print_error "Compose file $compose_file not found!"
|
||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
print_status "Stopping $stack stack..."
|
print_status "Stopping $stack stack..."
|
||||||
docker-compose -f "$compose_file" down
|
docker-compose -f "$compose_file" down
|
||||||
print_success "$stack stack stopped"
|
print_success "$stack stack stopped"
|
||||||
|
|
@ -121,12 +121,12 @@ stop_stack() {
|
||||||
cleanup_stack() {
|
cleanup_stack() {
|
||||||
local stack=$1
|
local stack=$1
|
||||||
local compose_file="docker-compose.${stack}.yml"
|
local compose_file="docker-compose.${stack}.yml"
|
||||||
|
|
||||||
if [ ! -f "$compose_file" ]; then
|
if [ ! -f "$compose_file" ]; then
|
||||||
print_error "Compose file $compose_file not found!"
|
print_error "Compose file $compose_file not found!"
|
||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
print_warning "This will remove all data for $stack stack. Are you sure? (y/N)"
|
print_warning "This will remove all data for $stack stack. Are you sure? (y/N)"
|
||||||
read -r response
|
read -r response
|
||||||
if [[ "$response" =~ ^([yY][eE][sS]|[yY])$ ]]; then
|
if [[ "$response" =~ ^([yY][eE][sS]|[yY])$ ]]; then
|
||||||
|
|
@ -214,4 +214,4 @@ main() {
|
||||||
}
|
}
|
||||||
|
|
||||||
# Run main function with all arguments
|
# Run main function with all arguments
|
||||||
main "$@"
|
main "$@"
|
||||||
|
|
|
||||||
|
|
@ -17,19 +17,19 @@ services:
|
||||||
LIGHTRAG_VECTOR_STORAGE: QdrantVectorDBStorage
|
LIGHTRAG_VECTOR_STORAGE: QdrantVectorDBStorage
|
||||||
LIGHTRAG_KV_STORAGE: RedisKVStorage
|
LIGHTRAG_KV_STORAGE: RedisKVStorage
|
||||||
LIGHTRAG_DOC_STATUS_STORAGE: MongoDocStatusStorage
|
LIGHTRAG_DOC_STATUS_STORAGE: MongoDocStatusStorage
|
||||||
|
|
||||||
# Service Connection Details
|
# Service Connection Details
|
||||||
NEO4J_URI: bolt://neo4j:7687
|
NEO4J_URI: bolt://neo4j:7687
|
||||||
NEO4J_USERNAME: neo4j
|
NEO4J_USERNAME: neo4j
|
||||||
NEO4J_PASSWORD: lightrag_neo4j_pass
|
NEO4J_PASSWORD: lightrag_neo4j_pass
|
||||||
|
|
||||||
QDRANT_URL: http://qdrant:6333
|
QDRANT_URL: http://qdrant:6333
|
||||||
|
|
||||||
REDIS_URI: redis://redis:6379
|
REDIS_URI: redis://redis:6379
|
||||||
|
|
||||||
MONGO_URI: mongodb://lightrag_user:lightrag_pass@mongodb:27017/lightrag?authSource=admin
|
MONGO_URI: mongodb://lightrag_user:lightrag_pass@mongodb:27017/lightrag?authSource=admin
|
||||||
MONGO_DATABASE: lightrag
|
MONGO_DATABASE: lightrag
|
||||||
|
|
||||||
# Performance settings
|
# Performance settings
|
||||||
MAX_ASYNC: 6
|
MAX_ASYNC: 6
|
||||||
MAX_TOKENS: 32768
|
MAX_TOKENS: 32768
|
||||||
|
|
@ -145,4 +145,4 @@ volumes:
|
||||||
|
|
||||||
networks:
|
networks:
|
||||||
lightrag-aio-network:
|
lightrag-aio-network:
|
||||||
driver: bridge
|
driver: bridge
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
version: '3.8'
|
version: '3.8'
|
||||||
|
|
||||||
# Production Balanced Stack
|
# Production Balanced Stack
|
||||||
# NetworkX + Qdrant + Redis + PostgreSQL
|
# NetworkX + Qdrant + Redis + PostgreSQL
|
||||||
# Best for: Production deployments prioritizing simplicity
|
# Best for: Production deployments prioritizing simplicity
|
||||||
|
|
||||||
services:
|
services:
|
||||||
|
|
@ -17,18 +17,18 @@ services:
|
||||||
LIGHTRAG_VECTOR_STORAGE: QdrantVectorDBStorage
|
LIGHTRAG_VECTOR_STORAGE: QdrantVectorDBStorage
|
||||||
LIGHTRAG_KV_STORAGE: RedisKVStorage
|
LIGHTRAG_KV_STORAGE: RedisKVStorage
|
||||||
LIGHTRAG_DOC_STATUS_STORAGE: PGDocStatusStorage
|
LIGHTRAG_DOC_STATUS_STORAGE: PGDocStatusStorage
|
||||||
|
|
||||||
# Service Connection Details
|
# Service Connection Details
|
||||||
QDRANT_URL: http://qdrant:6333
|
QDRANT_URL: http://qdrant:6333
|
||||||
|
|
||||||
REDIS_URI: redis://redis:6379
|
REDIS_URI: redis://redis:6379
|
||||||
|
|
||||||
POSTGRES_HOST: postgres
|
POSTGRES_HOST: postgres
|
||||||
POSTGRES_PORT: 5432
|
POSTGRES_PORT: 5432
|
||||||
POSTGRES_USER: lightrag_user
|
POSTGRES_USER: lightrag_user
|
||||||
POSTGRES_PASSWORD: lightrag_pass
|
POSTGRES_PASSWORD: lightrag_pass
|
||||||
POSTGRES_DATABASE: lightrag
|
POSTGRES_DATABASE: lightrag
|
||||||
|
|
||||||
# Performance settings
|
# Performance settings
|
||||||
MAX_ASYNC: 6
|
MAX_ASYNC: 6
|
||||||
MAX_TOKENS: 32768
|
MAX_TOKENS: 32768
|
||||||
|
|
@ -119,4 +119,4 @@ volumes:
|
||||||
|
|
||||||
networks:
|
networks:
|
||||||
lightrag-balanced-network:
|
lightrag-balanced-network:
|
||||||
driver: bridge
|
driver: bridge
|
||||||
|
|
|
||||||
|
|
@ -17,14 +17,14 @@ services:
|
||||||
LIGHTRAG_VECTOR_STORAGE: NanoVectorDBStorage
|
LIGHTRAG_VECTOR_STORAGE: NanoVectorDBStorage
|
||||||
LIGHTRAG_KV_STORAGE: JsonKVStorage
|
LIGHTRAG_KV_STORAGE: JsonKVStorage
|
||||||
LIGHTRAG_DOC_STATUS_STORAGE: JsonDocStatusStorage
|
LIGHTRAG_DOC_STATUS_STORAGE: JsonDocStatusStorage
|
||||||
|
|
||||||
# Development settings
|
# Development settings
|
||||||
MAX_ASYNC: 2
|
MAX_ASYNC: 2
|
||||||
MAX_TOKENS: 16384
|
MAX_TOKENS: 16384
|
||||||
ENABLE_LLM_CACHE: true
|
ENABLE_LLM_CACHE: true
|
||||||
ENABLE_LLM_CACHE_FOR_EXTRACT: false
|
ENABLE_LLM_CACHE_FOR_EXTRACT: false
|
||||||
LOG_LEVEL: DEBUG
|
LOG_LEVEL: DEBUG
|
||||||
|
|
||||||
# No external database connections needed
|
# No external database connections needed
|
||||||
ports:
|
ports:
|
||||||
- "9621:9621"
|
- "9621:9621"
|
||||||
|
|
@ -78,4 +78,4 @@ volumes:
|
||||||
|
|
||||||
networks:
|
networks:
|
||||||
lightrag-dev-network:
|
lightrag-dev-network:
|
||||||
driver: bridge
|
driver: bridge
|
||||||
|
|
|
||||||
|
|
@ -17,23 +17,23 @@ services:
|
||||||
LIGHTRAG_VECTOR_STORAGE: MilvusVectorDBStorage
|
LIGHTRAG_VECTOR_STORAGE: MilvusVectorDBStorage
|
||||||
LIGHTRAG_KV_STORAGE: RedisKVStorage
|
LIGHTRAG_KV_STORAGE: RedisKVStorage
|
||||||
LIGHTRAG_DOC_STATUS_STORAGE: PGDocStatusStorage
|
LIGHTRAG_DOC_STATUS_STORAGE: PGDocStatusStorage
|
||||||
|
|
||||||
# Service Connection Details
|
# Service Connection Details
|
||||||
NEO4J_URI: bolt://neo4j:7687
|
NEO4J_URI: bolt://neo4j:7687
|
||||||
NEO4J_USERNAME: neo4j
|
NEO4J_USERNAME: neo4j
|
||||||
NEO4J_PASSWORD: lightrag_neo4j_pass
|
NEO4J_PASSWORD: lightrag_neo4j_pass
|
||||||
|
|
||||||
MILVUS_URI: http://milvus-standalone:19530
|
MILVUS_URI: http://milvus-standalone:19530
|
||||||
MILVUS_DB_NAME: lightrag
|
MILVUS_DB_NAME: lightrag
|
||||||
|
|
||||||
REDIS_URI: redis://redis:6379
|
REDIS_URI: redis://redis:6379
|
||||||
|
|
||||||
POSTGRES_HOST: postgres
|
POSTGRES_HOST: postgres
|
||||||
POSTGRES_PORT: 5432
|
POSTGRES_PORT: 5432
|
||||||
POSTGRES_USER: lightrag_user
|
POSTGRES_USER: lightrag_user
|
||||||
POSTGRES_PASSWORD: lightrag_pass
|
POSTGRES_PASSWORD: lightrag_pass
|
||||||
POSTGRES_DATABASE: lightrag
|
POSTGRES_DATABASE: lightrag
|
||||||
|
|
||||||
# Performance optimizations
|
# Performance optimizations
|
||||||
MAX_ASYNC: 8
|
MAX_ASYNC: 8
|
||||||
MAX_TOKENS: 32768
|
MAX_TOKENS: 32768
|
||||||
|
|
@ -196,4 +196,4 @@ volumes:
|
||||||
|
|
||||||
networks:
|
networks:
|
||||||
lightrag-hp-network:
|
lightrag-hp-network:
|
||||||
driver: bridge
|
driver: bridge
|
||||||
|
|
|
||||||
|
|
@ -53,4 +53,4 @@ volumes:
|
||||||
|
|
||||||
networks:
|
networks:
|
||||||
default:
|
default:
|
||||||
name: lightrag-minimal-network
|
name: lightrag-minimal-network
|
||||||
|
|
|
||||||
|
|
@ -1,2 +1,2 @@
|
||||||
-- Enable the vector extension for pgvector
|
-- Enable the vector extension for pgvector
|
||||||
CREATE EXTENSION IF NOT EXISTS vector;
|
CREATE EXTENSION IF NOT EXISTS vector;
|
||||||
|
|
|
||||||
|
|
@ -10,4 +10,4 @@ dependencies:
|
||||||
- name: postgresql
|
- name: postgresql
|
||||||
version: "~12.0.0"
|
version: "~12.0.0"
|
||||||
repository: "https://charts.bitnami.com/bitnami"
|
repository: "https://charts.bitnami.com/bitnami"
|
||||||
condition: postgresql.enabled
|
condition: postgresql.enabled
|
||||||
|
|
|
||||||
|
|
@ -66,11 +66,11 @@ env:
|
||||||
EMBEDDING_BINDING_HOST: "https://api.openai.com/v1"
|
EMBEDDING_BINDING_HOST: "https://api.openai.com/v1"
|
||||||
EMBEDDING_MODEL: "text-embedding-ada-002"
|
EMBEDDING_MODEL: "text-embedding-ada-002"
|
||||||
EMBEDDING_DIM: "1536"
|
EMBEDDING_DIM: "1536"
|
||||||
|
|
||||||
# Conservative concurrency (prevents API errors)
|
# Conservative concurrency (prevents API errors)
|
||||||
MAX_ASYNC: "4"
|
MAX_ASYNC: "4"
|
||||||
MAX_PARALLEL_INSERT: "2"
|
MAX_PARALLEL_INSERT: "2"
|
||||||
|
|
||||||
# LLM Configuration
|
# LLM Configuration
|
||||||
ENABLE_LLM_CACHE: "true"
|
ENABLE_LLM_CACHE: "true"
|
||||||
ENABLE_LLM_CACHE_FOR_EXTRACT: "true"
|
ENABLE_LLM_CACHE_FOR_EXTRACT: "true"
|
||||||
|
|
@ -207,7 +207,7 @@ python ../../../load_docs.py ../docs --endpoint http://localhost:9621
|
||||||
python ../../../load_docs.py ../apolo-copilot/docs/official-apolo-documentation/docs \
|
python ../../../load_docs.py ../apolo-copilot/docs/official-apolo-documentation/docs \
|
||||||
--mode urls --base-url https://docs.apolo.us/index/ --endpoint http://localhost:9621
|
--mode urls --base-url https://docs.apolo.us/index/ --endpoint http://localhost:9621
|
||||||
|
|
||||||
# Load custom documentation with URL references
|
# Load custom documentation with URL references
|
||||||
python ../../../load_docs.py /path/to/docs \
|
python ../../../load_docs.py /path/to/docs \
|
||||||
--mode urls --base-url https://your-docs.example.com/docs/ --endpoint http://localhost:9621
|
--mode urls --base-url https://your-docs.example.com/docs/ --endpoint http://localhost:9621
|
||||||
```
|
```
|
||||||
|
|
@ -241,7 +241,7 @@ docs/
|
||||||
|
|
||||||
**URL Mapping Rules:**
|
**URL Mapping Rules:**
|
||||||
- `.md` extension is removed from URLs
|
- `.md` extension is removed from URLs
|
||||||
- `README.md` files map to their directory URL
|
- `README.md` files map to their directory URL
|
||||||
- Subdirectories become URL path segments
|
- Subdirectories become URL path segments
|
||||||
- File and folder names should match URL slugs exactly
|
- File and folder names should match URL slugs exactly
|
||||||
|
|
||||||
|
|
@ -284,7 +284,7 @@ Both modes produce similar output with different reference formats:
|
||||||
```
|
```
|
||||||
|
|
||||||
**URLs Mode References:**
|
**URLs Mode References:**
|
||||||
```
|
```
|
||||||
### References
|
### References
|
||||||
- [DC] https://docs.apolo.us/index/getting-started/installation
|
- [DC] https://docs.apolo.us/index/getting-started/installation
|
||||||
- [KG] https://docs.apolo.us/index/administration/cluster-setup
|
- [KG] https://docs.apolo.us/index/administration/cluster-setup
|
||||||
|
|
@ -332,13 +332,13 @@ kubectl delete namespace lightrag
|
||||||
|
|
||||||
## Validated Features
|
## Validated Features
|
||||||
|
|
||||||
✅ **Pure Helm Deployment** - No manual kubectl apply commands needed
|
✅ **Pure Helm Deployment** - No manual kubectl apply commands needed
|
||||||
✅ **PostgreSQL with pgvector** - Automatic extension creation via proper image
|
✅ **PostgreSQL with pgvector** - Automatic extension creation via proper image
|
||||||
✅ **Environment Flexibility** - Separate dev/prod configurations
|
✅ **Environment Flexibility** - Separate dev/prod configurations
|
||||||
✅ **Document Loading** - Working API with `file_source` parameter
|
✅ **Document Loading** - Working API with `file_source` parameter
|
||||||
✅ **Conservative Concurrency** - Prevents OpenAI API rate limiting
|
✅ **Conservative Concurrency** - Prevents OpenAI API rate limiting
|
||||||
✅ **Health Monitoring** - Comprehensive health checks and status endpoints
|
✅ **Health Monitoring** - Comprehensive health checks and status endpoints
|
||||||
✅ **Persistent Storage** - Data survives pod restarts and cluster updates
|
✅ **Persistent Storage** - Data survives pod restarts and cluster updates
|
||||||
|
|
||||||
## Comparison with Docker Compose
|
## Comparison with Docker Compose
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,7 @@
|
||||||
{{- else }}
|
{{- else }}
|
||||||
# Start port forwarding (run in background):
|
# Start port forwarding (run in background):
|
||||||
kubectl port-forward --namespace {{ .Release.Namespace }} svc/{{ include "lightrag-minimal.fullname" . }} 9621:9621 &
|
kubectl port-forward --namespace {{ .Release.Namespace }} svc/{{ include "lightrag-minimal.fullname" . }} 9621:9621 &
|
||||||
|
|
||||||
🌐 Web UI: http://localhost:9621/webui
|
🌐 Web UI: http://localhost:9621/webui
|
||||||
📚 API Docs: http://localhost:9621/docs
|
📚 API Docs: http://localhost:9621/docs
|
||||||
🔍 Health Check: http://localhost:9621/health
|
🔍 Health Check: http://localhost:9621/health
|
||||||
|
|
@ -27,10 +27,10 @@
|
||||||
|
|
||||||
4. Load your documents:
|
4. Load your documents:
|
||||||
# Install httpx if needed: pip install httpx
|
# Install httpx if needed: pip install httpx
|
||||||
|
|
||||||
# Files mode (file path references) - Default
|
# Files mode (file path references) - Default
|
||||||
python ../../../load_docs.py /path/to/your/docs --endpoint http://localhost:9621
|
python ../../../load_docs.py /path/to/your/docs --endpoint http://localhost:9621
|
||||||
|
|
||||||
# URLs mode (website URL references) - Recommended for public docs
|
# URLs mode (website URL references) - Recommended for public docs
|
||||||
# Note: Local file structure must match your docs site URL structure
|
# Note: Local file structure must match your docs site URL structure
|
||||||
python ../../../load_docs.py /path/to/docs --mode urls \
|
python ../../../load_docs.py /path/to/docs --mode urls \
|
||||||
|
|
@ -39,7 +39,7 @@
|
||||||
5. Monitor your deployment:
|
5. Monitor your deployment:
|
||||||
# Check pods status
|
# Check pods status
|
||||||
kubectl get pods --namespace {{ .Release.Namespace }}
|
kubectl get pods --namespace {{ .Release.Namespace }}
|
||||||
|
|
||||||
# View logs
|
# View logs
|
||||||
kubectl logs --namespace {{ .Release.Namespace }} -l app.kubernetes.io/name={{ include "lightrag-minimal.name" . }} -f
|
kubectl logs --namespace {{ .Release.Namespace }} -l app.kubernetes.io/name={{ include "lightrag-minimal.name" . }} -f
|
||||||
|
|
||||||
|
|
@ -51,4 +51,4 @@ Configuration Summary:
|
||||||
🤖 LLM Model: {{ .Values.env.LLM_MODEL }}
|
🤖 LLM Model: {{ .Values.env.LLM_MODEL }}
|
||||||
📊 Concurrency: MAX_ASYNC={{ .Values.env.MAX_ASYNC }}, MAX_PARALLEL_INSERT={{ .Values.env.MAX_PARALLEL_INSERT }}
|
📊 Concurrency: MAX_ASYNC={{ .Values.env.MAX_ASYNC }}, MAX_PARALLEL_INSERT={{ .Values.env.MAX_PARALLEL_INSERT }}
|
||||||
|
|
||||||
📖 For detailed usage instructions, see the README.md in the chart directory.
|
📖 For detailed usage instructions, see the README.md in the chart directory.
|
||||||
|
|
|
||||||
|
|
@ -43,13 +43,13 @@ spec:
|
||||||
value: {{ .Values.env.HOST | quote }}
|
value: {{ .Values.env.HOST | quote }}
|
||||||
- name: PORT
|
- name: PORT
|
||||||
value: {{ .Values.env.PORT | quote }}
|
value: {{ .Values.env.PORT | quote }}
|
||||||
|
|
||||||
# Web UI configuration
|
# Web UI configuration
|
||||||
- name: WEBUI_TITLE
|
- name: WEBUI_TITLE
|
||||||
value: {{ .Values.env.WEBUI_TITLE | quote }}
|
value: {{ .Values.env.WEBUI_TITLE | quote }}
|
||||||
- name: WEBUI_DESCRIPTION
|
- name: WEBUI_DESCRIPTION
|
||||||
value: {{ .Values.env.WEBUI_DESCRIPTION | quote }}
|
value: {{ .Values.env.WEBUI_DESCRIPTION | quote }}
|
||||||
|
|
||||||
# LLM configuration
|
# LLM configuration
|
||||||
- name: LLM_BINDING
|
- name: LLM_BINDING
|
||||||
value: {{ .Values.env.LLM_BINDING | quote }}
|
value: {{ .Values.env.LLM_BINDING | quote }}
|
||||||
|
|
@ -62,7 +62,7 @@ spec:
|
||||||
secretKeyRef:
|
secretKeyRef:
|
||||||
name: {{ include "lightrag-minimal.secretName" . }}
|
name: {{ include "lightrag-minimal.secretName" . }}
|
||||||
key: llm-api-key
|
key: llm-api-key
|
||||||
|
|
||||||
# Embedding configuration
|
# Embedding configuration
|
||||||
- name: EMBEDDING_BINDING
|
- name: EMBEDDING_BINDING
|
||||||
value: {{ .Values.env.EMBEDDING_BINDING | quote }}
|
value: {{ .Values.env.EMBEDDING_BINDING | quote }}
|
||||||
|
|
@ -106,7 +106,7 @@ spec:
|
||||||
value: {{ .Values.env.LIGHTRAG_DOC_STATUS_STORAGE | quote }}
|
value: {{ .Values.env.LIGHTRAG_DOC_STATUS_STORAGE | quote }}
|
||||||
- name: LIGHTRAG_GRAPH_STORAGE
|
- name: LIGHTRAG_GRAPH_STORAGE
|
||||||
value: {{ .Values.env.LIGHTRAG_GRAPH_STORAGE | quote }}
|
value: {{ .Values.env.LIGHTRAG_GRAPH_STORAGE | quote }}
|
||||||
|
|
||||||
# PostgreSQL configuration
|
# PostgreSQL configuration
|
||||||
- name: POSTGRES_HOST
|
- name: POSTGRES_HOST
|
||||||
value: {{ include "lightrag-minimal.postgresqlHost" . | quote }}
|
value: {{ include "lightrag-minimal.postgresqlHost" . | quote }}
|
||||||
|
|
@ -123,7 +123,7 @@ spec:
|
||||||
value: {{ .Values.env.POSTGRES_DATABASE | quote }}
|
value: {{ .Values.env.POSTGRES_DATABASE | quote }}
|
||||||
- name: POSTGRES_WORKSPACE
|
- name: POSTGRES_WORKSPACE
|
||||||
value: {{ .Values.env.POSTGRES_WORKSPACE | quote }}
|
value: {{ .Values.env.POSTGRES_WORKSPACE | quote }}
|
||||||
|
|
||||||
{{- if .Values.healthCheck.enabled }}
|
{{- if .Values.healthCheck.enabled }}
|
||||||
livenessProbe:
|
livenessProbe:
|
||||||
httpGet:
|
httpGet:
|
||||||
|
|
@ -142,10 +142,10 @@ spec:
|
||||||
timeoutSeconds: 5
|
timeoutSeconds: 5
|
||||||
failureThreshold: 3
|
failureThreshold: 3
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
|
||||||
resources:
|
resources:
|
||||||
{{- toYaml .Values.resources | nindent 12 }}
|
{{- toYaml .Values.resources | nindent 12 }}
|
||||||
|
|
||||||
{{- if .Values.persistence.enabled }}
|
{{- if .Values.persistence.enabled }}
|
||||||
volumeMounts:
|
volumeMounts:
|
||||||
- name: rag-storage
|
- name: rag-storage
|
||||||
|
|
@ -153,7 +153,7 @@ spec:
|
||||||
- name: inputs
|
- name: inputs
|
||||||
mountPath: /app/inputs
|
mountPath: /app/inputs
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
|
||||||
{{- if .Values.persistence.enabled }}
|
{{- if .Values.persistence.enabled }}
|
||||||
volumes:
|
volumes:
|
||||||
- name: rag-storage
|
- name: rag-storage
|
||||||
|
|
@ -163,7 +163,7 @@ spec:
|
||||||
persistentVolumeClaim:
|
persistentVolumeClaim:
|
||||||
claimName: {{ include "lightrag-minimal.fullname" . }}-inputs
|
claimName: {{ include "lightrag-minimal.fullname" . }}-inputs
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
|
||||||
{{- with .Values.nodeSelector }}
|
{{- with .Values.nodeSelector }}
|
||||||
nodeSelector:
|
nodeSelector:
|
||||||
{{- toYaml . | nindent 8 }}
|
{{- toYaml . | nindent 8 }}
|
||||||
|
|
|
||||||
|
|
@ -29,4 +29,4 @@ spec:
|
||||||
type: Utilization
|
type: Utilization
|
||||||
averageUtilization: {{ .Values.autoscaling.targetMemoryUtilizationPercentage }}
|
averageUtilization: {{ .Values.autoscaling.targetMemoryUtilizationPercentage }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
|
|
||||||
|
|
@ -41,4 +41,4 @@ spec:
|
||||||
port:
|
port:
|
||||||
name: http
|
name: http
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
|
|
||||||
|
|
@ -32,4 +32,4 @@ spec:
|
||||||
{{- if .Values.persistence.inputs.storageClass }}
|
{{- if .Values.persistence.inputs.storageClass }}
|
||||||
storageClassName: {{ .Values.persistence.inputs.storageClass }}
|
storageClassName: {{ .Values.persistence.inputs.storageClass }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
|
|
||||||
|
|
@ -12,4 +12,4 @@ spec:
|
||||||
protocol: TCP
|
protocol: TCP
|
||||||
name: http
|
name: http
|
||||||
selector:
|
selector:
|
||||||
{{- include "lightrag-minimal.selectorLabels" . | nindent 4 }}
|
{{- include "lightrag-minimal.selectorLabels" . | nindent 4 }}
|
||||||
|
|
|
||||||
|
|
@ -9,4 +9,4 @@ metadata:
|
||||||
annotations:
|
annotations:
|
||||||
{{- toYaml . | nindent 4 }}
|
{{- toYaml . | nindent 4 }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
|
|
||||||
|
|
@ -51,4 +51,4 @@ spec:
|
||||||
secretName: {{ .secretName }}
|
secretName: {{ .secretName }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
|
|
||||||
|
|
@ -81,4 +81,4 @@ tolerations:
|
||||||
|
|
||||||
affinity: {}
|
affinity: {}
|
||||||
|
|
||||||
nodeSelector: {}
|
nodeSelector: {}
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue