收起左侧

1panel部署LobeChat服务端数据库版(飞牛OS部署)可完全抄作业!

12
回复
1704
查看
[ 复制链接 ]

7

主题

25

回帖

0

牛值

fnOS系统内测组

2025-2-24 05:00:35 显示全部楼层 阅读模式

1panel部署LobeChat服务端数据库版(飞牛OS部署)

LobeChat

它是什么? LobeChat 是一个现代化设计的开源 ChatGPT/LLMs 聊天应用与开发框架,支持语音合成、多模态、可扩展的(function call)插件系统,一键免费拥有你自己的 ChatGPT/Gemini/Claude/Ollama 应用。

它的特性?

  • 多模型服务商支持;
  • 支持本地大语言模型 (LLM);
  • 模型视觉识别 (Model Visual);
  • TTS & STT 语音会话;
  • Text to Image 文生图;
  • 插件系统 (Function Calling);
  • 助手市场 (GPTs);
  • 支持本地 / 远程数据库;
  • 支持多用户管理;
  • 渐进式 Web 应用 (PWA);
  • 移动设备适配;
  • 自定义主题。

为什么要部署服务端数据库版? 1panel 默认带有客户端的一键安装,安装方式非常简单,点击1panel的应用商店-全部-AI/大模型-LobeChat -端口外部访问-安装(如果你使用的是openai则需要设置一下对应的数据)http://ip:40247/ 即可访问

默认安装的是客户端数据库模式 ,它与服务端数据库模式有什么区别?

先说以下两种数据库类型的区别,你就懂了。

特性 客户端数据库 (IndexedDB) 服务端数据库 (PostgreSQL)
存储位置 浏览器本地 服务器
访问权限 仅限本地 多用户共享
数据量
用途 个人单浏览器 多地方共享使用
特点 简单、易用 功能强大、支持高并发

客户端数据库 (默认): 你的聊天记录、设置等都存储在你的浏览器里,换台电脑就没了,数据无法共享。

服务端数据库 (DB 版): 你的聊天记录、设置等都存储在服务器上,你可以用任何电脑登录 LobeChat 访问你的数据,数据可以跨设备共享。

安装需要什么前提?

  • 1、docker手动安装:带有 PGVector 插件的 PostgreSQL 数据库 pgvector/pgvector:pg17
  • 2、1panel商店安装:支持 S3 协议的对象存储服务 自建s3存储:MinIO
  • 3、1panel手动安装:受 LobeChat 支持的 SSO 登录鉴权服务 自建sso服务casdoor
  • 4、docker手动安装:LobeChat 数据库版本自身 lobehub/lobe-chat-database

官方说明至少拥有如下四个服务,

通过1panel图形化手动安装LobeChat 服务端数据库版本

如果你会docker 请看官方教程,而不是此教程,此教程使用的是1panel图形化操作,对于不懂的人来说看的懂,但对于懂的人过于繁琐,docker只需要一句代码

首先是安装带有pgvector插件的PostgreSQL数据库

我们根据官方教程,使用docker容器新建一个数据库。

肯定有小伙伴疑惑,为什么不使用1panel的一键构建呢? 1Panel 的一键构建是不预装 pgvector 插件,这里我们手动安装,图形化也非常简单

拉取pgvector镜像

  • 点击 容器-点击 镜像-点击 拉取镜像
  • 输入镜像名(pgvector/pgvector:pg17)官方教程用的16版本
  • 点击 拉取

<img src="https://www.听闻.cn:5244/d/本地/阿里云盘资料备份共享/图片/图床/2025/02/23/67bb4304ef6e7.png" alt="拉取pgvector/pgvector:pg17" style="zoom:80%;" />

<img src="https://www.听闻.cn:5244/d/本地/阿里云盘资料备份共享/图片/图床/2025/02/23/67bb43548e800.png" alt="pgvector/pgvector:pg17" style="zoom: 80%;" />

1 - 创建pgvector容器

名称:PostgreSQL

镜像名: pgvector/pgvector:pg17

端口: 暴露端口:5432需要注意如果占用,要修改服务器端口

