Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
105 changes: 85 additions & 20 deletions .env.example
Original file line number Diff line number Diff line change
@@ -1,39 +1,104 @@
# Example environment file for Docker
# Copy this to .env and fill in your actual values
# ==============================================
# API MCP RAGAnything - Configuration
# ==============================================

# OpenRouter API Configuration
OPEN_ROUTER_API_KEY=your_openrouter_api_key_here
# ==============================================
# LLM CONFIGURATION (GENERIC - Multiple Providers)
# ==============================================
# Supported bindings: openai, ollama, azure, gemini, lollms
LLM_BINDING=openai
LLM_API_KEY=your_api_key_here
LLM_BASE_URL=https://api.openai.com/v1
LLM_MODEL_NAME=gpt-4o-mini

# Legacy support (deprecated - for backward compatibility with OpenRouter)
# Use LLM_API_KEY and LLM_BASE_URL instead
OPEN_ROUTER_API_KEY=
OPEN_ROUTER_API_URL=https://openrouter.ai/api/v1

# PostgreSQL Configuration (matches docker-compose service)
# ==============================================
# EMBEDDING CONFIGURATION
# ==============================================
EMBEDDING_BINDING=openai
EMBEDDING_MODEL=text-embedding-3-small
EMBEDDING_DIM=1536
MAX_TOKEN_SIZE=8192

# ==============================================
# VISION MODEL CONFIGURATION
# ==============================================
VISION_MODEL=gpt-4o

# ==============================================
# STORAGE CONFIGURATION (4 TYPES - CRITICAL)
# ==============================================

# 1. VECTOR STORAGE (for embeddings)
VECTOR_STORAGE_TYPE=pgvector # Options: pgvector, qdrant, milvus, local

# 2. GRAPH STORAGE (for knowledge graph - CRITICAL)
GRAPH_STORAGE_TYPE=postgres # Options: postgres, neo4j, networkx, memgraph

# 3. KV STORAGE (for LLM cache, chunks, documents)
KV_STORAGE_TYPE=postgres # Options: postgres, redis, mongo, json

# 4. DOC STATUS STORAGE (for document processing status)
DOC_STATUS_STORAGE_TYPE=postgres # Options: postgres, mongo, json

# ==============================================
# POSTGRESQL CONFIGURATION
# ==============================================
POSTGRES_USER=raganything
POSTGRES_PASSWORD=raganything
POSTGRES_DATABASE=raganything
POSTGRES_HOST=postgres
POSTGRES_PORT=5432

# Model Configuration
CHAT_MODEL=openai/gpt-4o-mini
EMBEDDING_MODEL=text-embedding-3-small
EMBEDDING_DIM=1536
MAX_TOKEN_SIZE=8192
VISION_MODEL=openai/gpt-4o
# Vector Index Configuration (for PGVector)
VECTOR_INDEX_TYPE=HNSW # Options: HNSW, IVFFLAT
HNSW_M=16
HNSW_EF=64

# ==============================================
# QDRANT CONFIGURATION (if VECTOR_STORAGE_TYPE=qdrant)
# ==============================================
QDRANT_URL=http://localhost:6333
QDRANT_API_KEY= # Optional

# Data Processing Configuration
# ==============================================
# NEO4J CONFIGURATION (if GRAPH_STORAGE_TYPE=neo4j)
# ==============================================
NEO4J_URI=bolt://localhost:7687
NEO4J_USERNAME=neo4j
NEO4J_PASSWORD=your_neo4j_password

# ==============================================
# REDIS CONFIGURATION (if KV_STORAGE_TYPE=redis)
# ==============================================
REDIS_URI=redis://localhost:6379

# ==============================================
# RAG PROCESSING CONFIGURATION
# ==============================================
COSINE_THRESHOLD=0.2
MAX_CONCURRENT_FILES=1
MAX_WORKERS=3
ENABLE_IMAGE_PROCESSING=True
ENABLE_TABLE_PROCESSING=True
ENABLE_EQUATION_PROCESSING=True

# LightRAG Configuration
RAG_STORAGE_TYPE=postgres # Options: 'postgres', 'local'
COSINE_THRESHOLD=0.2
MAX_CONCURRENT_FILES=1
MAX_WORKERS=1
# Legacy (deprecated - use VECTOR_STORAGE_TYPE instead)
RAG_STORAGE_TYPE=postgres

# Server Configuration
MCP_TRANSPORT=sse
ALLOWED_ORIGINS=["*"]
# ==============================================
# SERVER CONFIGURATION
# ==============================================
MCP_TRANSPORT=sse # Options: stdio, sse, streamable
HOST=0.0.0.0
PORT=8000
ALLOWED_ORIGINS=["*"]

# ==============================================
# LIGHTRAG PROXY CONFIGURATION
# ==============================================
LIGHTRAG_API_URL=http://localhost:9621
81 changes: 63 additions & 18 deletions .env.lightrag.server.example
Original file line number Diff line number Diff line change
@@ -1,30 +1,75 @@
# Light RAG Server Configuration
# ==============================================
# LIGHTRAG SERVER CONFIGURATION
# ==============================================
PORT=9621

# PostgreSQL Configuration (matches docker-compose service)
# ==============================================
# LLM CONFIGURATION (GENERIC - Multiple Providers)
# ==============================================
# Supported bindings: openai, ollama, azure, gemini, lollms
LLM_BINDING=openai
LLM_MODEL=gpt-4o-mini
LLM_BINDING_HOST=https://api.openai.com/v1
LLM_BINDING_API_KEY=your_api_key_here

