安装概述
Dify支持多种部署方式,包括Docker Compose部署、源码部署等。选择合适的部署方式对于后续的使用和维护至关重要。
部署方式选择
# 部署方式对比
deployment_methods = {
"Docker Compose": {
"优点": "快速部署、环境隔离、易于管理",
"适用": "推荐用于生产环境",
"难度": "低"
},
"源码部署": {
"优点": "灵活配置、深度定制",
"适用": "开发环境、定制需求",
"难度": "中"
},
"Kubernetes": {
"优点": "高可用、弹性扩展",
"适用": "大规模生产环境",
"难度": "高"
}
}
系统要求
1. 硬件要求
# 硬件要求
硬件要求:
最低配置:
CPU: "2核心"
内存: "4GB RAM"
磁盘: "20GB可用空间"
推荐配置:
CPU: "4核心以上"
内存: "8GB RAM以上"
磁盘: "50GB以上SSD"
生产环境:
CPU: "8核心以上"
内存: "16GB RAM以上"
磁盘: "100GB以上SSD"
2. 软件要求
# 软件要求
软件要求:
操作系统:
- Linux (Ubuntu 20.04+, CentOS 7+)
- macOS
- Windows (WSL2)
必需软件:
- Docker 20.10+
- Docker Compose 2.0+
- Git
可选软件:
- Python 3.10+ (源码部署)
- Node.js 18+ (前端开发)
Docker Compose部署
1. 快速开始
# 1. 克隆仓库
git clone https://github.com/langgenius/dify.git
cd dify/docker
# 2. 复制环境变量文件
cp .env.example .env
# 3. 启动服务
docker-compose up -d
# 4. 查看日志
docker-compose logs -f
2. 环境变量配置
# .env文件配置示例
# 数据库配置
POSTGRES_DB=dify
POSTGRES_USER=postgres
POSTGRES_PASSWORD=your_password
POSTGRES_HOST=db
POSTGRES_PORT=5432
# Redis配置
REDIS_HOST=redis
REDIS_PORT=6379
REDIS_PASSWORD=
# 向量数据库配置(Qdrant)
QDRANT_URL=http://qdrant:6333
# OpenAI配置(可选)
OPENAI_API_KEY=your_openai_api_key
# 应用配置
SECRET_KEY=your_secret_key
CORS_ALLOW_ORIGINS=http://localhost:3000
# 存储配置
STORAGE_TYPE=local
STORAGE_LOCAL_PATH=/app/storage
3. 完整部署步骤
#!/bin/bash
# Dify完整部署脚本
echo "=== Dify部署开始 ==="
# 1. 检查Docker环境
if ! command -v docker &> /dev/null; then
echo "错误: Docker未安装"
exit 1
fi
if ! command -v docker-compose &> /dev/null; then
echo "错误: Docker Compose未安装"
exit 1
fi
# 2. 克隆代码
echo "克隆Dify代码..."
git clone https://github.com/langgenius/dify.git
cd dify/docker
# 3. 配置环境变量
echo "配置环境变量..."
cp .env.example .env
# 编辑.env文件,设置必要的配置
# 4. 启动服务
echo "启动Dify服务..."
docker-compose up -d
# 5. 等待服务启动
echo "等待服务启动..."
sleep 30
# 6. 检查服务状态
echo "检查服务状态..."
docker-compose ps
# 7. 查看日志
echo "查看服务日志..."
docker-compose logs --tail=50
echo "=== Dify部署完成 ==="
echo "访问地址: http://localhost:3000"
4. Docker Compose配置说明
# docker-compose.yml关键配置
version: '3.8'
services:
db:
image: postgres:15-alpine
environment:
POSTGRES_DB: dify
POSTGRES_USER: postgres
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
volumes:
- postgres_data:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U postgres"]
interval: 10s
timeout: 5s
retries: 5
redis:
image: redis:7-alpine
command: redis-server --requirepass ${REDIS_PASSWORD}
volumes:
- redis_data:/data
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 10s
timeout: 5s
retries: 5
qdrant:
image: qdrant/qdrant:latest
volumes:
- qdrant_data:/qdrant/storage
ports:
- "6333:6333"
api:
image: langgenius/dify-api:latest
depends_on:
db:
condition: service_healthy
redis:
condition: service_healthy
environment:
- DATABASE_URL=postgresql://postgres:${POSTGRES_PASSWORD}@db:5432/dify
- REDIS_HOST=redis
- REDIS_PORT=6379
ports:
- "5001:5001"
web:
image: langgenius/dify-web:latest
ports:
- "3000:3000"
environment:
- CONSOLE_API_URL=http://api:5001
- APP_API_URL=http://api:5001
volumes:
postgres_data:
redis_data:
qdrant_data:
源码部署
1. 后端部署
# 1. 克隆代码
git clone https://github.com/langgenius/dify.git
cd dify/api
# 2. 创建虚拟环境
python3 -m venv venv
source venv/bin/activate # Linux/macOS
# 或
venv\Scripts\activate # Windows
# 3. 安装依赖
pip install -r requirements.txt
# 4. 配置环境变量
cp .env.example .env
# 编辑.env文件
# 5. 初始化数据库
flask db upgrade
# 6. 启动服务
python app.py
2. 前端部署
# 1. 进入前端目录
cd dify/web
# 2. 安装依赖
npm install
# 3. 配置环境变量
cp .env.example .env.local
# 编辑.env.local文件
# 4. 构建生产版本
npm run build
# 5. 启动服务
npm start
3. 环境变量配置
# 后端环境变量 (.env)
# 数据库
DATABASE_URL=postgresql://user:password@localhost:5432/dify
# Redis
REDIS_HOST=localhost
REDIS_PORT=6379
REDIS_PASSWORD=
# 向量数据库
VECTOR_STORE=qdrant
QDRANT_URL=http://localhost:6333
# OpenAI
OPENAI_API_KEY=your_key
# 应用配置
SECRET_KEY=your_secret_key
CORS_ALLOW_ORIGINS=http://localhost:3000
# 前端环境变量 (.env.local)
NEXT_PUBLIC_API_URL=http://localhost:5001
NEXT_PUBLIC_CONSOLE_API_URL=http://localhost:5001
配置说明
1. 数据库配置
# 数据库配置选项
数据库配置:
PostgreSQL:
- 生产环境推荐使用PostgreSQL
- 支持连接池配置
- 支持SSL连接
连接参数:
- host: 数据库主机
- port: 端口(默认5432)
- database: 数据库名
- user: 用户名
- password: 密码
2. 向量数据库配置
# 向量数据库选择
向量数据库:
Qdrant:
- 推荐使用
- 性能优秀
- 易于部署
Weaviate:
- 功能丰富
- 支持多租户
Milvus:
- 大规模场景
- 高性能
3. 存储配置
# 存储配置
存储类型:
本地存储:
- STORAGE_TYPE=local
- STORAGE_LOCAL_PATH=/path/to/storage
S3存储:
- STORAGE_TYPE=s3
- S3_BUCKET_NAME=bucket_name
- S3_ACCESS_KEY=access_key
- S3_SECRET_KEY=secret_key
Azure Blob:
- STORAGE_TYPE=azure
- AZURE_ACCOUNT_NAME=account_name
- AZURE_ACCOUNT_KEY=account_key
常见问题
1. 端口冲突
# 检查端口占用
netstat -tulpn | grep :3000
netstat -tulpn | grep :5001
# 修改端口配置
# 在docker-compose.yml中修改ports配置
ports:
- "3001:3000" # 将3000改为3001
2. 数据库连接失败
# 检查数据库服务
docker-compose ps db
# 查看数据库日志
docker-compose logs db
# 测试数据库连接
docker-compose exec db psql -U postgres -d dify
3. 内存不足
# 检查内存使用
free -h
# 增加Docker内存限制
# 在docker-compose.yml中配置
deploy:
resources:
limits:
memory: 4G
4. 权限问题
# 修复存储目录权限
sudo chown -R 1000:1000 /path/to/storage
# 修复Docker权限
sudo usermod -aG docker $USER
验证安装
1. 健康检查
# 检查API健康状态
curl http://localhost:5001/health
# 检查Web服务
curl http://localhost:3000
# 检查数据库连接
docker-compose exec api python -c "from app import db; db.engine.connect()"
2. 访问测试
# 1. 打开浏览器访问
http://localhost:3000
# 2. 注册管理员账号
# 首次访问会自动进入注册页面
# 3. 登录测试
# 使用注册的账号登录
# 4. 创建测试应用
# 在控制台创建简单应用测试
生产环境配置
1. 安全配置
# 生产环境安全配置
安全配置:
- 使用强密码
- 启用HTTPS
- 配置防火墙
- 定期备份数据
- 启用日志审计
2. 性能优化
# 性能优化配置
优化配置:
数据库:
- 连接池配置
- 索引优化
缓存:
- Redis缓存配置
- 缓存策略
向量数据库:
- 索引参数优化
- 分片配置
总结
Dify安装部署与环境配置的关键要点:
- 部署方式:Docker Compose(推荐)、源码部署、Kubernetes
- 系统要求:硬件要求、软件要求
- Docker部署:快速部署、环境变量配置、完整步骤
- 源码部署:后端部署、前端部署、环境配置
- 配置说明:数据库、向量数据库、存储配置
- 常见问题:端口冲突、数据库连接、内存不足、权限问题
- 验证安装:健康检查、访问测试
- 生产环境:安全配置、性能优化
掌握这些安装和配置知识,可以成功部署Dify平台,为后续的应用开发打下基础。
转载请注明:周志洋的博客 » Dify安装部署与环境配置


