1. 环境准备
1.1 系统要求
- 操作系统:openEuler 22.03 LTS 或更高版本(ARM64架构)。
- Docker:版本需 >= 20.10。
- Docker Compose:版本需 >= 1.29.2。
- Python:3.12 或更高版本(需通过源安装或第三方仓库)。
2. 安装依赖环境
2.1 更新系统
sudo yum clean all
sudo yum makecache
sudo yum update -y
2.2 安装基础工具
sudo yum install -y git curl wget python3.12 python3.12-devel python3-pip
sudo ln -s /usr/bin/python3.12 /usr/bin/python3 # 确保默认 Python3 指向 3.12
2.3 安装编译工具
sudo yum groupinstall "Development Tools" -y
sudo yum install -y libffi-devel openssl-devel
3. 安装 Docker 和 Docker Compose
3.1 安装 Docker
# 添加 Docker 官方仓库(ARM64 支持)
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# 替换为国内镜像源(可选,加快下载速度)
sudo sed -i 's/download.docker.com/docker.mirrors.ustc.edu.cn/g' /etc/yum.repos.d/docker-ce.repo
# 安装 Docker CE
sudo yum install -y docker-ce docker-ce-cli containerd.io
# 启动 Docker 并设置开机自启
sudo systemctl enable --now docker
# 验证安装
docker --version
3.2 安装 Docker Compose
# 下载 Docker Compose(ARM64 版本)
sudo curl -L "https://github.com/docker/compose/releases/download/v2.22.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# 赋予执行权限
sudo chmod +x /usr/local/bin/docker-compose
# 验证安装
docker-compose --version
4. 配置 Docker 加速(可选但推荐)
# 编辑 Docker 配置文件(创建新文件)
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": [
"https://docker.mirrors.ustc.edu.cn",
"https://hub-mirror.c.163.com",
"https://registry.docker-cn.com"
]
}
EOF
# 重启 Docker 服务
sudo systemctl daemon-reload
sudo systemctl restart docker
5. 克隆 Dify 仓库
# 进入工作目录
cd ~
git clone https://github.com/langgenius/dify.git
cd dify
6. 配置环境变量
6.1 配置中间件(PostgreSQL、Redis、Weaviate)
# 进入 docker 目录
cd docker
# 复制环境变量模板
cp middleware.env.example middleware.env
# 编辑 middleware.env(设置数据库密码等)
# 示例修改:
# POSTGRES_PASSWORD=your_password
# REDIS_PASSWORD=your_redis_password
6.2 配置 API 环境
# 返回到项目根目录
cd ..
# 复制 API 的环境变量文件
cp api/.env.example api/.env
# 生成随机的 SECRET_KEY(用于 API 安全)
openssl rand -base64 42 | sudo tee -a api/.env
# 或手动执行:
# sed -i "/^SECRET_KEY=/c\SECRET_KEY=$(openssl rand -base64 42)" api/.env
7. 启动 Dify 服务
7.1 启动中间件(PostgreSQL、Redis、Weaviate)
cd docker
# 启动中间件(使用 Weaviate 配置)
docker compose -f docker-compose.middleware.yaml --profile weaviate -p dify up -d
# 验证容器状态
docker ps | grep dify
7.2 启动 Dify 后端和前端
# 返回到项目根目录
cd ..
# 启动所有服务(包括前端、后端)
docker compose -f docker-compose.yaml up -d
8. 访问 Dify
- 前端页面:通过浏览器访问
http://<服务器IP>:80
(默认端口)。 - 后端 API:访问
http://<服务器IP>:5000
(需通过前端界面操作)。
9. 常见问题与解决方案
9.1 Docker 镜像下载失败
- 问题:部分镜像可能因架构不兼容或网络问题下载失败。
- 解决:
- 替换为 ARM 兼容的镜像(如
arm64v8/postgres
)。 - 在
docker-compose.middleware.yaml
中修改镜像标签:services: postgres: image: arm64v8/postgres:14.5
- 替换为 ARM 兼容的镜像(如
9.2 Python 依赖安装失败
- 问题:
poetry install
报错,提示某些包无法编译。 - 解决:
# 安装编译依赖 sudo yum install -y python3-devel libffi-devel openssl-devel # 禁用 keyring(如知识库所述) export PYTHON_KEYRING_BACKEND=keyring.backends.null.Keyring
9.3 端口冲突
- 解决:修改
docker-compose.yaml
中的端口映射,例如将80
改为8080
:services: nginx: ports: - "8080:80"
10. 更新与维护
10.1 更新 Dify 到最新版本
# 拉取最新代码
git pull origin main
# 重新构建并启动服务
docker compose down
docker compose up -d
10.2 查看日志
# 查看特定容器日志(如后端 API)
docker logs -f dify_api_1
# 查看所有容器日志
docker logs -f $(docker ps -q)
11. 其他注意事项
- 权限问题:确保 Docker 组包含当前用户(避免使用
sudo
运行 Docker 命令):sudo usermod -aG docker $USER exec sudo su - $USER
- 防火墙:开放所需端口(如
80
、5432
等):sudo firewall-cmd --permanent --add-port=80/tcp sudo firewall-cmd --reload
验证安装成功
- 访问
http://<服务器IP>
,应看到 Dify 的登录界面。 - 注册账号并登录,进入 Dify 管理后台。
如果遇到其他问题,可参考以下知识库中的步骤或联系社区支持:
- 日志排查:检查
docker-compose
日志和dify
项目目录下的日志文件。 - 镜像加速:确保 Docker 配置了国内镜像源(如 USTC 或 阿里云)。
希望这能帮助您成功部署 Dify!