Docker 部署
推荐的 LambChat 生产环境部署方式。
快速开始
bash
# 克隆仓库
git clone https://github.com/Yanyutin753/LambChat.git
cd LambChat
# 复制并编辑环境文件
cp deploy/.env.example .env
# 编辑 .env 填入你的配置
# 启动所有服务
docker compose -f deploy/docker-compose.yml up -d架构
Docker Compose 启动三个服务:
| 服务 | 镜像 | 端口 | 说明 |
|---|---|---|---|
lambchat | 自定义构建 | 8000 | LambChat 应用(FastAPI + 静态前端) |
mongo | mongo:7 | 27017 | MongoDB 数据库 |
redis | redis:7-alpine | 6379 | Redis 缓存和发布/订阅 |
配置
环境变量
将 deploy/.env.example 复制为 .env 并配置:
bash
# 推荐:设置稳定的 JWT 密钥(不设置则每次重启自动生成,导致已登录用户失效)
JWT_SECRET_KEY=your-stable-secret-key
# 推荐:设置 MCP 加密盐值(不设置则每次重启自动生成,导致已保存的 MCP 配置失效)
MCP_ENCRYPTION_SALT=your-stable-encryption-salt
# 可选:配置 MongoDB 连接
MONGODB_URL=mongodb://localhost:27017
MONGODB_DB=agent_state
MONGODB_USERNAME=admin
MONGODB_PASSWORD=your-mongo-password
# 可选:配置 Redis 连接
REDIS_URL=redis://localhost:6379/0
REDIS_PASSWORD=your-redis-passwordTIP
LLM 模型通过部署后的 模型配置 UI 添加,无需在环境变量中配置。详见模型配置。
完整参考见环境变量。
反向代理
生产环境建议使用反向代理(nginx、Traefik、Caddy)并配置 SSL:
nginx 示例:
nginx
server {
listen 443 ssl http2;
server_name lambchat.example.com;
ssl_certificate /path/to/cert.pem;
ssl_certificate_key /path/to/key.pem;
client_max_body_size 100M;
location / {
proxy_pass http://127.0.0.1:8000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
# SSE 支持
proxy_buffering off;
proxy_cache off;
proxy_read_timeout 86400s;
}
}使用反向代理时,设置 APP_BASE_URL:
bash
APP_BASE_URL=https://lambchat.example.com管理服务栈
bash
# 启动服务
docker compose -f deploy/docker-compose.yml up -d
# 查看日志
docker compose -f deploy/docker-compose.yml logs -f lambchat
# 停止服务
docker compose -f deploy/docker-compose.yml down
# 重启应用(保留数据)
docker compose -f deploy/docker-compose.yml restart lambchat
# 代码变更后重新构建
docker compose -f deploy/docker-compose.yml up -d --build lambchat数据持久化
Docker Compose 使用命名卷来持久化数据:
mongo_data— MongoDB 数据redis_data— Redis 数据uploads— 上传的文件(本地存储模式)
这些卷在容器重启和重建时保持不变。