news 2026/4/16 12:36:40

1Panel图形化部署LobeChat服务端数据库版

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
1Panel图形化部署LobeChat服务端数据库版

使用 1Panel 图形化部署 LobeChat 服务端数据库版

在 AI 应用快速普及的今天,越来越多开发者希望拥有一个私有、可控且功能完整的聊天机器人平台。LobeChat 正是这样一个优雅而强大的开源项目:它提供媲美 ChatGPT 的交互体验,支持多种大模型接入(如 OpenAI、Claude、Ollama 等),并具备插件系统、语音识别、角色预设等高级特性。

但如果你只是通过一键安装使用默认配置,很可能正运行在“客户端数据库模式”——所有数据都存在浏览器里。换台设备?清除缓存?不好意思,你的聊天记录和设置全没了。

真正值得投入的是服务端数据库版本。借助 PostgreSQL 存储核心数据、MinIO 管理文件上传、Casdoor 实现统一登录,你可以构建一个跨设备同步、多用户共享、可扩展性强的企业级 AI 对话门户。更棒的是,这一切无需写一行 Docker 命令,完全可以通过1Panel 的图形界面完成部署。


我们先来看一下最终要搭建的架构:

graph TD A[LobeChat Web界面] --> B[Casdoor 身份认证] A --> C[PostgreSQL 数据库存储] A --> D[MinIO 文件存储] B --> C D -->|S3协议| A C -->|pgvector支持向量检索| A

整个系统由四个关键组件构成:

  • PostgreSQL + pgvector:持久化存储用户信息、会话历史,并为未来启用记忆向量化打下基础;
  • MinIO:作为兼容 S3 协议的对象存储,处理图片、PDF、音频等上传资源;
  • Casdoor:提供 OAuth2/OIDC 标准的身份认证服务,支持对接 GitHub、LDAP、微信等多种登录方式;
  • LobeChat 主程序:前端界面与后端逻辑中枢,整合上述三项服务对外提供完整功能。

下面我们将一步步通过 1Panel 的可视化操作完成全部部署。


部署带有 pgvector 插件的 PostgreSQL

虽然 1Panel 应用市场能一键安装 PostgreSQL,但它默认不包含pgvector插件——这个用于向量嵌入的关键模块必须手动引入。

拉取 pgvector 兼容镜像

进入 1Panel 控制台 → 左侧菜单「容器」→「镜像」→ 右上角「拉取镜像」

输入:

pgvector/pgvector:pg17

点击拉取。等待完成后即可用于创建容器。

⚠️ 提前确保服务器已开放 5432 端口,防火墙或安全组规则允许外部连接。

创建 PostgreSQL 容器

返回容器页面 →「创建容器」

填写以下参数:

  • 名称my-postgres
  • 镜像名pgvector/pgvector:pg17
  • 端口映射
  • 容器端口5432→ 主机端口5432(若被占用可改为 5433)
  • 网络模式:Bridge(默认)
  • IPv4 地址:建议指定静态 IP 如172.18.0.250,避免后续容器通信冲突
  • 挂载卷
  • 主机路径:/opt/1panel/apps/postgresql/my-postgres/data
  • 容器路径:/var/lib/postgresql/data
  • 权限:读写
  • 环境变量
POSTGRES_USER=mylobehub POSTGRES_PASSWORD=4jMwz6Gr43SafXMX PGDATA=/var/lib/postgresql/data

🔐 密码请务必替换为你自己生成的高强度字符串,切勿直接使用示例值!

点击「创建」完成部署。

验证数据库状态

有两种方式确认 Postgres 是否正常运行:

  1. 通过 1Panel 内置数据库工具测试连接
    - 进入「数据库」→「远程数据库」→「添加」
    - 类型选 PostgreSQL
    - 填入主机 IP、端口 5432、用户名mylobehub和对应密码
    - 点击「测试连接」,成功即表示可用

  2. 进入容器终端执行命令
    - 找到my-postgres容器 →「进入终端」
    - 执行:
    bash psql -U mylobehub
    - 若进入 PostgreSQL 命令行,则说明服务已启动

