news 2026/5/11 8:41:36

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/5/11 8:40:53

C++游戏开发入门:你的第一个小游戏

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 为初学者生成一个超级简单的C猜数字游戏教程。要求&#xff1a;1. 游戏随机生成1-100的数字&#xff1b;2. 玩家输入猜测&#xff0c;程序提示太大或太小&#xff1b;3. 记录猜测次…

作者头像 李华
网站建设 2026/5/3 4:11:55

电商网站K8s实战:从零到高可用的部署方案

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 开发一个电商网站Kubernetes部署方案&#xff0c;包含&#xff1a;1) 前端Vue.js和后端Spring Boot的Dockerfile模板 2) 带HPA自动扩缩容的Deployment配置 3) Ingress路由规则 4) R…

作者头像 李华
网站建设 2026/5/10 23:43:12

如何用AI解决‘内容请求失败‘的技术难题

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 开发一个AI辅助调试工具&#xff0c;能够自动分析There was a problem providing the content you requested错误。工具应包含以下功能&#xff1a;1) 错误日志自动分析模块&#x…

作者头像 李华
网站建设 2026/5/11 3:39:31

35、文本处理实用工具与脚本技巧

文本处理实用工具与脚本技巧 在文本处理的世界里,有许多实用的工具和脚本技巧能帮助我们高效地完成各种任务。下面将详细介绍一些常见的工具和脚本示例。 1. printf 的高级用法 printf 不仅能处理变量的简单长度,还能以实用的方式对齐数字输出。以下脚本展示了使用 echo 和…

作者头像 李华
网站建设 2026/5/11 3:12:59

64、内核可调参数、开关和限制详解

内核可调参数、开关和限制详解 在操作系统的运行过程中,内核参数的调整对于系统性能的优化和资源的合理分配至关重要。本文将详细介绍内核的各种可调参数、开关和限制,帮助你更好地理解和管理系统。 1. 内核参数概述 内核参数是可以在系统中进行设置的变量,这些变量的值存…

作者头像 李华
网站建设 2026/5/10 23:19:06

解决创建ider spring initializr 无法选择java 8 版本问题

在使用IDEA中的Spring Initializr创建新项目时&#xff0c;Java 版本近可选择Java17,21 。不能选择Java8;SpringBoot 版本也只有 3.x 问题原因 Spring 官方&#xff08; https://start.spring.io/&#xff09;不再提供旧版本的初始化配置 解决方案 方案 1 使用阿里提供的源&a…

作者头像 李华