数码杂锅

  • 首页
  • docker应用
    • docker知识
    • docker可视化管理
    • AIGC相关
    • 内网穿透
    • 在线文档
    • 笔记软件
    • 聊天软件
    • 刮削工具
    • 浏览器
    • 运维平台
    • 音乐软件
    • 网盘工具
    • 网络工具
    • 书籍管理
    • 在线教育
    • 备份同步
    • 相册管理
    • 协同办公
    • 抽奖系统
    • 稍后阅读
    • 工具集软件
    • 脚本平台
    • 密码管理
    • 数据库管理
    • 族谱管理
    • 思维导图
    • 视频会议
    • 文件管理
    • 监控管理
    • 远程桌面
    • Nas系统
    • 下载工具
    • devops代码托管
    • 导航书签
    • 办公软件
    • 聚合网盘
    • 智能家居
    • 网盘搜索
    • 影音播放
  • Nas杂项
    • 飞牛
    • 群晖
  • 电脑知识
  • 隐私政策
数码爱好者的分享小站
  1. Main page
  2. docker应用
  3. AIGC相关
  4. Main content

部署一款AI助手docker应用:lobechat db版

2025年4月24日 758hotness 0likes 2comments
图片

简介

官网:https://lobehub.com/zh

 

在 LobeChat 中将你的 AI 团队汇聚一处,是开源的高性能聊天机器人框架:支持语音合成、多模态、可扩展的(function Cal)插件系统,根据个性化需求灵活定制智能助手功能,解决问题,提升生产, 探索未来工作模式

面向未来, LobeChat 持续追踪前沿科技趋势, 支撑包括语音、图像等多种形式交互方式, 构建更加直观便捷并富含乐趣的使用场景。

图片
图片
图片
图片
图片
图片
图片

 

安装操作

本次部署还是在飞牛nas的docker compose环境下,nas侧端口不能和你已有应用端口冲突,如群晖等其他nas可能还需对应修改nas侧映射目录或手动建立目录

本篇相关yml等文件下载链接:https://gitee.com/hswz5525/dockercompose

飞牛你可以直接在应用商店一键部署,也可以使用compose部署

compose部署我这里使用的是服务端数据库版本(database 版、db版)的lobechat

非database 版本的 LobeChat 将设置、对话数据存储到浏览器缓存 (IndexedDB) 中,如果清理了浏览器缓存,或者跨设备使用,则需要重新设置 LobeChat,必要时还要同步对话数据,降低了使用的便利性

