feat: add LibreChat template

This commit is contained in:
Scan
2025-11-28 00:46:40 -09:00
committed by GitHub
4 changed files with 223 additions and 0 deletions

View File

@@ -0,0 +1,110 @@
# 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:

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

View File

@@ -0,0 +1,93 @@
[variables]
# Domain Configuration
main_domain = "${domain}"
# Security & Authentication
jwt_secret = "${password:64}"
jwt_refresh_secret = "${password:64}"
creds_key = "f34be427ebb29de8d88c107a71546019685ed8b241d8f2ed00c3df97ad2566f0"
creds_iv = "e2341419ec3dd3d19b13a1a87fafcbfb"
meili_master_key = "${password:32}"
# Database Configuration
mongo_password = "${password:16}"
postgresql_password = "${password:16}"
[config]
version = "1.0.0"
# Main service domain mapping
[[config.domains]]
serviceName = "librechat"
port = 3080
host = "${main_domain}"
[config.env]
# Basic Configuration
HOST="0.0.0.0"
PORT="3080"
DOMAIN_CLIENT="https://${main_domain}"
DOMAIN_SERVER="https://${main_domain}"
# Search Configuration
MEILI_MASTER_KEY="${meili_master_key}"
# Security
JWT_SECRET="${jwt_secret}"
JWT_REFRESH_SECRET="${jwt_refresh_secret}"
CREDS_KEY="${creds_key}"
CREDS_IV="${creds_iv}"
# API Keys
OPENAI_API_KEY=""
ANTHROPIC_API_KEY=""
GOOGLE_KEY=""
OPENROUTER_KEY=""
# Database
POSTGRES_DB="librechat_db"
POSTGRES_USER="librechat_user"
POSTGRES_PASSWORD="${postgresql_password}"
# Security & Sessions
# User Interface
APP_TITLE="LibreChat"
CUSTOM_FOOTER="Made with ❤️ by LibreChat"
ALLOW_EMAIL_LOGIN="true"
ALLOW_REGISTRATION="false"
ALLOW_SOCIAL_LOGIN="false"
# RAG
RAG_OPENAI_API_KEY=""
RAG_GOOGLE_API_KEY=""
EMBEDDINGS_PROVIDER="openai"
EMBEDDINGS_MODEL="text-embedding-3-small"
CHUNK_SIZE=1500
CHUNK_OVERLAP=100
[[config.mounts]]
filePath = "librechat.yaml"
content = """
### librechat.yaml configs ###
version: 1.2.8
cache: true
endpoints:
custom:
- name: "OpenRouter"
apiKey: "${OPENROUTER_KEY}"
baseURL: "https://openrouter.ai/api/v1"
models:
default: ["meta-llama/llama-3.3-70b-instruct:free"]
fetch: true
titleConvo: true
titleModel: "current_model"
summarize: false
summaryModel: "current_model"
forcePrompt: false
dropParams: ["stop"]
modelDisplayLabel: "OpenRouter"
"""

View File

@@ -3261,6 +3261,26 @@
"productivity"
]
},
{
"id": "librechat",
"name": "LibreChat",
"version": "latest",
"description": "LibreChat is the ultimate open-source app for all your AI conversations, fully customizable and compatible with any AI provider (Openai, Ollama, Google etc.) — all in one sleek interface.",
"logo": "librechat.png",
"links": {
"github": "https://github.com/danny-avila/librechat",
"website": "https://librechat.ai",
"docs": "https://docs.librechat.ai"
},
"tags": [
"ai",
"chatbot",
"llm",
"MIT-license",
"BYOK",
"generative-ai"
]
},
{
"id": "libredesk",
"name": "Libredesk",