提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
一、前提条件
- CPU:至少 2 个核心
- 内存:至少 4GB
二、环境准备
1.更新系统软件包列表并升级系统
确保系统所有软件都是最新版本,执行以下命令
sudo apt update
sudo apt upgrade -y
说明: 这一步操作更新本地软件包列表并安装所有可用的安全更新,确保系统稳定和安全。
2.安装git
使用Git拉取代码仓库
sudo apt install git -y
说明:Git是必备工具,用于从GitHub上克隆Dify源码
3. 安装docker
1.更新软件包列表
sudo apt update
- 安装Docker(docker.io包)
sudo apt install docker.io
3.验证Docker安装
docker-version
4.启动并设置Docker开机自启:
sudo systemctl start docker
sudo systemctl enable docker
4.安装Docker Compose
可以通过apt安装Docker Compose
sudo apt install docker-compose
验证安装
docker-compose --version
说明:Ubuntu官方源安装的Docker Compose版本可能较旧,如果需要最新版本,可以参考Docker Compose官方文档下载独立二进制文件。另外,新版本Docker也提供了Compose V2插件,使用命令格式为docker compose(中间带空格),请根据实际情况选择使用哪个版本。
三、克隆dify代码仓库
有两种方式获取Dify源码
1. 使用 Git 克隆
在终端执行以下命令,将 Dify 源码克隆至你希望存放的位置(建议放在 /opt 目录下):
sudo mkdir -p /opt/dify
sudo chown $USER:$USER /opt/dify
cd /opt/dify
git clone --branch 1.2.0 https://github.com/langgenius/dify.git
2. 使用压缩包上传
-
在本地访问 Dify GitHub 并下载源码压缩包;
-
将压缩包上传到服务器(例如使用 SCP 或 SFTP 工具);
-
解压到 /opt/dify:
sudo mkdir -p /opt/dify
sudo tar -zxvf dify-xxx.tar.gz -C /opt/dify
根据压缩包实际名称调整命令。
四、配置环境变量
进入 Dify 代码仓库目录后,复制示例环境变量文件:
cd /opt/dify/dify
cp .env.example .env
编辑 .env 文件,根据你的部署需求调整以下关键变量:
-
DB_USERNAME、DB_PASSWORD、DB_HOST、DB_DATABASE:数据库相关配置
-
REDIS_PASSWORD:Redis 的访问密码
-
DIFY_PORT:API 服务绑定的端口(默认为 5001)
-
其他你需要修改的变量(例如 OPENAI_API_BASE、LOG_LEVEL 等)
五、配置多个镜像源
1.编辑Docker配置文件
sudo nano /etc/docker/daemon.json
加入如下内容
{
"registry-mirrors": [
"https://docker.1panel.live",
"https://docker.nju.edu.cn",
"https://docker.m.daocloud.io",
"https://dockerproxy.com",
"https://hub-mirror.c.163.com",
"https://docker.mirrors.ustc.edu.cn",
"https://registry.docker-cn.com",
"https://registry.cn-hangzhou.aliyuncs.com"
]
}
保存并退出(在nano中按Ctrl+O 保存,Ctrl+X退出)
2.重载配置并重启Docker
sudo systemctl daemon-reload
sudo systemctl restart docker
3. 验证加速器是否生效
docker info
在输出中确保“Registry Mirrors” 列表中显示了上述地址。
六、启动 Docker Compose 部署 Dify
在 Dify 代码仓库根目录下(含 docker-compose.yaml 文件)执行
- 如果使用 Docker Compose V2 插件(推荐)
docker compose up -d
- 如果使用老版本 Docker Compose
docker-compose up -d
说明:命令执行后,系统将依照 docker-compose.yaml 文件启动所有容器(包括 API、worker、web、db、redis、nginx、ssrf_proxy、sandbox 等)。
运行命令后,你应该会看到类似以下的输出,显示所有容器的状态和端口映射:
七、检查和验证部署状态
1. 查看容器状态
docker compose ps
你应该能够看到类似以下的输出(部分):
- api、worker、web:业务核心服务
- db(Postgres)、redis:基础组件
- nginx:反向代理
- 其他组件如 ssrf_proxy、sandbox 等均显示状态为“Up”(健康状态)
2.查看容器日志(如需排查问题)
docker compose logs -f
或针对特定服务查看日志
docker compose logs -f nginx
3.测试内部访问
在服务器本机上执行:
curl -I http://127.0.0.1
如果返回 HTTP 状态码(例如 200、301、307 等),说明 Nginx 和后端服务正常工作。
八、配置防火墙和云安全组
确保服务器对外开放了必需的端口:
- 云安全组:登录云服务控制台,检查实例的安全组或防火墙规则,放行如下端口:
TCP 80(HTTP)
TCP 443(HTTPS,如果使用 SSL)
- 本机防火墙(例如 ufw):
查看防火墙状态:
sudo ufw status
放行端口 80 和 443(如果需要):
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
九、访问dify
1.通过 Nginx 反向代理访问
如果你使用了 Nginx 作为反向代理,且已设置端口映射(默认将宿主机的 80 映射到容器的 80 端口),则可在浏览器中直接访问:
http://<你的服务器公网IP或域名>
若你配置了 HTTPS(以及相应证书),则访问:
https://<你的服务器公网IP或域名>
2.管理员初始化页面
访问管理初始页面来设置管理员账号,通常访问地址为:
http://<你的服务器公网IP或域名>/install
3.Dify 主页面
初始化完成后,访问
http://<你的服务器公网IP或域名>
十、常见问题与排查建议
1.容器未启动/异常
- 使用 docker compose ps 检查所有容器状态;
- 若有容器反复重启或状态异常,使用 docker compose logs -f <服务名> 查看详细日志排查错误原因。
2.网络访问问题
- 在服务器本机使用 curl -I http://127.0.0.1 确认服务正常;
- 检查云安全组和本机防火墙配置,确保所需端口(80、443 等)已放行。
3.Docker 镜像拉取速度慢/失败
- 检查 /etc/docker/daemon.json 中加速器设置是否正确,并使用 docker info 确认配置生效;
- 如有需要,可尝试使用 VPN 或离线导入镜像。
4.环境变量配置问题
- 确保 .env 文件中各项关键配置正确无误(数据库、Redis、API 服务、日志等),参考 Dify 官方文档调整各项参数。