Dify Premium
Dify Premium 是一款 AWS AMI 产品,允许自定义品牌,并可作为 EC2 一键部署到你的 AWS VPC 上。前往 AWS Marketplace 进行订阅并使用,它适合以下场景:
- 在中小型企业内,需在服务器上创建一个或多应用程序,并且关心数据私有化。
- 你对 Dify Cloud订阅计划感兴趣,但所需的用例资源超出了计划内所提供的资源。
- 你希望在组织内采用 Dify Enterprise 之前进行 POC 验证。
设置
如果这是你第一次访问 Dify,请输入管理员初始化密码(设置为你的 EC2 实例 ID)以开始设置过程。
部署 AMI 后,通过 EC2 控制台中找到的实例公有 IP 访问 Dify(默认使用 HTTP 端口 80)。
升级
在 EC2 实例中,运行以下命令:
git clone https://github.com/langgenius/dify.git /tmp/dify
mv -f /tmp/dify/docker/* /dify/
rm -rf /tmp/dify
docker-compose down
docker-compose pull
docker-compose -f docker-compose.yaml -f docker-compose.override.yaml up -d
本节介绍将旧社区版迁移到 Dify v1.0.0+ 的方法。对于将 Dify Premium 或社区版升级到此特定迁移范围之后的版本,请参考它们各自主要的升级说明。
版本 v1.0.0+ 包含插件功能,详细介绍请参考此处 (v1.0.0 Release) 和 v1.3.0 Release Notes (关于uv切换)。
升级分为以下步骤:
- 备份数据
- 插件迁移
- 主项目升级
1. 备份数据
1.1 运行 cd
命令至你的 Dify 项目路径,新建备份分支。
1.2 运行以下命令,备份你的 docker-compose YAML 文件(可选)。
cd docker
cp docker-compose.yaml docker-compose.yaml.$(date +%s).bak
1.3 运行命令停止服务,在 Docker 目录中执行备份数据命令。
docker compose down
tar -cvf volumes-$(date +%s).tgz volumes
2. 升级版本
v1.0.0
支持通过 Docker Compose 部署。运行 cd
命令至你的 Dify 项目路径,运行以下命令升级 Dify 版本:
git checkout 1.0.0 # 切换至 1.0.0 分支
cd docker
docker compose -f docker-compose.yaml up -d
3. 工具迁移为插件
关于命令执行和包管理的重要提示(针对v1.0.0迁移):
- 默认容器名称:
docker exec
命令示例使用了docker-api-1
。如果您的 API 容器有不同的名称或 ID(您可以使用docker ps
查找),请相应调整命令。- Python 包管理器 (
uv
与poetry
):
- 从版本 v1.3.0 开始,Dify 已将 Python 包管理器从
poetry
切换到uv
以提升性能。对于 Dify v1.3.0 或更新版本中的常规操作,标准命令是uv run flask ...
。 - 本特定章节专注于升级到 Dify v1.0.0。 在 Dify v1.0.0 到 v1.3.0 (不含v1.3.0) 期间,
poetry
是其包管理器。因此,下方示例中的flask
命令正确地使用了poetry run ...
。代码示例首先在注释中强调了当前uv
的标准用法,然后显示了与本特定 v1.0.0 迁移范围相关的poetry
命令。
该步骤的目的:将此前社区版本所使用的工具及模型供应商,自动进行数据迁移并安装至新版本的插件环境中。
- 运行
docker ps
命令,查看 API 容器的名称或 ID。默认名称通常是docker-api-1
。
示例:
docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
417241cd**** nginx:latest "sh -c 'cp /docker-e…" 3 hours ago Up 3 hours 0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:443->443/tcp, :::443->443/tcp docker-nginx-1
f84aa773**** langgenius/dify-api:1.0.0 "/bin/bash /entrypoi…" 3 hours ago Up 3 hours 5001/tcp docker-worker-1
a3cb19c2**** langgenius/dify-api:1.0.0 "/bin/bash /entrypoi…" 3 hours ago Up 3 hours 5001/tcp docker-api-1
运行命令 docker exec -it docker-api-1 bash
进入容器终端(如果您的容器名称不同,请使用对应的名称),在容器内运行:
# 对于 Dify v1.3.0+ 的环境,标准命令是 'uv run ...'。
uv run flask extract-plugins --workers=20
#
# 如果您此处描述的社区版部分的迁移目标版本是 Dify v1.0.0 至 v1.3.0 (不含v1.3.0) 之间,请使用 'poetry':
# poetry run flask extract-plugins --workers=20
如果在按照本指南为 v1.0.0 版本迁移执行命令时发生错误(例如,找不到
uv
或poetry
),请确保按照该版本最初的先决条件,在服务器上正确设置了poetry
环境。如果在运行poetry
命令后终端提示输入,请按 “回车” 跳过。
此命令将提取当前环境中使用的所有模型和工具。workers 参数将决定提取过程中的所使用的并行进程数,可根据需要进行调整。命令运行完成后将生成 plugins.jsonl
文件保存结果,该文件包含了当前 Dify 实例中所有工作区的插件信息。
确保你的网络正常访问公网,并支持访问:https://marketplace.dify.ai
。在 docker-api-1
容器内继续运行以下命令:
# 对于 Dify v1.3.0+ 的环境,标准命令是 'uv run ...'。
uv run flask install-plugins --workers=2
#
# 如果您此处描述的社区版部分的迁移目标版本是 Dify v1.0.0 至 v1.3.0 (不含v1.3.0) 之间,请使用 'poetry':
# poetry run flask install-plugins --workers=2
此命令将下载并安装所有必要的插件到最新的社区版本中。当终端出现 Install plugins completed.
标识时,迁移完成。
定制化
就像自托管部署一样,你可以根据需要修改 EC2 实例中 .env
下的环境变量。然后使用以下命令重新启动 Dify:
docker-compose down
docker-compose -f docker-compose.yaml -f docker-compose.override.yaml up -d
自定义 WebApp & 品牌
你可以在设置里的 定制 中启用此功能,启用 移除 Powered by Dify 并上传您自己的标志。