创建专用数据库

即使 Postgres 启动了,我们也需要为 LobeChat 单独建库,以隔离数据。

psql终端中运行:

CREATE DATABASE mylobehub;

这一步也可以通过图形化工具完成。完成后,PostgreSQL 准备就绪。


部署 MinIO 作为对象存储

LobeChat 支持上传文件进行解析(比如 PDF 总结、图像理解),这些内容不能塞进数据库,必须交给专门的对象存储处理。我们可以用轻量级开源方案MinIO替代昂贵的 AWS S3。

一键安装 MinIO

进入「应用商店」→ 搜索MinIO→ 点击安装

修改端口防止冲突:
- Web 端口:9008
- API 端口:9009
开启「端口外部访问」

安装完成后启动服务。

✅ 如果你已有腾讯云 COS、阿里云 OSS 或其他 S3 兼容存储,可跳过此步骤。

初始配置 MinIO

访问地址:http://<your-ip>:9008

默认账号密码:
- Access Key:minioadmin
- Secret Key:minioadmin

登录后执行以下操作:

创建存储桶(Bucket)
  • 点击「Buckets」→「Create Bucket」
  • 名称填lobechat
  • 点击创建
设置访问策略为 Public

为了让前端能直接加载图片等资源,需将该桶设为公开读:

  • 进入lobechat桶详情页
  • 点击「Access Policy」
  • 选择Public

⚠️ 生产环境建议结合 CDN 回源鉴权或临时签名机制,不要长期开放 public 权限。

(推荐)创建专用访问密钥

为了最小化权限暴露风险,建议新建一组专用于 LobeChat 的 AK/SK:

  • 左侧「Identity」→「Users」→「Add User」
  • 用户名:lobechat-user
  • 分配策略:write-only或自定义最小权限策略
  • 生成 AccessKey 和 SecretKey 并妥善保存
获取 S3 配置参数

接下来配置 LobeChat 时需要用到以下信息,请记录下来:

S3_ACCESS_KEY_ID=E4c8Q1iXg625sMBUJ0B5 S3_SECRET_ACCESS_KEY=hX7T0kGl0Pdg9v2B93DgvOk9MayNHhP9mopGUPuJ S3_ENDPOINT=http://10.255.255.242:9009 S3_BUCKET=lobechat S3_PUBLIC_DOMAIN=http://10.255.255.242:9009

其中S3_PUBLIC_DOMAIN是前端访问文件的域名地址。如果后续做了反向代理,这里可以改成https://files.yourdomain.com


部署 Casdoor 实现统一身份认证

没有登录系统的 AI 助手就像没有门锁的房子。LobeChat 推荐集成Casdoor作为标准的身份认证中心,支持 OAuth2 / OIDC 协议,轻松对接 GitHub、LDAP、企业微信等第三方登录。

方式一:一键安装(适合快速验证)

进入「应用商店」→ 搜索Casdoor→ 安装

修改端口为8001(避免与 MinIO 冲突),开启外部访问。

注意:默认使用 SQLite,生产环境建议改用 PostgreSQL。

方式二:手动部署(推荐,共用数据库)

更规范的做法是让 Casdoor 也使用前面搭建的 PostgreSQL。

拉取镜像
  • 「容器」→「镜像」→「拉取镜像」
  • 输入:casbin/casdoor
创建容器
  • 名称my-casdoor
  • 镜像casbin/casdoor:latest
  • 端口映射:容器 8000 → 主机 8001
  • IPv4172.18.0.253
  • 挂载卷
  • 主机目录:/opt/1panel/apps/casdoor/mycasdoor/conf
  • 容器目录:/conf
  • 环境变量
RUNNING_IN_DOCKER=true driverName=postgres dataSourceName=user=mycasdoor password=mEjT7KnFfAW44knZ host=10.255.255.242 port=5432 sslmode=disable dbname=mycasdoor dbName=mycasdoor

