小白学AI之:如何本地化部署Dify(截止2025.3.5日个人完成版)

2,034 阅读13分钟

前置条件:

仅列出本人的具体部署情况,以供参考,不作为部署的必要条件。
  • 电脑配置情况:
配置项参数详情
型号名称MacBook Pro
型号标识符MacBookPro17,1
芯片架构Apple M1 芯片
CPU核心配置8核(4性能核 + 4能效核)
统一内存16GB 高速统一内存
磁盘剩余可用100G
  • Dify版本:0.15.3。别问为啥不是最新版的1.0.0,最新版有坑,后面会说
  • Docker版本:
    • docker desktop 4.38.0
    • docker Engine: 27.5.1

可能遇到的坑

在开始前,先放出一些坑,如果你部署过程恰好也遇到了如下的坑,可以参考:

dify最新版本1.0.0的坑(我称之为第一坑)

截止3.6日,dify社区开源最新版是1.0.0版本,但是此版本有坑,如果你不幸刚好也是部署了此版本,

前置条件:

仅列出本人的具体部署情况,以供参考,不作为部署的必要条件。
  • 电脑配置情况:
配置项参数详情
型号名称MacBook Pro
型号标识符MacBookPro17,1
芯片架构Apple M1 芯片
CPU核心配置8核(4性能核 + 4能效核)
统一内存16GB 高速统一内存
磁盘剩余可用100G
  • Dify版本:0.15.3。别问为啥不是最新版的1.0.0,最新版有坑,后面会说
  • Docker版本:
    • docker desktop 4.38.0
    • docker Engine: 27.5.1

可能遇到的坑

在开始前,先放出一些坑,如果你部署过程恰好也遇到了如下的坑,可以参考:

dify最新版本1.0.0的坑(我称之为第一坑)

截止3.6日,dify社区开源最新版是1.0.0版本,但是此版本有坑,如果你不幸刚好也是部署了此版本,那么恭喜你,大概率在部署完成后会遇到各种问题,包括但不限于:
  • 添加大模型的api key的报错,比如:接口报Internal server error或类似这样的:

    总之,个人感觉可能1.0.0的版本还不怎么稳定,这也是为啥我降级到0.15.3的原因。

docker镜像拉取不成功:

由于众所知之的原因,docker镜像拉取不成功的概率比较大,这部分没啥好解释的,直接上车配置docker镜像源,截止3.6日本人实践还可以用的镜像源如下:
"https://docker.1ms.run",
"https://hub.rat.dev",
"https://docker.1panel.live",
"https://hub.rat.dev",
"https://proxy.1panel.live",
"https://ghcr.nju.edu.cn",
"https://docker.registry.cyou",
"https://dockercf.jsdelivr.fyi",
"https://docker.rainbond.cc",
"https://registry.cn-shenzhen.aliyuncs.com",
"https://dockertest.jsdelivr.fyi",
"https://mirror.aliyuncs.com",
"https://mirror.baidubce.com",
"https://docker.mirrors.ustc.edu.cn",
"https://docker.mirrors.sjtug.sjtu.edu.cn",
"https://mirror.iscas.ac.cn",
"https://docker.nju.edu.cn",
"https://docker.m.daocloud.io",
"https://dockerproxy.com",
"https://docker.jsdelivr.fyi",
"https://docker-cf.registry.cyou"

我是直接在docker desktop里面配置的:

配置完成别忘了重启下docker,然后终端输入:docker info,能够看到如下配置已生效即可。

dify源码克隆不了的问题:

如果你觉得这是一个问题,不妨直接下载源码(如下图),或者走[gitee](about:blank)

添加大模型的问题

具体可以参考下文的大模型配置部分,这里不再赘述。

为啥要本地部署dify

简单理解:私密性、个性化、装杯用🐶。。。

