Docker is the recommended way to deploy LobeChat for most users. This guide covers both simple Docker run and Docker Compose deployments.
LobeChat provides official Docker images:
| Image | Description | Size |
|---|---|---|
lobehub/lobe-chat |
Main application image | ~137 MB |
lobehub/lobe-chat-database |
Database version with PostgreSQL | Larger |
docker run -d \
--name lobe-chat \
-p 3210:3210 \
-e OPENAI_API_KEY=sk-your-key \
lobehub/lobe-chat:latest
Access at http://localhost:3210.
Create docker-compose.yml:
version: '3.8'
services:
lobe-chat:
image: lobehub/lobe-chat:latest
container_name: lobe-chat
ports:
- "3210:3210"
environment:
- OPENAI_API_KEY=sk-your-key
restart: unless-stopped
volumes:
- lobe-chat-data:/app/data
volumes:
lobe-chat-data:
Start the service:
docker compose up -d
For multi-user mode with persistent storage:
version: '3.8'
services:
lobe-chat:
image: lobehub/lobe-chat:latest
container_name: lobe-chat
ports:
- "3210:3210"
environment:
- OPENAI_API_KEY=sk-your-key
- DATABASE_URL=postgresql://lobechat:secure-password@db:5432/lobechat
- KEY_VAULTS_SECRET=your-secret-key
depends_on:
db:
condition: service_healthy
restart: unless-stopped
volumes:
- lobe-chat-data:/app/data
db:
image: postgres:15-alpine
container_name: lobe-chat-db
environment:
POSTGRES_USER: lobechat
POSTGRES_PASSWORD: secure-password
POSTGRES_DB: lobechat
volumes:
- lobe-chat-db-data:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U lobechat"]
interval: 10s
timeout: 5s
retries: 5
restart: unless-stopped
volumes:
lobe-chat-data:
lobe-chat-db-data:
LobeChat provides an automated setup script:
# Create directory
mkdir lobe-chat-db && cd lobe-chat-db
# Run setup script
bash <(curl -fsSL https://lobe.li/setup.sh)
# Start services
docker compose up -d
| Variable | Description |
|---|---|
OPENAI_API_KEY |
Your OpenAI API key |
| Variable | Default | Description |
|---|---|---|
OPENAI_PROXY_URL |
- |
Proxy URL for API calls |
OPENAI_MODEL_LIST |
- |
Custom model list |
DATABASE_URL |
- |
PostgreSQL connection string |
KEY_VAULTS_SECRET |
- |
Encryption key for sensitive data |
NEXT_PUBLIC_BASE_PATH |
- |
Base path for deployment |
PLUGINS_INDEX_URL |
https://chat-plugins.lobehub.com |
Plugin market URL |
AGENTS_INDEX_URL |
https://chat-agents.lobehub.com |
Assistant market URL |
See Configuration for complete list.
Data is persisted in Docker volumes:
lobe-chat-data - Application data and configurationslobe-chat-db-data - PostgreSQL database (if using database mode)After deployment:
http://localhost:3210# Pull latest image
docker pull lobehub/lobe-chat:latest
# Restart container
docker compose down
docker compose up -d
docker ps -a | grep lobe-chat
# All logs
docker compose logs -f
# Specific service
docker compose logs -f lobe-chat
docker compose restart
Container won’t start:
# Check logs
docker compose logs lobe-chat
# Verify environment variables
docker compose config
Database connection errors:
# Check database is running
docker compose ps db
# Test connection
docker compose exec db pg_isready -U lobechat
For production environments:
services:
nginx:
image: nginx:alpine
ports:
- "80:80"
- "443:443"
volumes:
- ./nginx.conf:/etc/nginx/nginx.conf
- ./ssl:/etc/nginx/ssl
depends_on:
- lobe-chat
Any questions?
Feel free to contact us. Find all contact information on our contact page.