本次db版部署使用的是局域网ip部署模式,默认使用的是casdoor鉴权。域名部署模式请参考官方文档,域名模式默认使用的是logto鉴权(这里提示下logto鉴权下,登录只能通过https 协议或http://localhost:3002)。

以下是非db版的compose代码,我估计飞牛商店里的应该是非db版的,顺便贴一下:

services:
    lobe-chat:
        ports:
            - 3210:3210
        environment:
            - OPENAI_API_KEY=sk-zryL9Mr91AjUP54r7c4b7f66Fe534dEaA50aD3A73bC70892
            - ACCESS_CODE=123456
        container_name: lobe-chat
        image: lobehub/lobe-chat

这里OPENAI_API_KEY的值需要替换成的你openai_api_key

以下为db版教程,过程较为复杂,需要耐心仔细才能部署成功。
db版使用ssh部署,因为官方是这么部署的,会下载初始化的一些文件
首先还是在nas里创建个lobechat的项目文件夹
图片
然后ssh下sudo -i 切换到root管理员账号,管理员密码和你的密码是一样的
图片
cd +lobechat项目文件夹的绝对路径,切换运行目录到你的lobechat项目文件夹下
图片
然后运行一键安装脚本
bash <(curl -fL https://raw.githubusercontent.com/lobehub/lobe-chat/HEAD/docker-compose/local/setup.sh) -f -l zh_CN
如果连不上github就在链接前加代理https://gh.api.99988866.xyz/
bash <(curl -fL https://gh.api.99988866.xyz/https://raw.githubusercontent.com/lobehub/lobe-chat/HEAD/docker-compose/local/setup.sh) -f -l zh_CN
图片
安装完成后,会生成鉴权应用casdoor的用户名admin,随机密码,客户端密钥,请记录好
安装好后项目文件夹内容如下
图片
然后执行以下命令,替换命令中的ip为你的nasip
sed -i 's/localhost/192.168.1.112/g' docker-compose.yml
图片
然后在docker管理器内创建项目,选择lobechat的项目文件夹
图片
把network-service容器配置里的casdoor的nas侧端口改成8011,因为8000被飞牛占用了
图片
同样的casdoor容器配置里origin的端口也是8011
图片
lobe容器配置里AUTH_CASDOOR_ISSUER端口也是8011
图片
把postgresql数据库应用的nas侧端口改一下,因为大概率会占用,或者删除ports及端口行也行
图片
构建完成后有5个容器
图片
一、登录naisp:3210,就进入主界面
图片
二、登录nasip:9000进入minIO的ui网址
图片
默认用户名YOUR_MINIO_USER,密码:YOUR_MINIO_PASSWORD
这里左侧菜单access keys里的 access key以及 secret key记录下(.env文件里也有)
图片
三、然后登录nasip:8011,进入casdoor网址
输入ssh里生成的账户admin,及随机密码
图片
在身份认证-提供商-添加,增加存储服务应用minIO,配置如图所示
图片
对应的ip都改成你的nasip,客户端id和密钥就是minIO网址里记录的那两个数值
图片
四、casdoor网址里,在身份认证-应用里,编辑app-built-in
图片
这里主要是添加重定向url,按照你的nasip修改

http://192.168.1.112:3210/api/auth/callback/casdoor
图片
然后再提供商这里添加存储服务提供商minIO
图片
其他就不用修改了
五、casdoor网址里,在身份认证-资源-上传文件里,能正常上传文件就是minIO配置正确了
图片
上传文件对话框里,选择右下角所有文件,随便上传一个文件
图片
上传成功才是存储服务minIO配置成功
图片
六、登录管理员账户
再次登录nasip:3210,选择右上角的图标,进入登录界面
图片
这时就能正确显示鉴权页面了,你可以直接点admin登录,也可以输入之前的用户名admin和随机密码登录,如果要添加其他用户你可以在casdoor里添加
图片
图片
这样就正常登录成功了
图片
软件使用这里就不介绍了,使用教程网上很多了,官方文档里的就很详细了。
最终调整后的compose代码如下:
name: lobe-chat-database
services:
  network-service:
    image: alpine
    container_name: lobe-network
    ports:
      - '${MINIO_PORT}:${MINIO_PORT}' # MinIO API
      - '9001:9001' # MinIO Console
      - '8011:${CASDOOR_PORT}' # Casdoor
      - '${LOBE_PORT}:3210' # LobeChat
    command: tail -f /dev/null
    networks:
      - lobe-network

  postgresql:
    image: pgvector/pgvector:pg16
    container_name: lobe-postgres
    ports:
      - '15432: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

  minio:
    image: minio/minio
    container_name: lobe-minio
    network_mode: 'service:network-service'
    volumes:
      - './s3_data:/etc/minio/data'
    environment:
      - 'MINIO_ROOT_USER=${MINIO_ROOT_USER}'
      - 'MINIO_ROOT_PASSWORD=${MINIO_ROOT_PASSWORD}'
      - 'MINIO_API_CORS_ALLOW_ORIGIN=http://192.168.1.112:${LOBE_PORT}'
    restart: always
    command: >
      server /etc/minio/data --address ":${MINIO_PORT}" --console-address ":9001"


  casdoor:
    image: casbin/casdoor
    container_name: lobe-casdoor
    entrypoint: /bin/sh -c './server --createDatabase=true'
    network_mode: 'service:network-service'
    depends_on:
      postgresql:
        condition: service_healthy
    environment:
      RUNNING_IN_DOCKER: 'true'
      driverName: 'postgres'
      dataSourceName: 'user=postgres password=${POSTGRES_PASSWORD} host=postgresql port=5432 sslmode=disable dbname=casdoor'
      origin: 'http://192.168.1.112:8011'
      runmode: 'dev'
    volumes:
      - ./init_data.json:/init_data.json

  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
      minio:
        condition: service_started
      casdoor:
        condition: service_started

    environment:
      - 'APP_URL=http://192.168.1.112:3210'
      - 'NEXT_AUTH_SSO_PROVIDERS=casdoor'
      - 'KEY_VAULTS_SECRET=Kix2wcUONd4CX51E/ZPAd36BqM4wzJgKjPtz2sGztqQ='
      - 'NEXT_AUTH_SECRET=NX2kaPE923dt6BL2U8e9oSre5RfoT7hg'
      - 'AUTH_URL=http://192.168.1.112:${LOBE_PORT}/api/auth'
      - 'AUTH_CASDOOR_ISSUER=http://192.168.1.112:8011'
      - 'DATABASE_URL=postgresql://postgres:${POSTGRES_PASSWORD}@postgresql:5432/${LOBE_DB_NAME}'
      - 'S3_ENDPOINT=http://192.168.1.112:${MINIO_PORT}'
      - 'S3_BUCKET=${MINIO_LOBE_BUCKET}'
      - 'S3_PUBLIC_DOMAIN=http://192.168.1.112:${MINIO_PORT}'
      - 'S3_ENABLE_PATH_STYLE=1'
      - 'LLM_VISION_IMAGE_USE_BASE64=1'
    env_file:
      - .env
    restart: always

volumes:
  data:
    driver: local
  s3_data:
    driver: local

networks:
  lobe-network:
    driver: bridge

 

相关文章

  • Nas上部署一款开箱即用的在线视频播放器docker应用:MoonTV
  • Nas上部署一款开源、轻量的在线视频搜索与观看docker应用:libretv
  • 告别U盘拷来拷去!只要几分钟就能拥有个人或企业专属「影音库」:mediacms
  • Nas上部署智能表格+工作流+应用搭建的一站式数字化平台:SeaTable最新5.3版本
  • Nas上docker部署一个动画数字人:Awesome Digital Human
  • Nas上docker部署web文件分享快递柜:FileCodeBox
  • nas上部署m3u8在线视频下载工具:mediago
  • 一款多平台的开源电子书阅读器:Anx-Reader
Tag: Nothing
Last updated:2025年4月24日

红薯丸子

好好学习,天天向上

Like
< Last article
Next article >

Comments

  • Anonymous

    https://raw.githubusercontent.com/lobehub/lobe-chat/HEAD/docker-compose/local/setup.sh 失效了

    2025年5月10日
    Reply
    • 红薯丸子

      @Anonymous 下次我还是传自己网盘吧。。

      2025年5月11日
      Reply
  • razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
    Cancel

    COPYRIGHT © 2024 红薯丸子. ALL RIGHTS RESERVED.

    Theme Kratos Made By Seaton Jiang

    EnglishEnglish
    简体中文简体中文