Ubuntu20.04部署Dify全攻略
·
以下是本地部署 Dify 的详细教程,帮助你打造专属 AI 应用平台(以 Ubuntu 20.04 为例):
一、环境准备
-
系统要求
- 操作系统:Linux/macOS/Windows(WSL2)
- 内存:≥8GB RAM
- 存储:≥20GB 可用空间
-
安装依赖
# 更新系统 sudo apt update && sudo apt upgrade -y # 安装 Docker curl -fsSL https://get.docker.com | sh sudo usermod -aG docker $USER # 安装 Docker Compose sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose -
验证安装
docker --version # 应显示 Docker 版本 docker-compose --version # 应显示 Compose 版本
二、部署 Dify
-
克隆仓库
git clone https://github.com/langgenius/dify.git cd dify/docker -
配置环境变量
创建.env文件:cp .env.example .env nano .env修改关键参数:
# OpenAI 密钥(必填) OPENAI_API_KEY=sk-xxx # 数据库配置 POSTGRES_PASSWORD=your_strong_password REDIS_PASSWORD=your_strong_password -
启动服务
docker-compose up -d等待所有容器启动(约 3-5 分钟),可通过命令监控:
docker-compose logs -f
三、访问与配置
-
访问 Web 界面
浏览器打开:http://localhost首次登录使用默认账号:
admin@dify.ai/difyai.com -
基础配置
- 模型设置:进入「设置」→「模型提供商」添加 OpenAI/Anthropic 等 API 密钥
- 存储配置:默认使用本地存储,如需云存储可配置 S3/MinIO
# .env 文件添加 STORAGE_TYPE=s3 AWS_ACCESS_KEY_ID=xxx AWS_SECRET_ACCESS_KEY=xxx -
创建首个 AI 应用
- 点击「创建应用」→ 选择「对话型」或「文本生成型」
- 配置提示词模板:
你是一个专业助手,用中文回答用户问题 - 测试并发布应用
四、进阶配置
-
HTTPS 加密
使用 Nginx 反向代理:server { listen 443 ssl; server_name your-domain.com; ssl_certificate /path/to/cert.pem; ssl_certificate_key /path/to/key.pem; location / { proxy_pass http://localhost:3000; proxy_set_header Host $host; } } -
定时备份
创建备份脚本backup.sh:#!/bin/bash docker exec dify-db pg_dump -U postgres > backup_$(date +%F).sql aws s3 cp backup_*.sql s3://your-bucket/添加定时任务:
crontab -e # 每天 2AM 备份 0 2 * * * /path/to/backup.sh
五、常见问题排查
| 问题现象 | 解决方案 |
|---|---|
| 无法访问 localhost | 检查防火墙:sudo ufw allow 80/tcp |
| 容器启动失败 | 查看日志:docker-compose logs -f web |
| API 调用报错 | 验证 .env 中的 OPENAI_API_KEY 有效性 |
| 内存不足 | 增加 SWAP:sudo fallocate -l 4G /swapfile |
部署完成后,可通过 Dify 的「工作流」功能构建复杂 AI 应用链,例如: $$ \text{用户输入} \rightarrow \text{意图识别} \rightarrow \text{数据库查询} \rightarrow \text{LLM 生成} \rightarrow \text{结果输出} $$ 所有操作均可在可视化界面中完成,无需编写代码。
更多推荐


所有评论(0)