SeanSiu
SeanSiu
发布于 2025-02-12 / 220 阅读
0
0

在nas上部署lobe-chat-database 支持deepseek

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。


评论