经过多年快速发展,人工智能已融入我们生活的方方面面。它不仅成为日常生活的得力助手,也是工作中的高效工具。您现在阅读的这段文字,正是在我采纳了AI提供的修改建议后完成的。所以拥有一个自己的AI项目是一件非常有必要的事情。这里给大家带来一个极其优秀的支持语音合成、多模态、带有可扩展插件系统的开源项目-LobeChat
此教程对于缺乏IT技能的人来说难度较大。如在部署过程中遇到问题,欢迎在评论区留言,我会及时解答。如果条件不允许,可以直接下载 (Cherry Studio)并绑定API进行使用。没有API的同学在阅读前请先通过我的邀请链接注册硅基流获得API以及14元的赠金。
如果你连API都不想注册那么通过此链接注册Genspark获得6个月免费会员,就可以使用AI搜索 GPT4O claude3.5等顶级模型
教程开始前你首先需要具备以下知识和技能
==1、一个稳定可连接的服务器,并且已部署好LNMP环境==
==2、能进行基本的Linux下的命令行操作==
==3、已经安装好docker以及docker compose。==
==4、拥有一个可以用的域名==
==如果你尚未掌握这些技能,请自行搜索相关教程并学习。==
部署前的准备
想要完整的运行 LobeChat 数据库版本,需要至少拥有如下四个服务
- LobeChat 数据库版本自身
- 带有 PGVector 插件的 PostgreSQL 数据库
- 支持 S3 协议的对象存储服务
- 受 LobeChat 支持的 SSO 登录鉴权服务
稍后将通过Docker Compose部署第1项和第2项。
S3协议的对象储存服务将以Cloudflare为例。
登录鉴权服务将以Auth0为例
通过Docker-compose部署LobeChat数据库版及PostgreSQL数据库并设置鉴权服务
在你想要部署的文件夹里新建Docker-compose.yml文件 并复制以下内容
version: '3'
# docker-compose.yml
services:
postgresql:
image: pgvector/pgvector:pg16
container_name: lobe-postgres
ports:
- 7432:5432 #7432是外部端口可根据你的需求自行更改
volumes:
- './data:/var/lib/postgresql/data'
environment:
- 'POSTGRES_USER=postgres' #数据库用户名
- 'POSTGRES_DB=lobe' #数据库名
- 'POSTGRES_PASSWORD=password' #数据库密码
healthcheck:
test: ['CMD-SHELL', 'pg_isready -U postgres']
interval: 5s
timeout: 5s
retries: 5
restart: always
lobe:
image: lobehub/lobe-chat-database
container_name: lobe-database
depends_on:
- postgresql
ports:
- 3210:3210 #左侧的端口是外部端口,可自行更改
env_file:
- .env
restart: always
docker-compose文件编辑好后,在同目录新建一个.env文件,并复制以下内容。
APP_URL=https://yourdomin.com/ #填写你的项目域名
# DB 必须
KEY_VAULTS_SECRET=jgwsK28dspyVRTUIf8/33IIH345336LYY21NXeLpy6u= #密钥可以使用openssl rand -base64 32 生成
DATABASE_URL=postgresql://postgres:password@postgresql:5432/lobe #记得修改密码
# NEXT_AUTH 相关
NEXT_AUTH_SECRET= #NextAuth 的密钥,可以使用 openssl rand -base64 32 生成
NEXT_AUTH_SSO_PROVIDERS=auth0
NEXTAUTH_URL= #参照后续鉴权内容
AUTH_AUTH0_ID= #指定鉴权服务提供商
AUTH_AUTH0_SECRET= #参照后续鉴权内容
AUTH_AUTH0_ISSUER= #参照后续鉴权内容
# S3 相关
S3_ACCESS_KEY_ID= #参照后续Cloudflare R2内容
S3_SECRET_ACCESS_KEY= #参照后续Cloudflare R2内容
S3_BUCKET= #参照后续Cloudflare R2内容
S3_ENDPOINT=#参照后续Cloudflare R2内容
S3_PUBLIC_DOMAIN=#参照后续Cloudflare R2内容
鉴权服务注册及设置。以 Auth0,为例(这里照搬官方文档)
注册并登录 Auth0,点击左侧导航栏的「Applications」,切换到应用管理界面,点击右上角「Create Application」以创建应用。
填写你想向组织用户显示的应用名称,可选择任意应用类型,点击「Create」。
创建成功后,点击相应的应用,进入应用详情页,切换到「Settings」标签页,就可以看到相应的配置信息
在应用配置页面中,还需要配置 Allowed Callback URLs,在此处填写:
http(s)://yourdomain/api/auth/callback/auth0
点击左侧导航栏的「Users Management」,进入用户管理界面,可以为你的组织新建用户,用以登录 LobeChat
更具Auth0的信息填写之前.env文件内容
NEXTAUTH_URL= #https://yourdomin.com/api/auth
AUTH_AUTH0_ID= #Auth0 应用程序的 Client ID
AUTH_AUTH0_SECRET= #Auth0 应用程序的 Client Secret
AUTH_AUTH0_ISSUER= #Auth0 应用程序的 Domain,
S3服务注册及设置,以Cloudflare R2为例
注册# Cloudflare
选择R2服务创建一个桶(BUCKET) 并且创建API(权限选择读与写)
创建完成后,就可以看到对应的 S3 API token 填入之前的配置文件
S3_ACCESS_KEY_ID= ##你创建API显示的ID
S3_SECRET_ACCESS_KEY= #你创建API显示的key
S3_BUCKET=lobechat # 你创建的桶的名字
S3_ENDPOINT=https:/xxxxx.r2.cloudflarestorage.com #CF显示存桶对外的访问域名
S3_PUBLIC_DOMAIN=https://xxxxx.your-domain.com #记得按照CF说明Cname到这个域名,由CF管理的域名会自动Cname
在R2页面下的CORS跨域设置编辑添加一下规则
[
{
"AllowedOrigins": ["https://你lobechat的domin"],
"AllowedMethods": ["GET", "PUT", "HEAD", "POST", "DELETE"],
"AllowedHeaders": ["*"]
}
]
回到你创建docker-compose.yml的目录 输入命令
docker-compose up -d
利用宝塔或着其他工具反代lobechat的外部端口,这里是3210
通过域名访问~
完成