
Lobe
部署 Lobe Chat 服务端数据库版并接入 DeepSeek 模型
Lobe Chat 默认把会话数据存在浏览器本地,换设备就不同步,也用不了文件上传和知识库。本文讲清服务端数据库版的前置条件、Logto 身份服务的配置、部署后的回调地址填写,以及如何把 DeepSeek 模型接进聊天界面。
Lobe Chat 是一个开源的聊天应用与开发框架,前端基于 Next.js(App Router)构建,界面现代、支持多模型切换、语音合成、图像等多模态输入,以及基于 function call 的插件系统。它有两种数据模式:默认的客户端数据库模式把数据放在浏览器的 IndexedDB 里,开箱即用;服务端数据库模式则用 PostgreSQL 存数据,可以跨设备同步,并解锁文件上传、知识库等进阶功能。这篇教程要解决的问题很具体:把 Lobe Chat 以服务端数据库模式部署起来,配上独立的身份认证服务,再把 DeepSeek 模型接进去,最终得到一个能登录、能同步、能对话的实例。适合已经决定自建聊天客户端、并且愿意多花十几分钟配置数据库与登录体系的开发者。如果你只是想先看看界面长什么样,客户端数据库模式更省事,但本文不覆盖那条路径。部署过程中涉及的应用模板与托管服务,可以在 Lobe 相关工具页找到入口线索。
两种数据模式先分清
动手之前必须理解这个分叉,否则后面配了一堆东西却发现用不上。
- 客户端数据库模式:数据全部留在用户本地浏览器,不跨多端同步,也不支持文件上传、知识库等进阶功能。优点是零后端、零数据库,部署完就能用。
- 服务端数据库模式:使用 PostgreSQL 作为数据库,数据存在服务端,支持跨多端同步,并提供文件上传、知识库等进阶功能。代价是需要数据库、对象存储,以及一套登录认证体系。
本文走的是第二条路。之所以需要认证体系,是因为服务端模式下每个用户的数据要归属到具体账号,没有身份服务就无法区分谁是谁。素材给出的方案是用 Logto——一个开源的身份与访问管理(IAM)平台,定位是 Auth0 的开源替代方案,用来快速搭建登录注册系统和用户身份体系。
准备工作
账号与托管环境
部署依托 Sealos 公有云完成。如果你还没有账号,需要先注册并登录。选择它的原因很实际:在 Sealos Cloud 上部署 Lobe Chat 数据库版时,平台会自动配置对象存储(MinIO)和 PostgreSQL 数据库(其中包含 pgvector 扩展),不需要你手动建库、建桶、装扩展。这一步省掉的工作量相当可观,尤其是 pgvector,知识库的向量检索依赖它。
需要提前想清楚的三件事
- 公网访问地址:Lobe Chat 实例部署完会拿到一个公网域名,Logto 的回调地址要填它,所以顺序上必须先部署 Lobe Chat 再回填 Logto,或者至少先把域名记下来。
- Logto 的访问端口:Logto 服务部署后通过 3002 端口对应的公网地址访问,配置应用时要用到这个地址。
- 模型来源:素材中的做法是通过一个 AI 聚合代理服务获取模型访问通道,其中包含 DeepSeek R1 模型。你也可以换成任何兼容 OpenAI 接口的服务商,配置方式一致。
价格、模型可用性、免费额度这类信息变动频繁,请以各服务官网当前展示的信息为准,不要以本文或任何第三方教程中的描述作为依据。
操作步骤
第一步:部署 Logto 身份服务
打开 Logto 应用模板并完成部署。部署结束后,等待应用的所有组件状态都变成「运行中」,再点击应用的【详情】按钮进入应用详情页面。在详情页里找到 3002 端口对应的公网地址,点击即可用公网域名访问 Logto 服务。
这一步不要急着往下走。组件没全部运行起来就去配应用,后面拿到的参数可能不完整。
第二步:在 Logto 中创建应用
访问 Logto 后,先注册一个管理员账号。然后用这个账号登录,点击左侧的 Applications 菜单进入应用列表页面,点击右上角的 Create application 按钮开始创建。
- 框架选择 Next.js (App Router),然后点击 Start building。Lobe Chat 前端就是 Next.js App Router 架构,选错框架会导致后面的回调流程对不上。
- 在弹窗中把应用名称填为 Lobe Chat,点击 Create application。
- 接下来不需要填写任何其他内容,直接点击底部的 Finish and done 完成创建。
第三步:取出三个认证参数
创建完成后,在 Lobe Chat 这个应用里找到以下三个参数,部署 Lobe Chat 数据库版时要用:
| 参数名 | 含义 |
|---|---|
AUTH_LOGTO_ID | Logto 应用的 App ID |
AUTH_LOGTO_SECRET | Logto 应用的 App Secret |
AUTH_LOGTO_ISSUER | Logto 应用的 Issuer endpoint |
这三个值都是必填项,缺一个部署出来的实例就无法完成登录跳转。App Secret 属于敏感凭据,不要贴到公开的 issue、聊天群或截图里。
第四步:部署 Lobe Chat 服务端数据库版
打开 Lobe Chat 服务端数据库版的应用模板,在表单中填入上一步拿到的三个参数:
AUTH_LOGTO_ID=你的 Logto 应用 App ID
AUTH_LOGTO_SECRET=你的 Logto 应用 App Secret
AUTH_LOGTO_ISSUER=你的 Logto 应用 Issuer endpoint
点击【部署】按钮。部署完成后,同样等待应用的所有组件状态都变成「运行中」,再点击【详情】进入应用详情页面。在详情页中找到公网地址并复制下来,下一步和最后访问都要用它。
第五步:回填回调地址
这一步是最容易漏、漏了就登录失败的关键环节。回到 Logto 的 Applications 页面,找到 Lobe Chat 应用,点击进入应用详情页面,在 Settings 页面中找到两个参数并填写:
- Redirect URI:填 Lobe Chat 数据库版的公网地址,后面接上
/api/auth/callback/logto这类回调路径。 - Post sign-out redirect URI:填 Lobe Chat 数据库版的公网地址,用于退出登录后跳回。
其中域名部分就是上一步复制下来的 Lobe Chat 公网地址。两个地址都填完后,点击 Save changes 保存配置。
如果保存后仍然登录失败,优先检查两件事:地址是否带了多余的斜杠或路径,以及协议是 http 还是 https 是否与实例实际访问方式一致。回调地址是逐字符比对的,差一个字符就会被拒绝。
第六步:注册账号并登录
通过 Lobe Chat 数据库版的公网地址访问实例,点击左上角的头像,然后点击【登录 / 注册】按钮。页面会跳转到 Logto 的登录页,点击【注册】注册一个账号。注册完成后,即可用这个 Logto 账号登录 Lobe Chat 数据库版。
登录成功后,会话数据会写入服务端的 PostgreSQL,换一台设备用同一账号登录就能看到相同的历史记录——这正是服务端数据库模式相对客户端模式的核心差别。
第七步:获取模型 API Key
素材中的做法是使用一个 AI 聚合代理服务作为模型访问通道,其中包含 DeepSeek R1 模型。打开该服务的控制台,新建一个 Key,创建完成后就得到一个 API Key。同时记下这个服务的 API 代理地址(Base URL),下一步要填。
如果你用的是其他兼容 OpenAI 接口的服务商,流程完全一样:拿一个 Key,拿一个 Base URL。
第八步:在 Lobe Chat 中配置服务商
回到 Lobe Chat 数据库版的 Web 页面,点击左上角的头像,点击【应用设置】按钮,依次进入【AI 服务商】→【OpenAI】。填入上一步获取的 API Key 和 API 代理地址,然后点击【获取模型列表】。列表拉取成功后,就能看到该代理提供的所有模型。
接着在【联通性检查】中选择 deepseek-chat 模型,点击【检查】按钮。如果显示【检查通过】,说明接入成功;如果失败,按顺序排查 Key 是否填错、代理地址是否缺少协议头或多余的路径后缀、以及该 Key 是否已启用对应模型。
第九步:选择模型开始对话
回到会话页面,点击输入框上方【随便聊聊】右侧的模型选择按钮,选择 DeepSeek R1 模型,然后就可以开始对话了。
一个完整示例
把上面的步骤串成一条可复现的路径,假设你要在一台新环境上从零搭一套:
- 注册并登录 Sealos 公有云账号。
- 打开 Logto 应用模板 → 部署 → 等所有组件状态变为「运行中」→ 进入【详情】→ 点击 3002 端口对应的公网地址。
- 在 Logto 注册管理员账号 → Applications → Create application → 选 Next.js (App Router) → Start building → 名称填 Lobe Chat → Create application → Finish and done。
- 记下该应用的 App ID、App Secret、Issuer endpoint 三个值。
- 打开 Lobe Chat 服务端数据库版模板,把三个值分别填入
AUTH_LOGTO_ID、AUTH_LOGTO_SECRET、AUTH_LOGTO_ISSUER,点击【部署】。 - 等组件全部「运行中」→【详情】→ 复制公网地址,记为
https://你的实例域名。 - 回到 Logto 的 Lobe Chat 应用 Settings,Redirect URI 与 Post sign-out redirect URI 都填
https://你的实例域名对应的回调路径,Save changes。 - 访问
https://你的实例域名→ 左上角头像 →【登录 / 注册】→ 跳转 Logto →【注册】→ 完成注册 → 自动登录回 Lobe Chat。 - 在模型服务控制台新建 Key,记下 Key 与 API 代理地址。
- Lobe Chat 左上角头像 →【应用设置】→【AI 服务商】→【OpenAI】→ 填 Key 与代理地址 →【获取模型列表】→【联通性检查】选
deepseek-chat→【检查】→ 显示【检查通过】。 - 回会话页 → 模型选择按钮 → 选 DeepSeek R1 → 开始对话。
整条链路里,第 7 步和第 10 步是两个校验点:前者决定能不能登录,后者决定能不能调通模型。任何一步失败,先回到对应的校验点重查,不要盲目重装整个应用。
注意事项
部署顺序不能颠倒
Logto 必须先于 Lobe Chat 部署,因为 Lobe Chat 的部署表单需要 Logto 的三个参数。而 Logto 的回调地址又必须等 Lobe Chat 部署完拿到公网域名才能填。所以正确顺序是:Logto → 取参数 → Lobe Chat → 取域名 → 回填 Logto。跳过回填这一步,登录会一直卡在跳转环节。
组件状态要等齐
两个应用在部署后都要确认「所有组件状态都变成运行中」再进入下一步。数据库、对象存储这些依赖组件如果还没就绪,应用虽然显示已部署,实际访问会报错,而且报错信息往往指向应用层,容易误导排查方向。
客户端模式的功能边界
如果你最终选了客户端数据库模式,要接受三个限制:数据不跨多端同步、不支持文件上传、不支持知识库。这不是配置问题,是模式本身的设计。需要这些能力就必须走服务端数据库模式。
凭据管理
App Secret 与模型 API Key 都属于敏感信息。部署表单里填一次即可,不要写进代码仓库、不要贴进公开文档、不要在截图里露出。轮换 Key 之后记得同步更新 Lobe Chat 的【AI 服务商】配置,否则联通性检查会直接失败。
易变信息以官网为准
本文涉及的模型名称、服务商定价、平台免费额度、模板版本等都可能随时间调整。部署前请到对应服务的官网核对当前信息,不要依赖任何教程中的具体数字。素材中提到的「价格与官方定价一致」这类表述属于特定服务在特定时间的宣传口径,不构成长期承诺。
关于模型选择
联通性检查里选的是 deepseek-chat,而会话页里选的是 DeepSeek R1,两者是模型列表中的不同条目,不要混淆。检查通过只代表 Key 与代理地址可用,不代表列表里每个模型都可用——具体哪些模型对你的 Key 开放,以【获取模型列表】实际返回的结果为准。