本文档提供了在各种平台和配置上部署 LobeChat 的全面指南。LobeChat 提供了多种部署方法,以适应不同的基础设施要求,从简单的仅客户端部署到全栈服务器数据库配置。
LobeChat 提供了三种主要的部署架构,每种都针对不同的基础设施要求和用例而设计。
来源
LobeChat 提供了三种不同的 Docker 容器变体,每种都针对不同的部署场景和数据存储需求进行了优化。
此变体基于 Dockerfile1-253 构建,使用浏览器 IndexedDB 将所有数据存储在客户端。适用于个人使用以及不需要服务器端数据持久化的环境。
主要特点
IndexedDB 进行客户端数据存储此变体基于 Dockerfile.database1-297 构建,需要外部 PostgreSQL 数据库和 S3 存储。专为多用户环境和生产部署设计。
主要特点
pgvector 扩展的服务器端 PostgreSQL 数据库NextAuth 集成,用于身份验证服务此混合方法基于 Dockerfile.pglite1-251 构建,使用 PGLite 在浏览器中提供 SQL 功能,并可选择云同步功能。
主要特点
PGLite 在浏览器中提供 SQL 功能所有容器变体都支持针对 AI 模型提供商的广泛环境变量配置,这些配置在 Dockerfile 环境部分中定义
来源
Docker Compose 提供了在 docker-compose/local/docker-compose.yml1-174 中定义的完整自托管解决方案。该部署支持由 setup 脚本管理的三个不同模式。
docker-compose/setup.sh1-1000 脚本提供了三种部署模式
http://:3210http://your-server-ip:3210https://lobe.example.com设置脚本生成
docker-compose/local/docker-compose.yml94-164 定义了服务依赖关系
这确保了在 LobeChat 初始化之前正确的启动顺序和健康检查。
来源
LobeChat 支持在多个云平台部署,每个平台都有特定的配置要求和功能。
Vercel 部署使用标准容器变体,需要外部服务来实现数据库功能。该平台提供内置的环境变量管理和自动 HTTPS。
要求
通过环境变量进行配置
DATABASE_URL: PostgreSQL 连接字符串KEY_VAULTS_SECRET: 敏感数据的加密密钥NEXT_AUTH_SECRET: NextAuth 会话加密Zeabur 提供了一个全面的模板,在一个部署中包含了所有所需的服务。其市场中定义的模板包括
模板服务
该模板自动配置服务连接,并为所有组件提供域名绑定。
对于 Railway、Render 或 DigitalOcean App Platform 等平台
容器选择
lobehub/lobe-chatlobehub/lobe-chat-database数据库选项
存储配置
来源
不同的部署方法需要特定的基础设施组件。了解这些要求有助于选择合适的部署策略。
src/server/globalConfig/index.ts1-100 管理部署特定配置
src/config/llm.ts1-336 和 src/config/modelProviders/index.ts1-229 定义了 AI 模型提供商系统
| 配置文件 | 目的 | 关键导出 |
|---|---|---|
src/config/llm.ts | 环境变量验证 | getLLMConfig(), llmEnv |
src/config/modelProviders/index.ts | 提供商卡片和模型列表 | DEFAULT_MODEL_PROVIDER_LIST |
src/config/aiModels/index.ts | AI 模型定义 | LOBE_DEFAULT_MODEL_LIST |
该系统支持 40 多个提供商,具有标准化的配置模式
OPENAI_API_KEY, ANTHROPIC_API_KEY)OPENAI_PROXY_URL, GOOGLE_PROXY_URL)OPENAI_MODEL_LIST, AZURE_MODEL_LIST)来源
对于生产部署,这些环境变量至关重要
| 可变 | 所需功能 | 目的 |
|---|---|---|
ACCESS_CODE | 所有部署 | 应用访问控制 |
KEY_VAULTS_SECRET | 数据库部署 | 加密数据库中的敏感数据 |
NEXT_AUTH_SECRET | 数据库部署 | NextAuth 会话加密 |
S3_PUBLIC_DOMAIN | 文件上传 | 文件的公共访问域 |
AUTH_CASDOOR_ISSUER | Docker Compose | Casdoor OAuth2 配置 |
Docker Compose 设置包括健康检查和监控
LobeChat 容器包含对依赖服务的内置健康检查,如 docker-compose/local/docker-compose.yml124-163 中所定义
来源
LobeChat 可以使用 Ollama 与本地 AI 模型一起部署,提供完整的隐私和离线功能。
使用 Ollama 进行 Docker 部署
对于数据库部署,容器处理自动模式迁移
迁移过程在容器启动期间由 Dockerfile.database1-297 自动处理,确保部署间的模式一致性。
适用于运行多个环境的组织
| 环境 | 容器变体 | 数据库 | 身份验证 | 监控 |
|---|---|---|---|---|
| 开发 | lobehub/lobe-chat | 本地/浏览器 | 开发密钥 | 基本日志记录 |
| 预发布 | lobehub/lobe-chat-database | 共享 PostgreSQL | 测试认证 | 健康检查 |
| 生产 | lobehub/lobe-chat-database | 专用 PostgreSQL | 生产 SSO | 全面监控 |
适用于边缘部署或受限环境
来源
对于 Docker Compose 部署,常见的身份验证问题包括
OAuth2 配置错误
解决方案
/.well-known/openid-configurationAUTH_CASDOOR_ISSUER 是否与实际的 Casdoor 服务 URL 匹配网络连接错误
解决方案
docker logs -f lobe-casdoorwget ${AUTH_CASDOOR_ISSUER}/.well-known/openid-configuration对于数据库部署,监控迁移过程
预期成功日志
常见问题
pgvector 扩展DATABASE_URL 格式对于 S3 存储问题
MinIO 健康检查
CORS 配置: 验证 MinIO CORS 设置允许来自 LobeChat 域名的请求,如 docker-compose/local/docker-compose.yml42
Docker Compose 的默认端口分配
| 服务 | 端口 | 目的 |
|---|---|---|
| LobeChat | 3210 | 主应用 |
| Casdoor | 8000 | 身份验证服务 |
| MinIO API | 9000 | 对象存储 API |
| MinIO 控制台 | 9001 | MinIO 网页界面 |
端口冲突解决
来源
检查这些常见错误
[auth][error] r3: "response" is not a conform Authorization Server Metadata response (unexpected HTTP status code)
[auth][error] TypeError: fetch failed
来源
如果您在连接模型提供商时遇到问题
来源
在部署 LobeChat 时,特别是在面向公众的环境中
ACCESS_CODE 以限制访问来源