今天,一篇全新的、针对最新版 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路径都修改为反向代理的域名地址。(域名前缀自定义)
读取中… 如果有不懂反向代理的小伙伴可以看下面的文章。
SSL
他们都叫我老宁,公众号:他们都叫我老宁群晖小白系列(十二)给群晖中的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】进行管理员账户设置。

配置完成后就可以用邮箱和密码登录了。