✅ 请提前在 PostgreSQL 中创建数据库mycasdoor和用户mycasdoor

初始化并创建应用

访问:http://<your-ip>:8001

首次登录:
- 用户名:admin
- 密码:123

进入「身份认证」→「应用」→「添加」

填写:
- 名称:LobeChat
- 显示名称:LobeChat
- 重定向 URL:http://<your-ip>:3210/api/auth/callback/casdoor

替换为你实际的 LobeChat 访问地址

保存后系统自动生成:
- Client ID:86094cf0438b7df7d2db
- Client Secret:0eb22f536455ddfdde06639652a8763ac3862db7

这两个值将在下一步配置 LobeChat 时使用,请务必记牢。


部署 LobeChat 主程序

终于到了最后一步!我们要部署lobehub/lobe-chat-database镜像,并将其连接前三项服务。

拉取镜像
  • 「容器」→「镜像」→「拉取镜像」
  • 镜像名:lobehub/lobe-chat-database

等待下载完成。

创建 LobeChat 容器

点击「创建容器」

  • 名称my-lobe-chat-database
  • 镜像lobehub/lobe-chat-database:latest
  • 端口映射:容器 3210 → 主机 3210(可根据需要修改)
  • IPv4172.18.0.251
  • 环境变量(以下是必填项):
# 应用访问地址 APP_URL=http://10.255.255.242:3210 # 加密密钥(用于保护敏感信息) KEY_VAULTS_SECRET=dvy9O/6gMcy8k7Jnfbb1mI8he03efDQ6m0iknR8XppQ= # 数据库连接 DATABASE_URL=postgres://mylobehub:4jMwz6Gr43SafXMX@my-postgres:5432/mylobehub # SSO 认证配置 NEXT_AUTH_SECRET=3904039cd41ea1bdf6c93db0db96e250 NEXT_AUTH_SSO_PROVIDERS=casdoor AUTH_CASDOOR_ID=86094cf0438b7df7d2db AUTH_CASDOOR_SECRET=0eb22f536455ddfdde06639652a8763ac3862db7 AUTH_CASDOOR_ISSUER=http://10.255.255.242:8001 NEXTAUTH_URL=http://10.255.255.242:3210/api/auth NEXT_AUTH_DEBUG=1 # S3 存储配置 S3_ACCESS_KEY_ID=E4c8Q1iXg625sMBUJ0B5 S3_SECRET_ACCESS_KEY=hX7T0kGl0Pdg9v2B93DgvOk9MayNHhP9mopGUPuJ S3_ENDPOINT=http://10.255.255.242:9009 S3_BUCKET=lobechat S3_PUBLIC_DOMAIN=http://10.255.255.242:9009

🔐 所有密钥建议使用安全方式生成:

bash openssl rand -base64 32

点击「创建」启动容器。

查看日志确认状态

进入容器详情页 →「日志」

观察是否有错误信息,如数据库连接失败、S3 超时等。

正常情况下会出现类似输出:

[Next.js] Server started on http://localhost:3210 [LobeChat] Ready to accept connections

表明服务已成功启动。

访问 LobeChat

打开浏览器访问:
👉http://<your-ip>:3210

页面会自动跳转至 Casdoor 登录页。

使用你在 Casdoor 中注册的账号登录(初始 admin 用户也可)。

登录成功后,进入 LobeChat 主界面,开始体验完整功能!


常见问题与最佳实践

网络通信问题
  • 所有容器应处于同一 Docker 网络(建议使用 1Panel 默认 bridge)
  • 若使用主机 IP 通信,请确保防火墙放行 5432、8001、9009、3210 等端口
  • 生产环境强烈建议配置 Nginx 反向代理 + HTTPS 证书
安全加固建议
  • 所有密钥(SECRET、PASSWORD、ACCESS_KEY)禁止明文硬编码
  • 生产环境关闭NEXT_AUTH_DEBUG=1
  • MinIO 的 bucket 不应长期设为 public,应配合 CDN 回源验证
  • 定期备份 PostgreSQL 数据库,尤其是mylobehubmycasdoor
  • 使用.env.local或配置中心管理敏感信息,而非直接写入容器
