Files
templates/blueprints/librechat/docker-compose.yml

110 lines
3.5 KiB
YAML

# LibreChat Docker Compose for Dokploy Template
# Setting up authentication: "npm run create-user", refer to https://www.librechat.ai/docs/configuration/authentication
services:
librechat:
image: ghcr.io/danny-avila/librechat-dev:latest
restart: always
depends_on:
- mongodb
- rag_api
environment:
# Server Configuration
- HOST=0.0.0.0
- PORT=${PORT:-3080}
# Domain Configuration
- DOMAIN_CLIENT=${DOMAIN_CLIENT}
- DOMAIN_SERVER=${DOMAIN_SERVER}
# Database and Search Configuration
- MONGO_URI=mongodb://mongodb:27017/LibreChat
- MEILI_HOST=http://meilisearch:7700
- SEARCH=true
- NO_INDEX=true
- MEILI_NO_ANALYTICS=true
- MEILI_MASTER_KEY=${MEILI_MASTER_KEY}
# Security & Sessions
- JWT_SECRET=${JWT_SECRET}
- JWT_REFRESH_SECRET=${JWT_REFRESH_SECRET}
- CREDS_KEY=${CREDS_KEY}
- CREDS_IV=${CREDS_IV}
- RAG_PORT=${RAG_PORT:-8000}
- RAG_API_URL=http://rag_api:${RAG_PORT:-8000}
# API Keys and Secrets
- OPENAI_API_KEY=${OPENAI_API_KEY}
- ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY}
- OPENROUTER_KEY=${OPENROUTER_KEY}
- GOOGLE_KEY=${GOOGLE_KEY}
- ENDPOINTS=google,openAI,assistants,azureOpenAI,anthropic
# ... Additional Endpoints
# UI
- APP_TITLE=${APP_TITLE:-LibreChat}
- CUSTOM_FOOTER=${CUSTOM_FOOTER:-Made with ❤️ by LibreChat}
- ALLOW_EMAIL_LOGIN=${ALLOW_EMAIL_LOGIN:-true}
- ALLOW_SOCIAL_LOGIN=${ALLOW_SOCIAL_LOGIN:-false}
- ALLOW_REGISTRATION=${ALLOW_REGISTRATION:-false}
volumes:
- type: bind
source: ../files/librechat.yaml
target: /app/librechat.yaml
- librechat_data:/app/client/public/images
- librechat_data:/app/uploads
- librechat_data:/app/logs
mongodb:
image: mongo
restart: always
volumes:
- mongo_data:/data/db
command: mongod --noauth
meilisearch:
image: getmeili/meilisearch:v1.12.3
restart: always
environment:
- MEILI_HOST=http://meilisearch:7700
- MEILI_NO_ANALYTICS=true
- MEILI_MASTER_KEY=${MEILI_MASTER_KEY}
volumes:
- meili_data:/meili_data
vectordb:
image: pgvector/pgvector:0.8.0-pg15-trixie
environment:
- POSTGRES_DB=${POSTGRES_DB:-mydatabase}
- POSTGRES_USER=${POSTGRES_USER:-myuser}
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD:-mypassword}
restart: always
volumes:
- postgres_data:/var/lib/postgresql/data
rag_api:
image: ghcr.io/danny-avila/librechat-rag-api-dev-lite:latest
environment:
- DB_HOST=vectordb
- VECTOR_DB_TYPE=pgvector
- POSTGRES_DB=${POSTGRES_DB:-mydatabase}
- POSTGRES_USER=${POSTGRES_USER:-myuser}
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD:-mypassword}
- RAG_PORT=${RAG_PORT:-8000}
- OPENAI_API_KEY=${OPENAI_API_KEY}
- RAG_OPENAI_API_KEY=${RAG_OPENAI_API_KEY}
- GOOGLE_KEY=${GOOGLE_KEY}
- RAG_GOOGLE_API_KEY=${RAG_GOOGLE_API_KEY}
- JWT_SECRET=${JWT_SECRET}
- COLLECTION_NAME=${COLLECTION_NAME:-librechat_collection}
- CHUNK_SIZE=${CHUNK_SIZE:-1500}
- CHUNK_OVERLAP=${CHUNK_OVERLAP:-100}
- EMBEDDINGS_PROVIDER=${EMBEDDINGS_PROVIDER:-openai}
- EMBEDDINGS_MODEL=${EMBEDDINGS_MODEL:-text-embedding-3-small}
- DEBUG_RAG_API=false
- DEBUG_PGVECTOR_QUERIES=false
- CONSOLE_JSON=false
restart: always
depends_on:
- vectordb
volumes:
mongo_data:
meili_data:
postgres_data:
librechat_data: