Dify安装

Dify安装
1. 认识 Dify
Dify = Backend API + Worker + Web UI + Plugin Runtime 的 LLMOps 平台,提供
- 可视化 Prompt 编排
- RAG(知识库)
- Agent 插件市场
- 多模型路由(OpenAI / Azure / 本地 llama.cpp / Xinference / Ollama …)
官方仓库:https://github.com/langgenius/dify
官方文档:https://docs.dify.ai
2. 部署拓扑
1 | ┌---------------------------┐ |
所有组件均提供官方 Docker 镜像,推荐 100% 容器化部署,最低单节点 4C8G 可跑,生产建议 8C32G + GPU(用于 Embedding / LLM 推理)。
3. 前置准备
项目 | 最低版本 | 备注 |
---|---|---|
Docker | 24.0+ | 需同时支持 compose v2 |
Docker Compose | v2.20+ | docker compose version 验证 |
CPU | x86_64 | ARM64 需自行构建部分镜像 |
可用端口 | 80, 443, 5432, 6379, 8080, 5001 | 可按需改 |
3.1 系统优化(Linux)
1 | # 1. 内核参数 |
4. 一键启动(Docker Compose)
官方维护的 docker-compose.yaml 已包含所有依赖,无需手动安装 PostgreSQL / Redis / Weaviate。
4.1 获取编排文件
1 | # 任意目录 |
4.2 修改必要环境变量
1 | # 编辑 .env |
关键字段说明(按需改):
变量 | 示例值 | 含义 |
---|---|---|
CONSOLE_API_URL |
http://localhost:5001 | 后端地址,Web 会调用 |
CONSOLE_WEB_URL |
http://localhost:3000 | 前端地址,邮件回调用 |
SERVICE_API_URL |
http://localhost:5001 | 插件运行时调用后端 |
SECRET_KEY |
openssl rand -base64 42 |
加密会话,必须修改 |
INIT_PASSWORD |
Admin@123 | 首次登录超管密码 |
OPENAI_API_KEY |
sk-xxx | 如用 OpenAI 必填 |
WEAVIATE_VERSION |
1.24.1 | 向量库版本,一般不动 |
REDIS_PASSWORD |
redisPASS | 给 Redis 加密码 |
POSTGRES_PASSWORD |
postgresPASS | 数据库密码 |
SECRET_KEY 必须换! 不改会提示安全警告。
4.3 启动
1 | # 后台启动所有容器 |
首次拉镜像约 3-5 GB,网络差可配镜像加速:
1 | // /etc/docker/daemon.json |
4.4 验证
1 | # 1. 容器状态 |
5. 接入本地模型(以 vLLM 为例)
Dify 不负责跑大模型,只负责路由。
下面把本地 Qwen2.5-32B-Instruct-AWQ
接入 Dify。
5.1 启动 vLLM(OpenAI-Compatible 模式)
1 | # 假设模型已下载到 /data/models/Qwen2.5-32B-Instruct-AWQ |
5.2 在 Dify 里添加模型
- 右上角头像 → 设置 → 模型供应商
- 选 OpenAI-Compatible
- 名称:qwen32b
- 服务器 URL:http://host.docker.internal:8001/v1
(Linux 把host.docker.internal
换成宿主机 IP 或172.17.0.1
) - 模型 ID:qwen32b
- 密钥:随便填(vLLM 不校验收空)
- 点击 保存并测试,出现 ✅ 即成功。
5.3 在应用里选用
创建应用 → 右上角 模型 → 选 qwen32b
即可对话。
6. 常见问题速查
现象 | 日志关键字 | 解决 |
---|---|---|
页面 502 | connect() failed (111: Connection refused) while connecting to upstream |
api 容器未启动,看 docker compose logs api |
知识库索引失败 | weaviate: unexpected status code 401 |
忘了改 WEAVIATE_AUTHENTICATION_ANONYMOUS_ACCESS_ENABLED=false → 改为 true |
上传文件 413 | client intended to send too large body |
Nginx 加 client_max_body_size 50M; |
本地模型超时 | curl: (7) Failed to connect |
Dify 在容器内访问宿主机端口,需用 host.docker.internal 或宿主机 IP |
忘记 admin 密码 | 无 | docker compose exec api flask reset-password 按提示重设 |
7. 升级 Dify
1 | cd dify/docker |
数据库结构会自动迁移(flask-migrate),升级前建议 pg_dump 备份。
8. 备份与恢复
1 | # 1. 数据库 |
9. 卸载
1 | cd dify/docker |
10. 下一步
- 给团队配 SSO(支持 SAML / OIDC)
- 开 插件开发模式,写 Python 插件 → 参考 官方插件模板
- 生产环境加 Prometheus + Grafana 监控模板(官方已提供 json)
祝使用愉快,欢迎提 Issue / PR 一起完善 Dify 生态!
评论
评论插件加载失败
正在加载评论插件