功能拓展方向

这套架构远不止于个人助手,还可以进一步升级:

  • 集成 Ollama:本地运行 Llama3、Qwen 等开源模型,实现零成本推理
  • 启用插件系统:调用天气、搜索、代码解释器等功能
  • 配置 PWA:添加到桌面,离线也能使用
  • 结合 RAG 技术:接入企业知识库,打造专属问答机器人
  • 启用向量记忆:利用 pgvector 实现上下文长期记忆与语义检索

从零开始搭建一个现代化 AI 聊天平台,曾经需要深厚的 DevOps 能力和复杂的编排脚本。而现在,借助 1Panel 的图形化能力,即使是刚接触容器技术的新手,也能在不到一个小时内部署一套完整、稳定、可扩展的服务端数据库版 LobeChat。

它不仅解决了“换个浏览器就没记录”的痛点,更为团队协作、权限管理、文件处理和未来智能化扩展提供了坚实底座。无论你是想为自己打造一个私有 AI 助手,还是为企业建设智能客服系统,这套方案都极具实用价值。

真正的自由,不是依赖某个商业产品,而是掌握属于自己的技术栈。现在,你已经拥有了第一步的钥匙。

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/13 19:22:42

D盾在金融系统安全中的实战应用案例

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 创建一个金融系统安全防护案例&#xff0c;展示D盾如何检测和防御针对金融系统的常见攻击&#xff0c;如中间人攻击、数据篡改等。包括攻击模拟、D盾检测过程、防御措施实施和效果验…

作者头像 李华
网站建设 2026/4/13 10:41:30

企业如何管控员工Chrome扩展安装行为

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 创建一个企业级Chrome扩展管理控制台&#xff0c;允许IT管理员集中审批、黑名单管理和强制卸载扩展。开发一个管理后台(使用Vue.js)和客户端代理(使用Go)&#xff0c;支持批量策略部…

作者头像 李华
网站建设 2026/4/4 2:37:06

vLLM多进程设计:兼容性与性能的权衡

vLLM多进程设计&#xff1a;兼容性与性能的权衡 在构建大规模语言模型推理服务时&#xff0c;一个看似底层、实则影响深远的问题浮出水面&#xff1a;如何安全又高效地启动多个工作进程&#xff1f; 这个问题听起来简单——不就是调用 multiprocessing.Process 吗&#xff1f…

作者头像 李华
网站建设 2026/3/27 0:55:41

开发者必备:3秒解决GitHub访问问题的终极技巧

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 开发一个极简的GitHub快速修复工具&#xff0c;只需点击一次按钮即可完成&#xff1a;1) 自动测试最优的GitHub镜像IP&#xff1b;2) 智能切换Hosts配置&#xff1b;3) 临时启用Clo…

作者头像 李华
网站建设 2026/4/13 12:23:53

53、Solaris 文件与文件 I/O 详解

Solaris 文件与文件 I/O 详解 1. 数据完整性和同步标志 Solaris 提供了文件标志,用于设置不同级别的数据同步和文件完整性。在 open 系统调用中,可以设置三个适用的标志: O_SYNC 、 O_RSYNC 和 O_DSYNC 。这些标志在文件打开时会对应设置到文件结构的 f_flag 字…

作者头像 李华
网站建设 2026/4/9 2:32:23

布林坦承谷歌低估Transformer,“还被OpenAI挖走了Ilya”

鹭羽 发自 凹非寺量子位 | 公众号 QbitAI我们在AI方面犯了错误&#xff0c;而OpenAI抓住了机会。最近谷歌创始人谢尔盖・布林回母校斯坦福演讲&#xff0c;公开复盘谷歌的奋斗史&#xff1a;从诞生、崛起&#xff0c;再到AI比拼中大意掉队&#xff0c;以及靠Gemini 3逆风翻盘……

作者头像 李华