Skip to content

Commit 823ad21

Browse files
author
Android-16
committed
feat: add LibreChat extension for Wave 2 (Light-Heart-Labs#11) - multi-provider AI chat
1 parent 46c056c commit 823ad21

3 files changed

Lines changed: 259 additions & 0 deletions

File tree

Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
# LibreChat Extension
2+
3+
Enhanced ChatGPT clone with multi-provider AI support for Dream Server.
4+
5+
## What It Is
6+
7+
LibreChat provides a polished chat interface supporting multiple LLM providers:
8+
- OpenAI (GPT-4, GPT-3.5)
9+
- Anthropic (Claude)
10+
- Google (Gemini)
11+
- Azure OpenAI
12+
- Groq
13+
- Mistral
14+
- OpenRouter
15+
- Custom OpenAI-compatible endpoints
16+
17+
## Features
18+
19+
- **Multi-provider chat**: Switch between AI providers in one conversation
20+
- **RAG support**: Upload documents for AI to reference
21+
- **AI agents**: Plugin and tool support
22+
- **File uploads**: Images, documents, code files
23+
- **Conversation history**: Persistent chat history
24+
- **Multi-user**: Built-in authentication system
25+
- **Search**: Full-text search across conversations
26+
27+
## Configuration
28+
29+
### Environment Variables
30+
31+
| Variable | Description | Default |
32+
|----------|-------------|---------|
33+
| `LIBRECHAT_PORT` | External port | `3080` |
34+
| `LIBRECHAT_MONGO_PASSWORD` | MongoDB root password | `librechat123` |
35+
| `LIBRECHAT_MEILI_KEY` | Meilisearch master key | `librechat_meili_master_key` |
36+
37+
### API Keys (Optional)
38+
39+
Set any of these to enable the corresponding provider:
40+
- `OPENAI_API_KEY`
41+
- `ANTHROPIC_API_KEY`
42+
- `GOOGLE_KEY`
43+
- `AZURE_OPENAI_API_KEY`
44+
- `GROQ_API_KEY`
45+
- `MISTRAL_API_KEY`
46+
- `OPENROUTER_KEY`
47+
- `DEEPSEEK_API_KEY`
48+
49+
## Usage
50+
51+
```bash
52+
# Enable the extension
53+
dream extensions enable librechat
54+
55+
# Start the services
56+
docker compose up -d librechat
57+
58+
# Access at http://localhost:3080
59+
```
60+
61+
## Data Persistence
62+
63+
User data is stored in:
64+
- `./data/librechat/mongodb/` - Chat history and user data
65+
- `./data/librechat/meilisearch/` - Search index
66+
- `./data/librechat/images/` - Uploaded images
67+
- `./data/librechat/uploads/` - File uploads
68+
- `./data/librechat/logs/` - Application logs
69+
70+
## Integration with Dream Server
71+
72+
LibreChat can use Dream Server's llama-server as a custom endpoint:
73+
1. Go to Settings → Endpoints
74+
2. Add custom endpoint: `http://llama-server:8080/v1`
75+
3. Set API key to any value (local llama-server doesn't require auth)
76+
77+
## Resources
78+
79+
- [LibreChat Documentation](https://www.librechat.ai/docs)
80+
- [GitHub Repository](https://github.com/danny-avila/LibreChat)
Lines changed: 139 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,139 @@
1+
services:
2+
librechat:
3+
image: ghcr.io/danny-avila/librechat:v0.7.7
4+
container_name: dream-librechat
5+
restart: unless-stopped
6+
security_opt:
7+
- no-new-privileges:true
8+
environment:
9+
- HOST=0.0.0.0
10+
- PORT=3080
11+
- MONGO_URI=mongodb://librechat-mongodb:27017/LibreChat
12+
- MEILI_HOST=http://librechat-meilisearch:7700
13+
- MEILI_HTTP_ADDR=librechat-meilisearch:7700
14+
- OPENAI_API_KEY=${OPENAI_API_KEY:-}
15+
- OPENAI_MODELS=${OPENAI_MODELS:-}
16+
- ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY:-}
17+
- GOOGLE_KEY=${GOOGLE_KEY:-}
18+
- BEDROCK_AWS_DEFAULT_REGION=${BEDROCK_AWS_DEFAULT_REGION:-}
19+
- BEDROCK_AWS_ACCESS_KEY_ID=${BEDROCK_AWS_ACCESS_KEY_ID:-}
20+
- BEDROCK_AWS_SECRET_ACCESS_KEY=${BEDROCK_AWS_SECRET_ACCESS_KEY:-}
21+
- BEDROCK_AWS_SESSION_TOKEN=${BEDROCK_AWS_SESSION_TOKEN:-}
22+
- AZURE_OPENAI_API_KEY=${AZURE_OPENAI_API_KEY:-}
23+
- AZURE_OPENAI_INSTANCE_NAME=${AZURE_OPENAI_INSTANCE_NAME:-}
24+
- AZURE_OPENAI_DEPLOYMENT_NAME=${AZURE_OPENAI_DEPLOYMENT_NAME:-}
25+
- AZURE_OPENAI_API_VERSION=${AZURE_OPENAI_API_VERSION:-}
26+
- AZURE_OPENAI_BASEURL=${AZURE_OPENAI_BASEURL:-}
27+
- OPENROUTER_KEY=${OPENROUTER_KEY:-}
28+
- MISTRAL_API_KEY=${MISTRAL_API_KEY:-}
29+
- COHERE_API_KEY=${COHERE_API_KEY:-}
30+
- DEEPSEEK_API_KEY=${DEEPSEEK_API_KEY:-}
31+
- GROQ_API_KEY=${GROQ_API_KEY:-}
32+
- OPENAI_REVERSE_PROXY=${OPENAI_REVERSE_PROXY:-}
33+
- ANTHROPIC_REVERSE_PROXY=${ANTHROPIC_REVERSE_PROXY:-}
34+
- BINGAI_TOKEN=${BINGAI_TOKEN:-}
35+
- DALLE3_API_KEY=${DALLE3_API_KEY:-}
36+
- DALLE3_BASEURL=${DALLE3_BASEURL:-}
37+
- CREDS_KEY=${CREDS_KEY:-}
38+
- CREDS_IV=${CREDS_IV:-}
39+
- JWT_SECRET=${JWT_SECRET:-}
40+
- JWT_REFRESH_SECRET=${JWT_REFRESH_SECRET:-}
41+
- APP_TITLE=${APP_TITLE:-LibreChat}
42+
- DOMAIN_CLIENT=${DOMAIN_CLIENT:-}
43+
- DOMAIN_SERVER=${DOMAIN_SERVER:-}
44+
- ALLOW_REGISTRATION=${ALLOW_REGISTRATION:-true}
45+
- ALLOW_SOCIAL_LOGIN=${ALLOW_SOCIAL_LOGIN:-false}
46+
- CHECK_BALANCE=${CHECK_BALANCE:-false}
47+
- DEBUG_CONSOLE=${DEBUG_CONSOLE:-false}
48+
- CONSOLE_JSON=${CONSOLE_JSON:-false}
49+
- MODELS_FILTER=${MODELS_FILTER:-}
50+
- ENDPOINTS=${ENDPOINTS:-openAI,azureOpenAI,bingAI,google,gptPlugins,anthropic}
51+
- SEARCH=${SEARCH:-true}
52+
- CONVERSATION_ENDPOINTS=${CONVERSATION_ENDPOINTS:-azureOpenAI,openAI,bingAI,google,gptPlugins,anthropic}
53+
volumes:
54+
- ./data/librechat/images:/app/client/public/images:rw
55+
- ./data/librechat/logs:/app/api/logs:rw
56+
- ./data/librechat/uploads:/app/uploads:rw
57+
ports:
58+
- "${LIBRECHAT_PORT:-3080}:3080"
59+
depends_on:
60+
librechat-mongodb:
61+
condition: service_healthy
62+
librechat-meilisearch:
63+
condition: service_healthy
64+
healthcheck:
65+
test: ["CMD", "wget", "--spider", "-q", "http://localhost:3080/health"]
66+
interval: 30s
67+
timeout: 10s
68+
retries: 3
69+
start_period: 60s
70+
networks:
71+
- dream-network
72+
deploy:
73+
resources:
74+
limits:
75+
cpus: '2.0'
76+
memory: 2G
77+
reservations:
78+
cpus: '0.2'
79+
memory: 512M
80+
81+
librechat-mongodb:
82+
image: mongo:7.0.16
83+
container_name: dream-librechat-mongodb
84+
restart: unless-stopped
85+
security_opt:
86+
- no-new-privileges:true
87+
environment:
88+
- MONGO_INITDB_ROOT_USERNAME=librechat
89+
- MONGO_INITDB_ROOT_PASSWORD=${LIBRECHAT_MONGO_PASSWORD:-librechat123}
90+
volumes:
91+
- ./data/librechat/mongodb:/data/db:rw
92+
healthcheck:
93+
test: ["CMD", "mongosh", "--eval", "db.adminCommand('ping')"]
94+
interval: 30s
95+
timeout: 10s
96+
retries: 3
97+
start_period: 30s
98+
networks:
99+
- dream-network
100+
deploy:
101+
resources:
102+
limits:
103+
cpus: '1.0'
104+
memory: 1G
105+
reservations:
106+
cpus: '0.1'
107+
memory: 256M
108+
109+
librechat-meilisearch:
110+
image: getmeili/meilisearch:v1.12.8
111+
container_name: dream-librechat-meilisearch
112+
restart: unless-stopped
113+
security_opt:
114+
- no-new-privileges:true
115+
environment:
116+
- MEILI_ENV=production
117+
- MEILI_MASTER_KEY=${LIBRECHAT_MEILI_KEY:-librechat_meili_master_key}
118+
volumes:
119+
- ./data/librechat/meilisearch:/meili_data:rw
120+
healthcheck:
121+
test: ["CMD", "wget", "--spider", "-q", "http://localhost:7700/health"]
122+
interval: 30s
123+
timeout: 10s
124+
retries: 3
125+
start_period: 30s
126+
networks:
127+
- dream-network
128+
deploy:
129+
resources:
130+
limits:
131+
cpus: '0.5'
132+
memory: 512M
133+
reservations:
134+
cpus: '0.1'
135+
memory: 128M
136+
137+
networks:
138+
dream-network:
139+
external: true
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
schema_version: dream.services.v1
2+
3+
service:
4+
id: librechat
5+
name: LibreChat
6+
aliases: [chat, libre]
7+
container_name: dream-librechat
8+
host_env: LIBRECHAT_HOST
9+
default_host: librechat
10+
port: 3080
11+
external_port_env: LIBRECHAT_PORT
12+
external_port_default: 3080
13+
health: /health
14+
type: docker
15+
gpu_backends: []
16+
category: optional
17+
depends_on: [librechat-mongodb, librechat-meilisearch]
18+
description: |
19+
LibreChat is an enhanced ChatGPT clone with multi-LLM support,
20+
agents, RAG, and file uploads. Supports OpenAI, Anthropic, Google,
21+
Azure, Groq, Mistral, OpenRouter, and custom endpoints.
22+
23+
features:
24+
chat:
25+
description: Multi-provider AI chat interface
26+
vram_required_mb: 0
27+
rag:
28+
description: Built-in RAG with file uploads and search
29+
vram_required_mb: 0
30+
agents:
31+
description: AI agents and plugins support
32+
vram_required_mb: 0
33+
34+
tags:
35+
- chat
36+
- ui
37+
- multi-provider
38+
- rag
39+
- agents
40+
- openai-compatible

0 commit comments

Comments
 (0)