Dify作为开源的大模型应用开发平台,支持本地私有化部署,既能保障数据安全,又能实现灵活定制。但对于新手而言,从环境配置到服务启动可能面临诸多挑战。本文结合实战经验,手把手教你从零部署Dify,并总结高频踩坑点,助你快速上手!
一、环境准备:系统与工具的黄金组合
-
系统要求
-
操作系统:优先选择Ubuntu 22.04+或WSL(Windows子系统),避免直接使用Windows因路径权限问题导致容器启动失败。
-
硬件配置:建议至少4核CPU、16GB内存、50GB磁盘空间,若需运行大模型(如LLaMA-7B),显存需≥10GB。
-
-
工具安装
-
Docker与Docker Compose:
# Ubuntu安装命令 sudo apt-get install docker.io sudo curl -L https://github.com/docker/compose/releases/download/v2.21.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose
-
Python与Node.js:Python 3.10+、Node.js v18.x LTS(前端依赖必须)。
-
二、两种部署方式:快速上手与深度定制
-
Docker一键部署(推荐新手)
-
步骤:
git clone https://github.com/langgenius/dify.git cd dify/docker cp .env.example .env docker compose up -d # 启动中间件(PostgreSQL/Redis/Weaviate)
-
验证服务:访问
http://localhost:3000
,首次需设置管理员账号。
-
-
源码部署(高阶定制)
-
后端服务:
cd api cp .env.example .env openssl rand -base64 42 > SECRET_KEY # 生成随机密钥 flask db upgrade # 数据库迁移 flask run --host 0.0.0.0 --port=5001 # 启动API服务
-
前端服务:
cd web npm install npm run build && npm run start # 构建并启动前端
-
注意:若Node.js版本不匹配,需通过
nvm use 18
切换。
-
三、六大避坑要点:从入门到精通
-
密码重置问题
-
若忘记管理员密码,执行以下命令重置:
docker exec -it docker-api-1 flask reset-password # Docker部署 # 或直接操作PostgreSQL数据库:cite[2]
-
-
文档上传限制
-
默认单文件限制为10MB,可通过修改
docker-compose.yaml
中的NGINX_CLIENT_MAX_BODY_SIZE
参数调整。
-
-
WSL路径权限问题
-
避免使用
/mnt
路径挂载Docker卷,否则PostgreSQL容器可能因权限错误无法启动,改用/home
目录。
-
-
性能优化策略
-
异步任务队列:启动Celery Worker处理耗时任务(如知识库构建):
celery -A app.celery worker -P gevent -Q dataset,generation --loglevel INFO
-
内存不足:调整
docker-compose.yaml
中的JAVA_OPTS
参数,限制服务内存占用。
-
-
HTTPS配置
-
使用Nginx反向代理并配置SSL证书,或通过
Let's Encrypt
自动签发,修改.env
中的APP_URL
为HTTPS地址。
-
-
依赖冲突解决
-
若
npm install
报错,尝试删除node_modules
并指定镜像源:npm config set registry https://registry.npmmirror.com ```:cite[7]
-
四、常见问题速查表
问题现象 | 解决方案 |
---|---|
访问localhost:3000 白屏 | 检查前端NEXT_PUBLIC_API_PREFIX 是否指向正确后端地址 |
数据库迁移失败 | 确保PostgreSQL容器已启动,执行flask db upgrade 前激活虚拟环境 |
Celery任务堆积 | 增加Worker并发数:-c 4 ,或分离任务队列 |
模型加载超时 | 调整API服务的--timeout 参数,或升级硬件配置 |
总结
本地部署Dify需重点关注环境兼容性、服务依赖管理和性能调优。新手建议从Docker快速部署入手,熟悉流程后再尝试源码级定制。若遇复杂问题,可参考官方文档或社区讨论(如CSDN、GitHub Issues)。牢记:版本固化(通过requirements.txt
锁定依赖)和日志监控是长期稳定运行的关键!