综合来看,可能基于以下原因:

  • 数据隐私:处理敏感数据时避免云端传输风险(如金融报告翻译场景)
  • 定制开发:支持修改工作流节点(如优化翻译助手的术语识别模块)
  • 成本优化:长期使用可降低API调用费用(尤其大模型高频调用场景)
  • 混合部署:无缝集成本地模型(如Ollama部署的Llama 3)

下载docker

我这里用的官网下载最新[docker desktop客户端](https://www.docker.com/),直接下载即可。

选择合适自己机子的版本,我这里选择这个:

下载之后是一个dmg包,直接双击安装即可,安装完成打开界面类似下面:

验证是否安装成功,终端执行:docker --version

看到如下版本信息

如果你是其他系统,可以参考如下的方式,具体不展开:

系统安装命令
Ubuntusudo apt-get install docker.io docker-compose
CentOSsudo yum install docker-ce && curl -L docker-compose
Windows要求WSL 2,通过winget install Docker.DockerDesktop安装

下载dify源码

如果从github上直接克隆源码不成功或速度较慢,可以直接在上面下载源码包。

我比较喜欢从tags这里进去下载:

这里选择0.15.3版本:

下载完成后得到源码包:

解压出来

运行本地dify

拉取docker镜像

进入上面获取的dify源码目录的docker目录中,进行以下三步操作:
cd dify-0.15.3/docker  # 关键目录
cp .env.example .env  # 复制环境变量模板
docker compose up -d  # 后台启动docker,会自动拉取镜像

过程会有点长,或出现拉取失败的情况,如果遇到拉取失败,一般都是docker镜像源问题,请参考上面的坑的解决方案,正常情况会看到如下:

等待镜像拉取完成后自动启动相关的镜像:

到这一步,则基本部署成功了。。。。

本地访问本地访问

浏览器中输入:http://localhost

首次进入会要设置管理员账号密码啥的,随便设置一个登录,然后就可以看到类似如下界面:

到这一步,基本就算部署成功了。。。。

配置大模型

部署成功之后,第一步一般要设置一些大模型,dify支持基本目前主流的大模型,具体位置从右上角用户头像设置进入:

下面将以集成本地deepseek和线上的其他大模型为例,简单设置两个大模型,其他的都差不多。

集成本地deepseek

前置条件:

+ 要集成本地deepseek的前提是本机部署了deepseek,具体怎么部署,详见本人另一个文档:[如何把DeepSeek"娶"回家?一份充满求生欲的本地部署指南](https://zhuanlan.zhihu.com/p/28197422815)。 + 进入dify源码的docker目录下,修改.env配置文件,在文件最后两行加上以下两句:
# 启用自定义模型
CUSTOM_MODEL_ENABLED=true
# 指定 Ollama 的 API 地址(根据部署环境调整 IP)
OLLAMA_API_BASE_URL= http://host.docker.internal:11434 

修改完之后终端在docker目的里面执行docker重启命令生效:

docker resatrt

否则在终端执行ollama启动服务命令:ollama serve

添加自定义模型:

以上条件具备之后,就可以从供应商列表中找到ollama,点击添加大模型:

会弹出如下弹窗,然后填入以下信息保存:

需要特别说明:

+ 模型名称填自己本机部署的deepseek版本,比如我的是r1:8b版本的,我就填了:deepseek-r1:8b,不知道该填什么的,可以再终端运行:ollama list命令,然后复制:

为了辛福生活,请不要填写:http://localhost:11434http://127.0.0.1:11434等地址,原因大概是dify是采用docker部署的,docker有自己的url路由策略,所以就按照他的这个来就好了,不然会报各种奇怪问题

集成线上的其他大模型

首先得找到对应的供应商,比如线上deepseek,然后点击设置:

进入ds开放平台官网,申请对应的大模型api key,填入:

这里需要注意两点:

  • 跳转deepseek开放平台官网如果登录时验证码一直发送不成功,请检查下浏览器是否登录过deepseek对话页面,如果是,请退出后再试
  • deepseek开放平台如果余额为0的话,添加时可能会报一个402的验证失败,此时需要冲点值,比如我就冲了10块钱然后验证通过了:

设置系统模型

以上两步添加模型的方式大同小异,对于其他的模型也是如此。添加完成之后,就可以设置系统要使用的模型了:

dify后续使用

部署dify的目的是为了使用它。

总体目标在此平台上建自己的对话,agent,工作流等智能体应用:

还可以将自己的本地知识库导入,结合大模型,创造更加符合自身业务的智能体:

内部也内置了一些工具或可以自己添加一些工具,以供创建的智能体调用等:

总结

总体来说:dify就是一个可以自己YY自己需要AI小工具的平台,后续详细的使用,待深入体验后再分享,也欢迎各位大神留言分享。

最后,本文主要介绍本地部署dify的方法和一些坑的解决方案,如有更好的方案也欢迎评论留言,共勉之。 那么恭喜你,大概率在部署完成后会遇到各种问题,包括但不限于:

  • 添加大模型的api key的报错,比如:接口报Internal server error或类似这样的:

    总之,个人感觉可能1.0.0的版本还不怎么稳定,这也是为啥我降级到0.15.3的原因。

docker镜像拉取不成功:

由于众所知之的原因,docker镜像拉取不成功的概率比较大,这部分没啥好解释的,直接上车配置docker镜像源,截止3.6日本人实践还可以用的镜像源如下:
"https://docker.1ms.run",
"https://hub.rat.dev",
"https://docker.1panel.live",
"https://hub.rat.dev",
"https://proxy.1panel.live",
"https://ghcr.nju.edu.cn",
"https://docker.registry.cyou",
"https://dockercf.jsdelivr.fyi",
"https://docker.rainbond.cc",
"https://registry.cn-shenzhen.aliyuncs.com",
"https://dockertest.jsdelivr.fyi",
"https://mirror.aliyuncs.com",
"https://mirror.baidubce.com",
"https://docker.mirrors.ustc.edu.cn",
"https://docker.mirrors.sjtug.sjtu.edu.cn",
"https://mirror.iscas.ac.cn",
"https://docker.nju.edu.cn",
"https://docker.m.daocloud.io",
"https://dockerproxy.com",
"https://docker.jsdelivr.fyi",
"https://docker-cf.registry.cyou"

我是直接在docker desktop里面配置的:

配置完成别忘了重启下docker,然后终端输入:docker info,能够看到如下配置已生效即可。

dify源码克隆不了的问题:

如果你觉得这是一个问题,不妨直接下载源码(如下图),或者走[gitee](about:blank)

添加大模型的问题

具体可以参考下文的大模型配置部分,这里不再赘述。

为啥要本地部署dify

简单理解:私密性、个性化、学习、装杯用🐶。。。

综合来看,可能基于以下原因:

  • 数据隐私:处理敏感数据时避免云端传输风险(如金融报告翻译场景)
  • 定制开发:支持修改工作流节点(如优化翻译助手的术语识别模块)
  • 成本优化:长期使用可降低API调用费用(尤其大模型高频调用场景)
  • 混合部署:无缝集成本地模型(如Ollama部署的Llama 3)

下载docker

我这里用的官网下载最新[docker desktop客户端](https://www.docker.com/),直接下载即可。

选择合适自己机子的版本,我这里选择这个:

下载之后是一个dmg包,直接双击安装即可,安装完成打开界面类似下面:

验证是否安装成功,终端执行:docker --version

看到如下版本信息

如果你是其他系统,可以参考如下的方式,具体不展开:

系统安装命令
Ubuntusudo apt-get install docker.io docker-compose
CentOSsudo yum install docker-ce && curl -L docker-compose
Windows要求WSL 2,通过winget install Docker.DockerDesktop安装

下载dify源码

如果从github上直接克隆源码不成功或速度较慢,可以直接在上面下载源码包。

我比较喜欢从tags这里进去下载:

这里选择0.15.3版本:

下载完成后得到源码包:

解压出来

运行本地dify

拉取docker镜像

进入上面获取的dify源码目录的docker目录中,进行以下三步操作:
cd dify-0.15.3/docker  # 关键目录
cp .env.example .env  # 复制环境变量模板
docker compose up -d  # 后台启动docker,会自动拉取镜像

过程会有点长,或出现拉取失败的情况,如果遇到拉取失败,一般都是docker镜像源问题,请参考上面的坑的解决方案,正常情况会看到如下:

等待镜像拉取完成后自动启动相关的镜像:

到这一步,则基本部署成功了。。。。

本地访问本地访问

浏览器中输入:http://localhost

首次进入会要设置管理员账号密码啥的,随便设置一个登录,然后就可以看到类似如下界面:

到这一步,基本就算部署成功了。。。。

配置大模型

部署成功之后,第一步一般要设置一些大模型,dify支持基本目前主流的大模型,具体位置从右上角用户头像设置进入:

下面将以集成本地deepseek和线上的其他大模型为例,简单设置两个大模型,其他的都差不多。

集成本地deepseek

前置条件:

+ 要集成本地deepseek的前提是本机部署了deepseek,具体怎么部署,详见本人另一个文档:[如何把DeepSeek"娶"回家?一份充满求生欲的本地部署指南](https://zhuanlan.zhihu.com/p/28197422815)。 + 进入dify源码的docker目录下,修改.env配置文件,在文件最后两行加上以下两句:
# 启用自定义模型
CUSTOM_MODEL_ENABLED=true
# 指定 Ollama 的 API 地址(根据部署环境调整 IP)
OLLAMA_API_BASE_URL= http://host.docker.internal:11434 

修改完之后终端在docker目的里面执行docker重启命令生效:

docker resatrt

否则在终端执行ollama启动服务命令:ollama serve

添加自定义模型:

以上条件具备之后,就可以从供应商列表中找到ollama,点击添加大模型:

会弹出如下弹窗,然后填入以下信息保存:

需要特别说明:

+ 模型名称填自己本机部署的deepseek版本,比如我的是r1:8b版本的,我就填了:deepseek-r1:8b,不知道该填什么的,可以再终端运行:ollama list命令,然后复制:

为了辛福生活,请不要填写:http://localhost:11434http://127.0.0.1:11434等地址,原因大概是dify是采用docker部署的,docker有自己的url路由策略,所以就按照他的这个来就好了,不然会报各种奇怪问题

集成线上的其他大模型

首先得找到对应的供应商,比如线上deepseek,然后点击设置:

进入ds开放平台官网,申请对应的大模型api key,填入:

这里需要注意两点:

  • 跳转deepseek开放平台官网如果登录时验证码一直发送不成功,请检查下浏览器是否登录过deepseek对话页面,如果是,请退出后再试
  • deepseek开放平台如果余额为0的话,添加时可能会报一个402的验证失败,此时需要冲点值,比如我就冲了10块钱然后验证通过了:

设置系统模型

以上两步添加模型的方式大同小异,对于其他的模型也是如此。添加完成之后,就可以设置系统要使用的模型了:

dify后续使用

部署dify的目的是为了使用它。

总体目标在此平台上建自己的对话,agent,工作流等智能体应用:

还可以将自己的本地知识库导入,结合大模型,创造更加符合自身业务的智能体:

内部也内置了一些工具或可以自己添加一些工具,以供创建的智能体调用等:

总结

总体来说:dify就是一个可以自己YY自己需要AI小工具的平台,后续详细的使用,待深入体验后再分享,也欢迎各位大神留言分享。

最后,本文主要介绍本地部署dify的方法和一些坑的解决方案,如有更好的方案也欢迎评论留言,共勉之。