1. 部署说明
LobeChat 默认使用客户端数据库(IndexedDB),同时也支持使用服务端数据库(下简称 DB 版)。
默认版本LobeChat 数据主要存储在浏览器中,清除浏览器缓存或者更换设备数据都会丢失,如果想要做到多终端数据同步,则需要部署DB版本。
本次部署使用的是DB版,即lobe-chat-database版本。
本次nas设备选用的是极空间Z4Pro,其余nas设备皆大同小异,均可作为参考。
本次部署使用的是docker图形化界面一键部署。
2. 准备工作
对于 LobeChat 的 DB 版,正常的部署流程都需要包含三个模块的配置
数据库配置:Postgres
开源地址:https://github.com/pgvector/pgvector
身份验证服务配置:NextAuth(Casdoor)
开源地址:https://github.com/casdoor/casdoor
S3存储服务配置:Minio
开源地址:https://github.com/minio/minio
lobe-chat-database配置
开源地址:https://github.com/lobehub/lobe-chat
Docker镜像文件地址:
链接: https://pan.baidu.com/s/1-XQGjmcbk8_6drvqgXhK9g 提取码: 6skv
3. 开始部署
3.1 Postgres数据库安装及配置
Postgres镜像拉取
打开Docker服务,点击 > 镜像 > 仓库
在在搜索框中输入镜像名:pgvector/pgvector
点击 下载
选择版本 :pg17 (可根据需求选择相应版本)后等待下载
注:镜像地址在国外,若nas未配置好网络代理则会无法下载成功;也可选择下载第2小节中的镜像文件导入后使用
创建容器
在Docker服务中,点击 > 镜像 > 本地镜像
选择刚刚下载好的镜像文件 pgvector/pgvector:pg17
点击 添加到容器
基本设置:可根据自己需求更改,也可保持默认
文件夹路径:添加文件夹路径(在nas中新建文件夹路径,如:根目录/docker/pgvector);装载路径:/var/lib/postgresql/data
网络:保持默认即可
端口:本地端口5432(可根据自己需求设置);容器端口5432
环境:添加用户名及密码环境变量
POSTGRES_USER=username;//数据库用户名
POSTGRES_PASSWORD=password;//数据库访问密码
其余配置项:保持默认即可
点击 应用 等待创建完成
测试数据库并新建数据库
使用数据库管理工具连接数据库,用户名及密码即为环境变量中设置的;地址为nas设备的地址;端口号5432
连接成功后新建两个数据库备用:mylobehub,mycasdoor
3.2 身份验证服务-Casdoor安装及配置
Casdoor镜像文件拉取
打开Docker服务,点击 > 镜像 > 仓库
在在搜索框中输入镜像名:casbin/casdoor
点击 下载
选择版本 :latest(可根据需求选择相应版本)后等待下载
创建容器
基本设置:可根据自己需求更改,也可保持默认
文件夹路径:添加文件夹路径(在nas中新建文件夹路径,如:根目录/docker/casdoor);装载路径:/data
网络:保持默认
端口:本地端口8008(可根据自己需求设置,避免占用);容器端口8000
环境变量
#数据源名称 user=postgres password=postgres host=localhost port=5432 sslmode=disable dbname=casdoor
dataSourceName = "user=seansiu password=123456 host=192.168.2.139 port=5432 sslmode=disable dbname=mycasdoor"
#数据库名称,刚刚新建的
dbName = mycasdoor
#数据库类型
driverName = postgres
其余配置项保持默认,点击 应用 等待容器创建完成
检测是否安装成功
浏览器地址输入 :nas地址加端口号(192.168.2.139:8008)
默认用户名-admin;密码-123
Casdoor配置
1)新建应用
点击 身份认证 > 应用 > 添加 新建应用LobeChat
复制客户端ID及客户端秘钥保存备用
重定向 URLs: http://LOBECHAT_IP:3210/api/auth/callback/casdoor (其中LOBECHAT_IP为lobechat服务可访问的地址,此处为nas的ip地址;若需要在公网使用此地址应当为公网地址;端口默认为3210,若后面创建Lobe-Chat容器改了端口这里也要做出相应更改)
在新建应用页面下面找到 注册项 ;关闭 电子邮箱及手机号
点击 保存并退出
3.3 S3存储服务-Minio安装及配置
minio镜像拉取
打开Docker服务,点击 > 镜像 > 仓库
在在搜索框中输入镜像名:minio/minio
点击 下载
选择版本 :latest(可根据需求选择相应版本)后等待下载
创建容器
基本设置:可根据自己需求更改,也可保持默认
文件夹路径:添加文件夹路径(在nas中新建文件夹路径,如:根目录/docker/minio);装载路径:/data
网络:保持默认
端口:端口需要映射两个端口9000(服务端口)、9090(控制台端口)
环境变量:正常导入minio镜像时,环境数据会自动加载。也可根据minio官方文档进行修改。还需要新增两个环境变量
MINIO_ROOT_USER = username //用户名,用以登录控制台
MINIO_ROOT_PASSWORD = password //密码,应当不小于8个字符
命令:需要添加一行命令
'server' '/data' '--address' ':9000' '--console-address' ':9090'
其余配置项:保持默认即可
点击 应用 等待容器创建完成
Minio控制台配置
在浏览器地址栏输入:http://LOBECHAT_IP:9090(如http://192.168.2.139:9090)
使用刚刚设置的用户名及密码登录控制台
1)新建桶
点击 Buckets > Create Buckets
在 Buckets Name 中输入 lobechat
点击 Create Bucket完成新建
点击 Buckets > lobechat > Access Policy > Public
2)新建Access Key
点击 Access Key > Create access key
复制 Access key 及 Secret key 保存备用后点击 Create
3.4 lobe-chat-database安装及配置
lobe-chat-database镜像拉取
打开Docker服务,点击 > 镜像 > 仓库
在在搜索框中输入镜像名:lobehub/lobe-chat-database
点击 下载
选择版本 :latest(可根据需求选择相应版本)后等待下载
创建容器
基本设置:可根据自己需求更改,也可保持默认
文件夹路径:添加文件夹路径(在nas中新建文件夹路径,如:根目录/docker/lobe-chat-db);装载路径:/data
网络:保持默认
端口:本地端口3210,容器端口3210
环境变量(注意区分http与https,此处根据自己地址选择)
#基础环境变量
# 网站域名
#lobechat访问地址,可以是域名,也可以是ip地址
APP_URL=https://your-prod-domain.com
#lobechat 服务访问密码,设置密码则需要输入密码才能访问,可以防止被爆破
#ACCESS_CODE=hffyrrgmnkgin
# DB 必须的环境变量
# 用于加密敏感信息的密钥,可以使用 openssl rand -base64 32 生成
KEY_VAULTS_SECRET='jgwsK28dspyVQoIf8/M3IIHl1h6LYYceSYNXeLpy6uk='
# Postgres 数据库连接字符串
# 格式:postgres://username:password@host:port/dbname,如果你的 pg 实例为 Docker 容器,请使用容器名
DATABASE_URL=postgres://seansiu:123456@192.168.2.139:5432/mylobehub
#身份验证服务所需环境变量
# NEXT_AUTH 相关,可以使用 auth0、Azure AD、GitHub、Authentik、zitadel 等,如有其他接入诉求欢迎提 PR
NEXT_AUTH_SECRET=3904039cd41ea1bdf6c93db0db96e250
#所使用的SSO类型
NEXT_AUTH_SSO_PROVIDERS=casdoor
#lobechat地址
NEXTAUTH_URL=https://your-prod-domain.com/api/auth
#客户端ID,casdoor控制台复制的那个id;注意此处不同的身份验证服务变量名不同,此处为XX_CASDOOR_XX
AUTH_CASDOOR_ID=25cfc7ddxxxxxxxxxxfc4
#客户端秘钥
AUTH_CASDOOR_SECRET=13fcb6f4e510fe5xxxxxxxxxxxxaa4fb74c4704
#casdoor访问地址,只在局域网使用就是局域网ip,如果要公网访问就是域名或公网ip,注意端口号统一
AUTH_CASDOOR_ISSUER=https://lobe-chat-demo.us.auth0.com
# S3 相关
#minio ID,3.3小节处获取的Access Key
S3_ACCESS_KEY_ID=xxxxxxxxxx
#minio密钥 Secret Key
S3_SECRET_ACCESS_KEY=xxxxxxxxxx
# 用于 S3 API 访问的域名或ip地址
# 注意:此处要用到9000端口
S3_ENDPOINT=https://xxxxxxxxxx.r2.cloudflarestorage.com
#minio中新建的Bucket名称lobechat
S3_BUCKET=lobechat
# 用于外网访问 S3 的公共域名,需配置 CORS(可直接用mino地址)
S3_PUBLIC_DOMAIN=https://s3-for-lobechat.your-domain.com
# S3_REGION=ap-chengdu # 如果需要指定地域
其余配置保持默认
lobe-chat配置
在浏览器地址栏中输入lobechat地址及端口号即可访问lobechat服务(LOBECHAT_IP:3210)
在chat页面点击左上角头像,可以进行登录及注册操作
可以直接使用默认账号 admin登录
也可以点击 注册 按钮注册新的账号
3.5 接入deepseek
deepseek api申请
可以直接去deepseek官网申请API Key(每个用户有10元赠送余额,目前服务器紧张,api不稳定)
也可以去百度千帆、字节豆包、硅基流动 等第三方平台申请(均有部分免费额度,相对较为稳定)
API Key接入
点击右上角 会话设置 按钮
在设置页面点击 AI服务商
在服务商中选择 deepseek(若申请的第三方api则需要选择相应服务商)
在API Key 中填入申请的api key
API 代理地址保持默认(如果是第三方服务商根据服务商文档填入相应地址,一般均保持默认即可)
点击 检查 按钮等待检查通过
点击 获取模型列表;打开deepseek V3以及DeepSeek R1模型按钮
打开右上角按钮
DeepSeek 测试
返回到会话页面
点击模型选择按钮,选择相应模型
在对话输入框输入对话内容即可开始对话
4. 结束语
现在你已经可以在任何终端使用lobechat进行对话,上传文件等一系列操作;只需要登录账号即可同步数据,无需担心更换设备或清除浏览器缓存丢失数据!!
lobechat还支持大多数模型api,可以将更多大模型接入lobechat。