目录

前期准备

核心服务组件

依赖中间件

插件服务和代码服务配置

缓存服务器配置

向量数据库配置

文件存储配置

Nginx反向代理配置

部署验证


前期准备

对Dify进行源码二次开发需要本地调试源码前,需完成以下准备工作:

核心服务组件

  • 主服务:api、work、web

  • 辅助服务:sandbox、plugin_daemon(采用镜像部署)

依赖中间件

  • 缓存服务:Redis

  • 数据库:PostgreSQL

  • 代理服务器:Squid

  • 向量数据库:Weaviate/Milvus

  • 文件存储:本地存储/MinIO

插件服务和代码服务配置

由于仅需二次开发api源码,plugin_daemon和sandbox仍使用镜像部署,需开放以下端口供本地调试访问:

  • plugin_daemon:5002、5003

  • sandbox:8194

缓存服务器配置

本地调试必须开放Redis的6379端口

向量数据库配置

Dify默认使用Weaviate,但为支持海量数据处理和分布式水平扩展(十亿级向量),选用Milvus:

env

复制

VECTOR_STORE=milvus
MILVUS_URI=http://[你的IP]:19530
MILVUS_TOKEN=
MILVUS_USER=root
MILVUS_PASSWORD=Milvus
MILVUS_ENABLE_HYBRID_SEARCH=False

需开放端口

  • Milvus:19530

  • etcd相关端口

  • MinIO相关端口

文件存储配置

Dify默认使用本地存储,不适合分布式部署,改用MinIO分布式存储:

env

复制

STORAGE_TYPE=s3
S3_ENDPOINT=http://[你的IP]:9001
S3_REGION=us-east-1
S3_BUCKET_NAME=difyai
S3_ACCESS_KEY=[你的ACCESS_KEY]
S3_SECRET_KEY=[你的SECRET_KEY]

Nginx反向代理配置

修改nginx/conf.d/default.conf.template:

nginx

复制

location /console/api {
    proxy_pass http://[你的IP]:5001;
    include proxy.conf;
}

location /api {
    proxy_pass http://[你的IP]:5001;
    include proxy.conf;
}

location /v1 {
    proxy_pass http://[你的IP]:5001;
    include proxy.conf;
}

location /files {
    proxy_pass http://[你的IP]:5001;
    include proxy.conf;
}

部署验证

完成上述配置后,启动你本地的api代码,访问http://[你的IP]

在控制台能够看到访问日志,证明可以开启dify二次开发之旅了……

Logo

中国智能体开发者社区,聚焦智能体与大模型开发,提供前沿资讯、实用工具链、开源项目及行业案例。通过技术沙龙、开发者大赛等活动,促进经验交流与协作,助力开发者快速构建创新智能应用。

更多推荐