AB
AiBoss
Tutorials

Lobe

Tutorials

部署 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,知识库的向量检索依赖它。

需要提前想清楚的三件事

  1. 公网访问地址:Lobe Chat 实例部署完会拿到一个公网域名,Logto 的回调地址要填它,所以顺序上必须先部署 Lobe Chat 再回填 Logto,或者至少先把域名记下来。
  2. Logto 的访问端口:Logto 服务部署后通过 3002 端口对应的公网地址访问,配置应用时要用到这个地址。
  3. 模型来源:素材中的做法是通过一个 AI 聚合代理服务获取模型访问通道,其中包含 DeepSeek R1 模型。你也可以换成任何兼容 OpenAI 接口的服务商,配置方式一致。
价格、模型可用性、免费额度这类信息变动频繁,请以各服务官网当前展示的信息为准,不要以本文或任何第三方教程中的描述作为依据。

操作步骤

第一步:部署 Logto 身份服务

打开 Logto 应用模板并完成部署。部署结束后,等待应用的所有组件状态都变成「运行中」,再点击应用的【详情】按钮进入应用详情页面。在详情页里找到 3002 端口对应的公网地址,点击即可用公网域名访问 Logto 服务。

这一步不要急着往下走。组件没全部运行起来就去配应用,后面拿到的参数可能不完整。

第二步:在 Logto 中创建应用

访问 Logto 后,先注册一个管理员账号。然后用这个账号登录,点击左侧的 Applications 菜单进入应用列表页面,点击右上角的 Create application 按钮开始创建。

  1. 框架选择 Next.js (App Router),然后点击 Start building。Lobe Chat 前端就是 Next.js App Router 架构,选错框架会导致后面的回调流程对不上。
  2. 在弹窗中把应用名称填为 Lobe Chat,点击 Create application。
  3. 接下来不需要填写任何其他内容,直接点击底部的 Finish and done 完成创建。

第三步:取出三个认证参数

创建完成后,在 Lobe Chat 这个应用里找到以下三个参数,部署 Lobe Chat 数据库版时要用:

参数名含义
AUTH_LOGTO_IDLogto 应用的 App ID
AUTH_LOGTO_SECRETLogto 应用的 App Secret
AUTH_LOGTO_ISSUERLogto 应用的 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 模型,然后就可以开始对话了。

一个完整示例

把上面的步骤串成一条可复现的路径,假设你要在一台新环境上从零搭一套:

  1. 注册并登录 Sealos 公有云账号。
  2. 打开 Logto 应用模板 → 部署 → 等所有组件状态变为「运行中」→ 进入【详情】→ 点击 3002 端口对应的公网地址。
  3. 在 Logto 注册管理员账号 → Applications → Create application → 选 Next.js (App Router) → Start building → 名称填 Lobe Chat → Create application → Finish and done。
  4. 记下该应用的 App ID、App Secret、Issuer endpoint 三个值。
  5. 打开 Lobe Chat 服务端数据库版模板,把三个值分别填入 AUTH_LOGTO_ID、AUTH_LOGTO_SECRET、AUTH_LOGTO_ISSUER,点击【部署】。
  6. 等组件全部「运行中」→【详情】→ 复制公网地址,记为 https://你的实例域名。
  7. 回到 Logto 的 Lobe Chat 应用 Settings,Redirect URI 与 Post sign-out redirect URI 都填 https://你的实例域名 对应的回调路径,Save changes。
  8. 访问 https://你的实例域名 → 左上角头像 →【登录 / 注册】→ 跳转 Logto →【注册】→ 完成注册 → 自动登录回 Lobe Chat。
  9. 在模型服务控制台新建 Key,记下 Key 与 API 代理地址。
  10. Lobe Chat 左上角头像 →【应用设置】→【AI 服务商】→【OpenAI】→ 填 Key 与代理地址 →【获取模型列表】→【联通性检查】选 deepseek-chat →【检查】→ 显示【检查通过】。
  11. 回会话页 → 模型选择按钮 → 选 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 开放,以【获取模型列表】实际返回的结果为准。