网络:选择默认的1panel即可(1panel-network

ipv4:可不填

挂在卷:/opt/1panel/apps/PostgreSQL/data 容器目录:/var/lib/postgresql/data

环境变量:用户名,密码,挂载目录

POSTGRES_USER=PostgreSQL 
POSTGRES_PASSWORD=PostgreSQL
PGDATA=/var/lib/postgresql/data

<img src="https://www.听闻.cn:5244/d/本地/阿里云盘资料备份共享/图片/图床/2025/02/23/67bb456277ac1.png" style="zoom: 80%;" />

<img src="https://www.听闻.cn:5244/d/本地/阿里云盘资料备份共享/图片/图床/2025/02/23/67bb4505da417.png" style="zoom:80%;" />

检测数据库是否可用

通过1panel内置的数据库功能,添加远程服务器,点击有验证,可用

<img src="https://www.听闻.cn:5244/d/本地/阿里云盘资料备份共享/图片/图床/2025/02/24/67bb4647207e1.png" style="zoom:80%;" />

<img src="https://www.听闻.cn:5244/d/本地/阿里云盘资料备份共享/图片/图床/2025/02/24/67bb4747aacc7.png" style="zoom:80%;" />

连接上后新建一个数据库

<img src="https://www.听闻.cn:5244/d/本地/阿里云盘资料备份共享/图片/图床/2025/02/24/67bb481f8cc7b.png" style="zoom:80%;" />

连接PostgreSQL注意的地方

  • 需关闭防火墙或者要手动开放端口(不然通过内网的ip是连不上的)

注:官方教程:<img src="https://lobehub.com/_next/static/media/logo.98482105.png" alt="img" style="zoom:10%;" />使用 Docker 部署 LobeChat 数据库 · LobeChat... · LobeHub

2 - 支持 S3 协议的对象存储服务-MinIO

这里我们使用1panel一键安装

  • 应用商店-MinIO
  • 如果端口占用请修改端口,我这里使用的是 端口:9001 -API端口:9000
  • 端口外部访问 -安装

<img src="https://www.听闻.cn:5244/d/本地/阿里云盘资料备份共享/图片/图床/2025/02/24/67bb498625412.png" style="zoom:80%;" />

minIO配置

LobeChat 需要新建一个桶,和对应的秘钥即可。

内容:
  • ACCESS_KEY
  • SECRET_ACCESS_KEY
  • 桶名称
  • API域名
新建一个桶
  • Buckets-Create Bucket-输入 Name-lobechat-Create Bucket

<img src="https://www.听闻.cn:5244/d/本地/阿里云盘资料备份共享/图片/图床/2025/02/24/67bb4f1b9f4da.png" style="zoom:80%;" />

桶的访问权限改为公共

不设为公共则无法访问

  • Buckets-lobechat-点击 Access Policy-选择 Public

<img src="https://www.听闻.cn:5244/d/本地/阿里云盘资料备份共享/图片/图床/2025/02/24/67bb4fa2ba20e.png" style="zoom:80%;" />

新建一个秘钥

<img src="https://www.听闻.cn:5244/d/本地/阿里云盘资料备份共享/图片/图床/2025/02/24/67bb50081bf9d.png" style="zoom:80%;" />

将会得到一个秘钥

桶名称: lobechat

Access Key:::r1TXawOyhP0oaUJqmYCR

Secret Key:::ftywcS58H48PnKETet3ulqvyOxCJc2B15PiXGMhS

API域名: http://192.168.2.2:9000(ip+端口

检测minlo是否可用

<img src="https://www.听闻.cn:5244/d/本地/阿里云盘资料备份共享/图片/图床/2025/02/24/67bb51177bcc7.png" style="zoom:80%;" />

可以获取筒即代表可用

<img src="https://www.听闻.cn:5244/d/本地/阿里云盘资料备份共享/图片/图床/2025/02/24/67bb517f97271.png" style="zoom:80%;" />

3 - LobeChat 支持的 SSO 登录鉴权服务-casdoor

搭建casdoor

这里并没有使用1panel商店一件安装 ,是使用的Docker安装,

三个原因,1 是1panel商店一键安装需要mysql数据库支持,2是安装完后,casdoor服务和minIO服务不能互通,(不互通其实也不影响使用)(也可能是我的设置原因,暂且不使用商店一键安装)

3是换官方的all-in-one镜像不需要安装MySQL数据库

casdoor官方提供两个镜像,差异供大家参考

名称 描述 建议
casdoor-all-in-one 镜像中包含了Casdoor和MySQL数据库 此镜像已包含一个数据库,仅用于测试目的 (博主觉得是个人使用,使用这个镜像问题不大,目前没有遇到问题)
casdoor 镜像中只包含有Casdoor 此镜像可以连接到您自己的数据库,并在生产中使用

在Docker中拉取镜像

  • 名称:casdoor
  • 镜像名: casbin/casdoor-all-in-one:latest
  • 端口: 默认暴露端口:8000需要注意如果占用,要修改服务器端口 这里演示更改为8002
  • 网络:选择默认的1panel即可

<img src="https://www.听闻.cn:5244/d/本地/阿里云盘资料备份共享/图片/图床/2025/02/24/67bb54d762341.png" style="zoom:80%;" />

<img src="https://www.听闻.cn:5244/d/本地/阿里云盘资料备份共享/图片/图床/2025/02/24/67bb551ddad0d.png" style="zoom:80%;" />

<img src="https://www.听闻.cn:5244/d/本地/阿里云盘资料备份共享/图片/图床/2025/02/24/67bb5717a6afa.png" style="zoom:80%;" />

访问界面检测可用
  • 默认登录用户名:admin 默认密码:123

设置casdoor应用

添加一个应用 身份认证-应用-添加

保存即可,其他什么都可以不用设置

注:官方教程:<img src="https://lobehub.com/_next/static/media/logo.98482105.png" alt="img" style="zoom:10%;" />在 LobeChat 中配置 Casdoor 身份验证服务 · Lobe... · LobeHub

官方教程写的很繁杂,个人使用不建议参考。

4 - 开始安装LobeChat 数据库版

拉取lobechat镜像

搭建

  • 点击 容器-点击 镜像-点击 拉取镜像
  • 输入镜像名( lobehub/lobe-chat-database:latest
  • 点击 拉取

<img src="https://www.听闻.cn:5244/d/本地/阿里云盘资料备份共享/图片/图床/2025/02/24/67bb5baabc0f8.png" style="zoom:80%;" />

  • 名称:lobechat
  • 镜像名: lobehub/lobe-chat-database:latest
  • 端口: 默认暴露端口:3210需要注意如果占用,要修改服务器端口(修改的话,在设置casdoor应用中,重定向 URLs中也需要修改)
  • 网络:选择默认的1panel-network即可
  • 环境变量: 重点中的重点,修改完后相关内容后,删除所有注释,放到环境变量中即可。
#你LobeChat访问的地址,请注意,端口号修改的话,需要保持一致
APP_URL=http://192.168.2.2:3210

#postgresql必须的环境变量
# 用于加密敏感信息的密钥,可以使用 openssl rand -base64 32 生成(飞牛nas使用ssh登录后输入`openssl rand -base64 32`命令即可获取,保持默认也可)
KEY_VAULTS_SECRET='*G7R4zFZk4mDaqvBIu3Yq4wD4tK/Ebzphx0HwDVrWX0Y=*'
# postgresql 数据库连接字符串
# 格式:postgres://username:password@host:port/dbname,如果你的postgresql实例为 Docker 容器,请使用容器名,当然可以内网访问的也可以使用内网ip
# DATABASE_URL=postgres://数据库用户名:数据库密码@192.168.2.2:4432/数据库名
# 这里的数据库名就是在搭建第一步的时候,最后设置的数据库
DATABASE_URL=postgres://postgresql:postgresql@192.168.2.2:4432/postgresql

#Casdoor必须的环境变量
#加密敏感信息的秘钥,可以使用 openssl rand -base64 32 生成(飞牛nas使用ssh登录后输入`openssl rand -base64 32`命令即可获取,保持默认也可)
NEXT_AUTH_SECRET=*G7R4zFZk4mDaqvBIu3Yq4wD4tK/Ebzphx0HwDVrWX0Y=*
#你使用的sso的类型,不需要修改
NEXT_AUTH_SSO_PROVIDERS=casdoor
#Casdoor中设置的应用中的客户端ID和客户端秘钥
AUTH_CASDOOR_ID=3fd6d6c63c53cfc9bfec
AUTH_CASDOOR_SECRET=f2b4d13cc01f2b3f13b82efb2e6d028303e6f19f
#填写casdoor访问地址即可
AUTH_CASDOOR_ISSUER=http://192.168.2.2:8002

#填写的lobechat的地址,请注意你的端口,要和前面APP_URL一样哦
NEXTAUTH_URL=http://192.168.2.2:3210/api/auth
#debug,用来看日志反馈
NEXT_AUTH_DEBUG=1

#minIO,s3必须的环境变量
#id
S3_ACCESS_KEY_ID=r1TXawOyhP0oaUJqmYCR
#秘钥
S3_SECRET_ACCESS_KEY=ftywcS58H48PnKETet3ulqvyOxCJc2B15PiXGMhS
#minIO访问的API地址,端口更改了请注意
S3_ENDPOINT=http://192.168.2.2:9000
#minIO,s3桶名
S3_BUCKET=lobechat
#minIO,s3访问地址
S3_PUBLIC_DOMAIN=http://192.168.2.2:9001

访问服务是否安装成功

登录的账号密码为casdoor中的账号密码,

casdoor默认账号密码:账号:admin 密码:123

<img src="https://www.听闻.cn:5244/d/本地/阿里云盘资料备份共享/图片/图床/2025/02/24/67bb71541b6a8.png" style="zoom:80%;" />

<img src="https://www.听闻.cn:5244/d/本地/阿里云盘资料备份共享/图片/图床/2025/02/24/67bb70d9e6881.png" alt="" style="zoom:80%;" />

注:官方教程:<img src="https://lobehub.com/_next/static/media/logo.98482105.png" alt="img" style="zoom:10%;" />使用 Docker 部署 LobeChat 数据库 · LobeChat... · LobeHub

倒数第二步

自行配置服务商即api

<img src="https://www.听闻.cn:5244/d/本地/阿里云盘资料备份共享/图片/图床/2025/02/24/67bb7197db540.png" style="zoom:80%;" />

反代

现在是已经完成了本地部署,在外网情况下还是访问不了的

接下来就是配置反代内容,

  • 1 用Lucky进行反向代理,这里就不教学了,网上很多教程了
名称 内网地址 外网反代地址
lobechat服务 http://192.168.2.2:3210 https://lobechat.cn:10
Minio S3 API 服务 http://192.168.2.2:9000 https://Minio.cn:10
Casdoor API 服务 http://192.168.2.2:8002 https://Casdoor.cn:10
minio web服务(看需要,非必须) http://192.168.2.2:9001 https://minioweb.cn:10

在重定向中再添加反代后的域名

把域名加端口修改成自己的:https://Casdoor.cn:10/api/auth/callback/casdoor

然后保存并退出。(不支持中文域名,如是中文域名请转码使用)

<img src="https://www.听闻.cn:5244/d/本地/阿里云盘资料备份共享/图片/图床/2025/02/24/67bb802847677.png" alt="https://Casdoor.cn:10/api/auth/callback/casdoor" style="zoom:80%;" />

  • 3 修改lobechat容器中的环境变量,

    把以上的反代后的lobechat服务、Minio S3 API 服务、Casdoor API 服务 添加到环境变量中

#你LobeChat访问的地址,请注意,端口号修改的话,需要保持一致
APP_URL=http://192.168.2.2:3210
APP_URL=https://lobechat.cn:10
#postgresql必须的环境变量
# 用于加密敏感信息的密钥,可以使用 openssl rand -base64 32 生成(飞牛nas使用ssh登录后输入`openssl rand -base64 32`命令即可获取,保持默认也可)
KEY_VAULTS_SECRET='*G7R4zFZk4mDaqvBIu3Yq4wD4tK/Ebzphx0HwDVrWX0Y=*'
# postgresql 数据库连接字符串
# 格式:postgres://username:password@host:port/dbname,如果你的postgresql实例为 Docker 容器,请使用容器名,当然可以内网访问的也可以使用内网ip
# DATABASE_URL=postgres://数据库用户名:数据库密码@192.168.2.2:4432/数据库名
# 这里的数据库名就是在搭建第一步的时候,最后设置的数据库
DATABASE_URL=postgres://postgresql:postgresql@192.168.2.2:4432/postgresql

#Casdoor必须的环境变量
#加密敏感信息的秘钥,可以使用 openssl rand -base64 32 生成(飞牛nas使用ssh登录后输入`openssl rand -base64 32`命令即可获取,保持默认也可)
NEXT_AUTH_SECRET=*G7R4zFZk4mDaqvBIu3Yq4wD4tK/Ebzphx0HwDVrWX0Y=*
#你使用的sso的类型,不需要修改
NEXT_AUTH_SSO_PROVIDERS=casdoor
#Casdoor中设置的应用中的客户端ID和客户端秘钥
AUTH_CASDOOR_ID=3fd6d6c63c53cfc9bfec
AUTH_CASDOOR_SECRET=f2b4d13cc01f2b3f13b82efb2e6d028303e6f19f
#填写casdoor访问地址即可
AUTH_CASDOOR_ISSUER=http://192.168.2.2:8002
AUTH_CASDOOR_ISSUER=https://Casdoor.cn:10

#填写的lobechat的地址,请注意你的端口,要和前面APP_URL一样哦
NEXTAUTH_URL=http://192.168.2.2:3210/api/auth
NEXTAUTH_URL=https://lobechat.cn:10/api/auth
#debug,用来看日志反馈
NEXT_AUTH_DEBUG=1

#minIO,s3必须的环境变量
#id
S3_ACCESS_KEY_ID=r1TXawOyhP0oaUJqmYCR
#秘钥
S3_SECRET_ACCESS_KEY=ftywcS58H48PnKETet3ulqvyOxCJc2B15PiXGMhS
#minIO访问的API地址,端口更改了请注意
S3_ENDPOINT=http://192.168.2.2:9000
S3_ENDPOINT=https://Minio.cn:10
#minIO,s3桶名
S3_BUCKET=lobechat
#minIO,s3访问地址
S3_PUBLIC_DOMAIN=http://192.168.2.2:9001
#minIOweb访问地址非必须
S3_PUBLIC_DOMAIN=https://minioweb.cn:10

现在就是完全体了,可以内外网访问,登录注册都可以的。

祝大家折腾愉快~

文章参考学习:5ee博客

收藏
送赞
分享

0

主题

9

回帖

0

牛值

江湖小虾

2025-2-27 09:37:07 显示全部楼层
教程好长,我不知道这个是干嘛使的,顶贴
ai大模型本地部署的聊天应用框架,可以集成多个的多模型服务商的  详情 回复
2025-2-27 15:38

7

主题

25

回帖

0

牛值

fnOS系统内测组

2025-2-27 15:38:43 楼主 显示全部楼层
ai大模型本地部署的聊天应用框架,可以集成多个的多模型服务商的

0

主题

7

回帖

0

牛值

江湖小虾

2025-2-27 22:53:07 显示全部楼层
casdoor,我做了反代,但是通过域名登录lobechat点击登录后,他跳转的地址却是内网的地址,这个问题我一直找不出来
你看一下lobechat环境变量中是不是写成ip+端口了  详情 回复
2025-2-28 22:10

7

主题

25

回帖

0

牛值

fnOS系统内测组

2025-2-28 22:10:31 楼主 显示全部楼层
你看一下lobechat环境变量中是不是写成ip+端口了
我根据你的环境变量配置,一样配置了两个,一个是ip+端口,一个是http://域名+端口。  详情 回复
2025-2-28 23:04

0

主题

7

回帖

0

牛值

江湖小虾

2025-2-28 23:04:27 显示全部楼层
桑学升 发表于 2025-2-28 22:10
你看一下lobechat环境变量中是不是写成ip+端口了

我根据你的环境变量配置,一样配置了两个,一个是ip+端口,一个是http://域名+端口。
你把ip+端口的删掉看看  详情 回复
2025-3-1 01:47

7

主题

25

回帖

0

牛值

fnOS系统内测组

2025-3-1 01:47:48 楼主 显示全部楼层
你把ip+端口的删掉看看

3

主题

3

回帖

0

牛值

江湖小虾

2025-3-10 17:40:27 显示全部楼层
我的部署成功后点击Casdoor时出现页面遇到一点问题请重新加载,在加载还是不行。
Casdoor在设置完后,基本用不上,使用lobechat登录  详情 回复
2025-3-10 21:19

1

主题

2

回帖

0

牛值

江湖小虾

2025-3-10 18:51:31 显示全部楼层
出问题了,数据库连不上,连接测试提示连接不可用
是PostgreSQL连接不上吗,看一下是不是环境变量中的数据库信息填错了  详情 回复
2025-3-10 21:18

7

主题

25

回帖

0

牛值

fnOS系统内测组

2025-3-10 21:18:50 楼主 显示全部楼层
是PostgreSQL连接不上吗,看一下是不是环境变量中的数据库信息填错了

7

主题

25

回帖

0

牛值

fnOS系统内测组

2025-3-10 21:19:56 楼主 显示全部楼层
Casdoor在设置完后,基本用不上,使用lobechat登录

1

主题

2

回帖

0

牛值

江湖小虾

2025-3-30 23:05:41 显示全部楼层
大佬,我的sql部署后也显示连接不可用,具体报错如图,我看用户名密码都是和环境参数一样吗

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
这里应该填的是创建的的数据库名称,密码  详情 回复
2025-4-3 15:56

7

主题

25

回帖

0

牛值

fnOS系统内测组

2025-4-3 15:56:49 楼主 显示全部楼层
青山石 发表于 2025-3-30 23:05
大佬,我的sql部署后也显示连接不可用,具体报错如图,我看用户名密码都是和环境参数一样吗 ...

这里应该填的是创建的的数据库名称,密码  
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则