网站首页 > 技术文章 正文
各位小伙伴们好,我是老宁,我回来了。之前分享过一期关于大语言模型(LLM)应用开发平台 Dify 的部署教程,受到了很多朋友的关注。时至今日,Dify 项目已经有了长足的更新,原有的部署方式已不再适用。应大家的要求,今天,一篇全新的、针对最新版 Dify 的部署教程终于来了。
项目地址
https://github.com/langgenius/dify
安装部署
因为Dify项目改动较大,如果按照原来的方式下载 docker-compose.yml 文件直接运行是不行的,所以需要先把整个项目下载到本地。
下载
如果你了解git,并且知道如何在群晖上使用 git 克隆项目,那么可以采用如下命令。
git clone https://github.com/langgenius/dify.git
第二种方法是手动下载并导入到群晖。
在浏览器中打开下面网址。
https://github.com/langgenius/dify/releases
找到最新版本,把源码(zip文件)下载到本地。
把压缩包上传到群晖并进行解压。
修改配置
因为我们是在群晖安装 Dify,所以不需要项目自带的反向代理相关容器,所以要删除相关配置。
注释(或删除)certbot 服务:这是用于为内置 nginx 自动申请和续订 SSL 证书的工具。
注释(或删除)nginx 服务:这是内置的反向代理服务器。
注释(或删除)opensearch 服务:Dify 的 docker-compose.yaml 文件默认使用的向量数据库是 weaviate。opensearch 只是一个可选项,ulimits配置会引起群晖Container Manger错误。
移除 nginx 后,api(后端)和 web(前端)服务就无法通过 nginx 容器被外界访问了。因此,必须手动将它们的端口暴露到群晖主机上,以便我们自己的反向代理能够找到它们。
找到 api 服务,在 depends_on 或 volumes 的同级添加 ports 部分。Dify 的 API 内部运行在 5001 端口。为避免与群晖系统冲突,建议映射到主机的一个不常用端口,例如 5301。
找到 web 服务,同样添加 ports 部分。Dify 的 Web 前端内部运行在 3000 端口。这个端口通常不冲突,可以直接映射。
接着再修改env文件了,把.env.example文件名重命名为.env。
把.env文件拖入文本编辑器中修改,把下列几个URL路径都修改为反向代理的域名地址。(域名前缀自定义)
如果有不懂反向代理的小伙伴可以看下面的文章。
[[群晖小白系列(十二)给群晖中的Docker第三方服务加上SSL,从原理说起!]]
[[群晖Docker系列(十六)群晖搭建 Nginx Proxy Manager,个人最推荐的反代工具]]
最后,我们需要在 docker-compose.yaml 文件所在的目录(dify-1.4.1/docker/)下,手动创建以下几个用于数据持久化的文件夹(如果它们不存在的话)。
- /volumes/app/storage
- /volumes/db/data
- /volumes/redis/data
- /volumes/weaviate
- /volumes/plugin_daemon
启动项目
接下来就可以启动项目了。打开群晖 Container Manager,新增项目,路径一定要选择到docker-compose.yml文件所在的文件夹,并使用现有的docker-compose.yml文件。
构建成功后,项目下所有的容器都应该呈绿色。如果构建过程中报路径找不到错误,那么应该是没有创建对应的文件夹,按提示创建即可。
反向代理
接下来配置反向代理,下面以Nginx Proxy Manager进行演示。
打开Nginx Proxy Manager后台,增加新的一个域名,转发的IP为群晖内网IP,端口为前面docker-compose文件中web服务端口。
在 Custom locations 中,新增 /console/api、/api、/v1、/files路径,都转发群晖的IP上,转发的端口和前面 docker-compose 文件中API服务的端口号保持一致。(四个路径都添加上去)
最后记得在SSL中选择SSL证书。
运行
用浏览器打开【https://反代域名/install】进行管理员账户设置。
配置完成后就可以用邮箱和密码登录了。
其他的用法可以参考老宁前面写的一篇。
[[群晖Docker系列(二十六)使用群晖部署自己的高级AI助理,个人、企业降本提效的必备工具]]
后记
这段时间由于工作变动,生活和工作上都需要一些时间来适应和调整,所以暂时放下了更新的脚步,也感谢大家的耐心等待。 大家都知道,写这种详细的技术分享更多是出于一份热爱,需要投入大量的时间和精力。现在,老宁调整好了节奏,重新回来啦!后面会努力保持更新,继续为大家带来老宁一贯的通俗易懂、手把手风格的干货内容。
我是老宁
一个热爱技术的程序员和极客,群晖NAS深度玩家!
专注NAS相关技术分享,原创!干货!
觉得老宁的文章对你有帮助,记得点赞、收藏、加关注!
猜你喜欢
- 2025-06-28 Google 2025 I/O 大会发布内容一览
- 2025-06-28 CRMEB PC 端前端开发规范:从基础到进阶的实践要点
- 2025-06-28 安装Dify源码并修改前端发布(如何进行源码安装)
- 2025-06-28 智慧督导巡课系统建设方案解析:实现教室前端利旧与新建教室部署
- 2024-10-06 从零开始部署前后端分离项目 前后端分离项目的部署方式有哪些
- 2024-10-06 Jenkins自动部署笔记(二)全局工具配置
- 2024-10-06 部署Nginx-一个ip,多个域名,部署多个项目
- 2024-10-06 Spring Boot Serverless 实战系列“部署篇”| Mall 应用
- 2024-10-06 阿里大佬浅谈大型项目前端架构设计【值得推荐】
- 2024-10-06 Node.js学习笔记:入门安装及部署 node.js安装配置
你 发表评论:
欢迎- 572℃几个Oracle空值处理函数 oracle处理null值的函数
- 569℃Oracle分析函数之Lag和Lead()使用
- 555℃Oracle数据库的单、多行函数 oracle执行多个sql语句
- 550℃0497-如何将Kerberos的CDH6.1从Oracle JDK 1.8迁移至OpenJDK 1.8
- 549℃Oracle 12c PDB迁移(一) oracle迁移到oceanbase
- 540℃【数据统计分析】详解Oracle分组函数之CUBE
- 529℃最佳实践 | 提效 47 倍,制造业生产 Oracle 迁移替换
- 523℃Oracle有哪些常见的函数? oracle中常用的函数
- 最近发表
- 标签列表
-
- 前端设计模式 (75)
- 前端性能优化 (51)
- 前端模板 (66)
- 前端跨域 (52)
- 前端缓存 (63)
- 前端react (48)
- 前端aes加密 (58)
- 前端脚手架 (56)
- 前端md5加密 (54)
- 前端富文本编辑器 (47)
- 前端路由 (61)
- 前端数组 (73)
- 前端js面试题 (50)
- 前端定时器 (59)
- Oracle RAC (73)
- oracle恢复 (76)
- oracle 删除表 (48)
- oracle 用户名 (74)
- oracle 工具 (55)
- oracle 内存 (50)
- oracle 导出表 (57)
- oracle 中文 (51)
- oracle的函数 (57)
- 前端调试 (52)
- 前端登录页面 (48)
本文暂时没有评论,来添加一个吧(●'◡'●)