# ==============================================
# EMBEDDING CONFIGURATION
# ==============================================
EMBEDDING_BINDING=openai
EMBEDDING_BINDING_HOST=https://api.openai.com/v1
EMBEDDING_MODEL=text-embedding-3-small
OPENAI_API_KEY=your_api_key_here # For embeddings

# ==============================================
# STORAGE CONFIGURATION (4 TYPES - CRITICAL)
# ==============================================

# 1. VECTOR STORAGE (for embeddings)
LIGHTRAG_VECTOR_STORAGE=PGVectorStorage
# Options: PGVectorStorage, QdrantVectorDBStorage, MilvusVectorDBStorage, NanoVectorDBStorage

# 2. GRAPH STORAGE (for knowledge graph - CRITICAL)
LIGHTRAG_GRAPH_STORAGE=PGGraphStorage
# Options: PGGraphStorage, Neo4JStorage, NetworkXStorage, MemgraphStorage

# 3. KV STORAGE (for LLM cache, chunks, documents)
LIGHTRAG_KV_STORAGE=PGKVStorage
# Options: PGKVStorage, RedisKVStorage, MongoKVStorage, JsonKVStorage

# 4. DOC STATUS STORAGE (for document processing status)
LIGHTRAG_DOC_STATUS_STORAGE=PGDocStatusStorage
# Options: PGDocStatusStorage, MongoDocStatusStorage, JsonDocStatusStorage

# ==============================================
# POSTGRESQL CONFIGURATION
# ==============================================
POSTGRES_USER=raganything
POSTGRES_PASSWORD=raganything
POSTGRES_DATABASE=raganything
POSTGRES_HOST=postgres
POSTGRES_PORT=5432

# LLM Configuration
LLM_BINDING=openai
LLM_MODEL=gpt-4o-mini
LLM_BINDING_HOST=https://openrouter.ai/api/v1
LLM_BINDING_API_KEY=apikey
# ==============================================
# QDRANT CONFIGURATION (if using QdrantVectorDBStorage)
# ==============================================
QDRANT_URL=http://qdrant:6333
QDRANT_API_KEY= # Optional

# Embedding Configuration (avec Ollama)
EMBEDDING_BINDING=openai
EMBEDDING_BINDING_HOST=https://openrouter.ai/api/v1
EMBEDDING_MODEL=text-embedding-3-small
OPENAI_API_KEY=apikey
# Settings
# ==============================================
# NEO4J CONFIGURATION (if using Neo4JStorage or MemgraphStorage)
# ==============================================
NEO4J_URI=bolt://neo4j:7687
NEO4J_USERNAME=neo4j
NEO4J_PASSWORD=your_neo4j_password

# ==============================================
# REDIS CONFIGURATION (if using RedisKVStorage)
# ==============================================
REDIS_URI=redis://redis:6379

# ==============================================
# PERFORMANCE SETTINGS
# ==============================================
TIMEOUT=150
MAX_ASYNC=4
MAX_PARALLEL_INSERT=2

LIGHTRAG_KV_STORAGE=PGKVStorage
LIGHTRAG_VECTOR_STORAGE=PGVectorStorage
LIGHTRAG_GRAPH_STORAGE=PGGraphStorage
LIGHTRAG_DOC_STATUS_STORAGE=PGDocStatusStorage
1 change: 1 addition & 0 deletions .python-version
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
3.13.7
6 changes: 5 additions & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,11 @@ ENV PYTHONPATH=/app/src:$PYTHONPATH
ENV PATH="/app/.venv/bin:$PATH"

# Create non-root user for security
RUN useradd -m -u 1000 appuser && chown -R appuser:appuser /app
RUN useradd -m -u 1000 appuser && \
chown -R appuser:appuser /app && \
mkdir -p /app/ragdata && \
chown -R appuser:appuser /app/ragdata

USER appuser

# Expose port
Expand Down
18 changes: 17 additions & 1 deletion Dockerfile.lightrag
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,16 @@ FROM ghcr.io/astral-sh/uv:python3.13-bookworm-slim AS builder

WORKDIR /app

# Install build dependencies for numpy and other C extensions
RUN apt-get update && apt-get install -y \
build-essential \
gcc \
g++ \
gfortran \
libopenblas-dev \
liblapack-dev \
&& rm -rf /var/lib/apt/lists/*

# Install lightrag-hku with API extras
RUN uv pip install --system "lightrag-hku[api]"

Expand All @@ -12,6 +22,8 @@ FROM python:3.13-slim-bookworm

RUN apt-get update && apt-get install -y \
libgomp1 \
libopenblas0 \
libgfortran5 \
curl \
&& rm -rf /var/lib/apt/lists/*

Expand All @@ -22,7 +34,11 @@ COPY --from=builder /usr/local/lib/python3.13/site-packages /usr/local/lib/pytho
COPY --from=builder /usr/local/bin/lightrag-server /usr/local/bin/lightrag-server

# Create non-root user
RUN useradd -m -u 1000 appuser && chown -R appuser:appuser /app
RUN useradd -m -u 1000 appuser && \
chown -R appuser:appuser /app && \
mkdir -p /app/ragdata && \
chown -R appuser:appuser /app/ragdata

USER appuser

EXPOSE 9621
Expand Down
Loading