使用 Docker 部署LobeChat服务端数据库版

本文最后更新于 103 天前, 如有失效请评论区留言.

使用 Docker 部署LobeChat服务端数据库版

当前版本暂不支持Minio私有对象存储,即图片上传功能不可用。官方文档已经足够详细了,这里我简单部署实践一下

准备工作

支持docker环境即可或者k8s环境也行,这里简单操作, 我已经将相关镜像同步到国内。

docker compose 文件

services:

  postgresql:
    image: ccr.ccs.tencentyun.com/k7scn/postgresql:16
    container_name: postgresql
    # ports:
    #   - '5432:5432'
    volumes:
      - 'postgresql_data:/bitnami/postgresql'
    environment:
      - 'POSTGRESQL_DATABASE=lobe'
      - 'POSTGRESQL_PASSWORD=lobepassw0rd'

  minio:
    image: ccr.ccs.tencentyun.com/k7scn/minio:2024
    container_name: minio
    ports:
      - '9000:9000'
      - '9001:9001'
    volumes:
      - 'minio_data:/bitnami/minio/data'
    environment:
      - 'MINIO_ROOT_USER=lobe'
      - 'MINIO_ROOT_PASSWORD=lobepassw0rd'
      - 'MINIO_DEFAULT_BUCKETS=lobe'

  lobe:
    image: ccr.ccs.tencentyun.com/k7scn/lobe-chat-database
    container_name: lobe
    ports:
      - '3210:3210'
    depends_on:
      - postgresql
      - minio
    environment:
      - 'KEY_VAULTS_SECRET=Px/trSNqJMIQ0SbOIDhIpDiNv2eUdNFf8ZUoh76g9+c=' # openssl rand -base64 32
      - 'DATABASE_URL=postgres://postgres:lobepassw0rd@postgresql:5432/lobe'
      - NEXT_AUTH_SECRET=q5JdZ9lgcOZ79vuJSYAFyOIudCX1CDlMzpnKcGN21 # openssl rand -base64 32
      - ACCESS_CODE=hhhhhh # 后续版本可能去掉
      - NEXT_AUTH_SSO_PROVIDERS=github
      - GITHUB_CLIENT_ID=xxxx # 你的github app client id
      - GITHUB_CLIENT_SECRET=xxxxx # 你的github app client secret
      - NEXTAUTH_URL=http://100.90.80.25:3210/api/auth # 不用域名访问,一定要配置,具体改成你的ip
	  # 下述配置暂时不可用,有bug,图片上传功能有问题
      - S3_ACCESS_KEY_ID=lobe
      - S3_SECRET_ACCESS_KEY=lobepassw0rd
      - S3_ENDPOINT=http://100.90.80.25:9000
      - S3_BUCKET=lobechat
      - NEXT_PUBLIC_S3_DOMAIN=http://100.90.80.25:9000

volumes:
  postgresql_data:
    driver: local
  minio_data:
    driver: local

将上述文件保存为lobe.yaml

配置身份验证功能

身份验证服务

从官方文档来看,我总结了一下还是GitHub Auth简单点, 基本没啥门槛。

配置 Github 身份验证服务

  1. 创建一个新的 Github App, 填写 Github App name、Homepage URL、Callbak URL,主要写Callbak URL地址要对我的示例http://100.90.80.25:3210/api/auth/callback/github

  1. 没需求Webhook勾去掉

  1. 设置读取邮件地址权限及仅个人使用, 公开使用比较麻烦

  1. 创建成功后,点击「Generate a new client secret」创建客户端 Secret,并保存下来,更新lobe.yaml的GITHUB_CLIENT_IDGITHUB_CLIENT_SECRET

配置对象存储

推荐自建, 但是目前功能不可用,等待官方修复, 近期会修复

使用cloudflare的r2储存上传图片提示错误#3413

启动

docker compose -f lobe.yaml up -d

中间可能lobe启动失败了,稍等片刻或者等pg启动完成后,再执行一下

docker compose -f lobe.yaml up -d

访问

访问地址 http://100.90.80.25:3210

推荐API中转

OpenAI 官方渠道折扣为6.8折,Azure渠道折扣为5折 TurboAI你值得拥有,我已经体验很长时间了,很稳定。

Sponsor

Like this article? $1 reward

Comments

caoih ·v1 IP未知 Reply

有试过新版吗。截止今天的最新版好像还是不行。配置了知识库好像也不显示

ysicing ·v1 北京 Reply

@caoih 已经ok了,晚上我再更新一篇文章

caoih ·v1 俄亥俄哥伦布 Reply

@ysicing 感谢,顺带问一下,这个玩意儿。直接配环境变量有用吗。next_public开头的是不是要放dockerfile里重新build。 NEXT_PUBLIC_S3_DOMAIN

ysicing ·v1 北京 Reply

@caoih 最新的镜像么,是有用的。

刘郎 ·v1 贵州黔南 Reply

目前开源的聊天机器人框架还是挺多的 LobeChat也挺不错 如果不是重度人工智能大型语言模型爱好者 使用一些现成的人工智能聊天助手也是个不错的选择 当然 如果选择自己动手折腾 那就更好了