【详细教程】Docker部署LobeChat数据库版 轻松体验最美观、最先进、最好用的AI聊天应用

同步来源:树洞剪藏 源站剪藏 ID:604 原文地址:https://www.deepflood.com/post-13559-1
【详细教程】Docker部署LobeChat数据库版 轻松体验最美观、最先进、最好用的AI聊天应用
Deep Flood beta AI 摸鱼 情感 影音 运动 羊毛 推广 NodeSeek
set 限制解除
人工智能 摸鱼闲聊 情感八卦 影音图文 运动赛事 游戏同好 羊毛福利 服务推广 投资理财 电子设备 运营反馈 内部版块 沙盒测试
【详细教程】Docker部署LobeChat数据库版 轻松体验最美观、最先进、最好用的AI聊天应用
myns999 ⚠️Lv 2 楼主 种子 6days ago edited 6days ago in 人工智能 #0
一步一步,轻松部署和使用目前 最美观、最先进、最好用(存疑) 的AI聊天应用LobeChat。
适合大部分mjj,无特殊条件,超低成本,不会翻车。
懒得做? 点我体验官方实例,每月50w免费积分,支持云同步(非aff)
声明:DeepFlood原创首发,所有操作均由本人亲自试验总结而来,确保可行
项目简介
LobeChat是一款现代化设计的开源ChatGPT/LLMs聊天应用与开发框架,其功能丰富和更新迅速在一众竞品中遥遥领先,支持语音合成、多模态、可扩展的插件系统,包含强大的知识库和MCP功能,允许用户轻松创建大模型应用,享受全天候、多平台、云同步的智能体验。
更多信息,请查阅 官方网站 、 官方文档 和 官方仓库
条件准备
为了充分享受完整功能,同时降低维护成本,需要准备以下资源:
一台有公网IPv4的境外VPS,Linux环境(本教程基于Debian 12),推荐配置为2C4G,其中内存不得低于2G。为了保证境内用户访问体验,最好使用优化线路机器或CDN加速。
预先安装最新Docker环境(内置Docker Compose),本教程不提供具体操作,可以参考 菜鸟教程 。
一个GitHub账户,用于提供注册登录功能,以及调用免费的嵌入模型,后者具体限制请参考 GitHub Docs 。
一个Cloudflare账户,用于创建和连接S3存储桶。为了方便,推荐使用该账户下的一个域名作为服务域名。
部署步骤
第一步:环境变量
让我们进入工作目录,比如 /etc/lobechat ,在此目录中创建一份 .env 文件,写入环境变量:
网站配置
APP_URL= KEY_VAULTS_SECRET=
Postgres 数据库配置
LOBE_DB_NAME=lobechat POSTGRES_PASSWORD=
Next Auth 配置
NEXT_AUTH_SECRET= NEXT_AUTH_SSO_PROVIDERS=github AUTH_GITHUB_ID= AUTH_GITHUB_SECRET= NEXTAUTH_URL=
Cloudflare S3 配置
S3_BUCKET= S3_ENDPOINT= S3_PUBLIC_DOMAIN= S3_ACCESS_KEY_ID= S3_SECRET_ACCESS_KEY= LLM_VISION_IMAGE_USE_BASE64=1
其他配置
CRAWLER_IMPLS=jina JINA_READER_API_KEY= ENABLE_OIDC=1 OIDC_JWKS_KEY= DEFAULT_FILES_CONFIG=embedding_model=github/openai/text-embedding-3-small GITHUB_TOKEN=
接下来,我们依次填写上面的信息。
网站配置:
APP_URL 填写你的域名,比如 https://lobechat.abcd.com ,用户最终通过这个域名进行访问。
KEY_VAULTS_SECRET 是必需的安全措施,在VPS上执行 openssl rand -base64 32 获得一串密钥填上去。
Postgres 数据库配置:
LOBE_DB_NAME 默认不变,填写一个比较复杂的 POSTGRES_PASSWORD 即可。
Next Auth 配置:
NEXT_AUTH_SECRET 也是必需的安全措施,参考前面的 KEY_VAULTS_SECRET 进行创建和填写,二者不得相同。
剩余的字段请参考 官方文档 ,最终你将得到类似于这样的结果:
NEXT_AUTH_SSO_PROVIDERS=github AUTH_GITHUB_ID=93R3eR2rRTJYfwgrfee5 AUTH_GITHUB_SECRET=3289r389r828e989fd8gh4343r42refgeht4gag6 NEXTAUTH_URL=https://lobechat.abcd.com/api/auth
Cloudflare S3 配置:
LLM_VISION_IMAGE_USE_BASE64 默认为1,表示以base64形式上传图片,以支持视觉模型。
剩余的字段请参考 官方文档 ,最终你将得到类似于这样的结果:
S3_BUCKET=lobechat S3_ENDPOINT=https://0b33a03b5c993fd2f453379dc36558e5.r2.cloudflarestorage.com S3_PUBLIC_DOMAIN=https://lobechat-s3.abcd.com S3_ACCESS_KEY_ID=9998d6757e276cf9f1edbd325b7083a6 S3_SECRET_ACCESS_KEY=55af75d8eb6b99f189f6a35f855336ea62cd9c4751a5cf4337c53c1d3f497ac2
其他配置:
推荐使用现成的Jina服务抓取网页内容,用于联网搜索。因此 CRAWLER_IMPLS 默认为jina, JINA_READER_API_KEY 请从 Jina官网 免费获取。
LobeChat目前推出了PC端,未来还将推出移动端,为了连接云端部署的服务,我们设置 ENABLE_OIDC 为1, OIDC_JWKS_KEY 请参考 官方文档 生成并填写。
构建知识库需要嵌入模型,恰好GitHub提供每日免费使用次数,我们只需提供一个 GITHUB_TOKEN ,请访问 GitHub Developer Settings 进行创建,推荐设置 Expiration 为No Expiration,防止过期。
最终你将得到类似于这样的结果:
CRAWLER_IMPLS=jina JINA_READER_API_KEY=jina_xxxxxxxxxxxx ENABLE_OIDC=1 OIDC_JWKS_KEY=(此处省略一大串) DEFAULT_FILES_CONFIG=embedding_model=github/openai/text-embedding-3-small GITHUB_TOKEN=github_pat_xxxxxxxxxx
至此,环境变量填写完毕,类似于下面这样:
网站配置
APP_URL=https://lobechat.abcd.com KEY_VAULTS_SECRET=SX2O5D+SVD/KNm5V+qYI8vl2wOgx1t2L69OQfCW6kd8=
Postgres 数据库配置
LOBE_DB_NAME=lobechat POSTGRES_PASSWORD=G8Zq86vLkPyI7GfXFyJV2
Next Auth 配置
NEXT_AUTH_SECRET=FAB6CyotOTIAK9/vd39qaa/MtAlGdxp89JhliCugrZI= NEXT_AUTH_SSO_PROVIDERS=github AUTH_GITHUB_ID=93R3eR2rRTJYfwgrfee5 AUTH_GITHUB_SECRET=3289r389r828e989fd8gh4343r42refgeht4gag6 NEXTAUTH_URL=https://lobechat.abcd.com/api/auth
Cloudflare S3 配置
S3_BUCKET=lobechat S3_ENDPOINT=https://0b33a03b5c993fd2f453379dc36558e5.r2.cloudflarestorage.com S3_PUBLIC_DOMAIN=https://lobechat-s3.abcd.com S3_ACCESS_KEY_ID=9998d6757e276cf9f1edbd325b7083a6 S3_SECRET_ACCESS_KEY=55af75d8eb6b99f189f6a35f855336ea62cd9c4751a5cf4337c53c1d3f497ac2 LLM_VISION_IMAGE_USE_BASE64=1
其他配置
CRAWLER_IMPLS=jina JINA_READER_API_KEY=jina_xxxxxxxxxxxx ENABLE_OIDC=1 OIDC_JWKS_KEY=(此处省略一大串) DEFAULT_FILES_CONFIG=embedding_model=github/openai/text-embedding-3-small GITHUB_TOKEN=github_pat_xxxxxxxxxx
第二步:Docker Compose配置
在工作目录下创建一份 docker-compose.yml ,填写下面的内容:
name: lobe-chat-database services: network-service: image: alpine container_name: lobe-network restart: always ports:
- '127.0.0.1:3210:3210' # LobeChat command: tail -f /dev/null networks:
- lobe-network
postgresql: image: pgvector/pgvector:pg17 container_name: lobe-postgres ports:
- '127.0.0.1:5432:5432' volumes:
- './data:/var/lib/postgresql/data' environment:
- 'POSTGRES_DB=${LOBE_DB_NAME}'
- 'POSTGRES_PASSWORD=${POSTGRES_PASSWORD}' healthcheck: test: [ 'CMD-SHELL' , 'pg_isready -U postgres' ] interval: 5s timeout: 5s retries: 5 restart: always networks:
- lobe-network
version lock ref: https://github.com/lobehub/lobe-chat/pull/7331
searxng: image: searxng/searxng container_name: lobe-searxng volumes:
- './searxng-settings.yml:/etc/searxng/settings.yml' environment:
- 'SEARXNG_SETTINGS_FILE=/etc/searxng/settings.yml' restart: always networks:
- lobe-network env_file:
- .env
lobe: image: lobehub/lobe-chat-database container_name: lobe-chat network_mode: 'service:network-service' depends_on: postgresql: condition: service_healthy network-service: condition: service_started environment:
- 'DATABASE_URL=postgresql://postgres:${POSTGRES_PASSWORD}@postgresql:5432/${LOBE_DB_NAME}'
- 'SEARXNG_URL=http://searxng:8080' env_file:
- .env restart: always entrypoint: > /bin/sh -c " /bin/node /app/startServer.js & LOBE_PID=$! sleep 3 wait $LOBE_PID "
volumes: data: driver: local
networks: lobe-network: driver: bridge
该配置负责项目核心、数据库和内建搜索引擎的创建,将服务绑定到 127.0.0.1 的3210端口。
为了使用内建搜索引擎,还需要在工作目录下提供一份 searxng-settings.yml ,请从 GitHub 获得完整代码。
注意,我们需要调整第78行开始的一部分字段,像这样:
formats:
- html
- json # 加上json server:
Is overwritten by ${SEARXNG_PORT} and ${SEARXNG_BIND_ADDRESS}
port: 8080 # 最好改一下,保持一致 bind_address: "127.0.0.1"
第三步:启动服务和反向代理
在工作目录,使用 ls -a 命令查看所有文件,严格按上面的操作完成后,将是这样的:
root@localhost:/etc/lobechat # ls -a . .. docker-compose.yml . env searxng-settings.yml
确保一切准备就绪,执行 docker compose up -d 启动所有服务,耐心等待。
然后,使用你熟悉的方式(Nginx/Caddy)反向代理 127.0.0.1 的3210端口,绑定域名和证书。
部署成功后,通过环境变量中设定的 APP_URL 访问即可开始使用,界面类似于 官方实例 。
尾声:后续操作
我们已经完成部署,目前可以使用几乎全部功能,具体玩法和问题请参考 官方文档 和 官方仓库 。
项目内置了大部分常见API站点的接入,也可以配合另一个知名API聚合中转项目 New API 使用。
2 0 12 引用 回复
1 2 3
myns999 楼主 种子 5days ago edited 5days ago #12
统一回应几个问题:
为什么内存这么大?
因为这个是功能最完整的 数据库版本 ,而且我们去除了官方脚本中的内建身份验证系统和对象存储系统,已经做了一轮内存缩减,具体占用情况参考下面。
实际占用不到1G,推荐内存大一点,是怕 和其他项目共存 导致卡顿。
CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I /O BLOCK I /O PIDS e251f3ea2562 lobe-chat 0.00% 467.7 MiB / 7.628 GiB 5.99% 54.8 MB / 149 MB 0 B / 0 B 23 31 f07a0ded00 lobe-searxng 0.00% 112.4 MiB / 7.628 GiB 1.44% 482 kB / 66.4 kB 0 B / 5.38 MB 10 43204 f205854 lobe-network 0.00% 340 KiB / 7.628 GiB 0.00% 54.8 MB / 149 MB 0 B / 0 B 1 1 e48f7e64126 lobe-postgres 0.00% 25.17 MiB / 7.628 GiB 0.32% 6.69 MB / 34.7 MB 0 B / 3.02 MB 6
用cf行不行?
可以,官方提供了 残血版本 ,支持cf/vercel,无难度。
但是,非数据库版本 功能不全,无法同步、联网和使用知识库 ,对于AI爱好者和mjj,数据库版本更好用
为什么要境外?
因为境内备案麻烦,而且不支持直接调用国外大模型,会被检测IP
内建搜索引擎也很依赖境外网络,不然啥也搜不到
没钱,服务器线路不好怎么办?
开启cf免费cdn,至少能保证境外访问不卡,以后通过代理访问。
@jiao360124 #11
0 0 引用 回复
zhh 种子 6days ago #1
看不完,收藏了
0 0 引用 回复
myns999 楼主 种子 6days ago #2
@zhh #1 慢慢来
0 0 引用 回复
昶- 种子 6days ago #3
mark
0 0 引用 回复
CloudFlood 种子 6days ago #4
deep起来了
云在青天水在瓶
0 0 引用 回复
gamekb 种子 6days ago #5
不错不错,bd
0 0 引用 回复
pocketmiddle 种子 6days ago #6
这么好的帖子才这点少的人跟帖回复?
必须赞一个。
0 0 引用 回复
myns999 楼主 种子 5days ago #7
不如灌水
0 0 引用 回复
GloryBoy 5days ago #8
不错
CNBoy 四海部落 | CNBoy Store | 以针会友 | Telegram Me
0 0 引用 回复
ni456 种子 5days ago #9
看不完,收藏了
0 0 引用 回复
GloryBoy 5days ago #10
可以,收藏了
CNBoy 四海部落 | CNBoy Store | 以针会友 | Telegram Me
0 0 引用 回复
1 2 3
内容 预览 对照
支持 markdown语法
鼓励友善发言,禁止人身攻击
xxxxxxxxxx
1
1
AC娘
洋葱头
小黄鸡
Fluent
App
发布评论(Ctrl+Enter)
88
等级 Lv 0 鸡腿 95 关注 0 回复 0 我 0
主题帖 0 评论数 0 粉丝 0 收藏 1 私信 0 发帖
快捷功能区 推荐阅读 管理记录 幸运抽奖 邀请好友 合作商家 友站链接
📈用户数目📈
目前论坛共有6589位用户
🎉欢迎新用户🎉
anerd
bryanw
SimonTwiligh
hh10573898
uknowhua
deepfood
romantcig
toong
站内导航 关于本站 隐私协议 sitemap
商业推广 合作商家展示
其他平台 电报频道 电报群组
联系我们
Copyright © 2025 - now, All rights Reserved