上一篇 下一篇 分享链接 返回 返回顶部

从零把 Dify 跑起来:Docker 部署、HTTPS 配置与常用命令全收录

发布人:慈云数据-客服中心 发布时间:11小时前 阅读量:6

Dify 部署完整教程|附完整命令

Dify 是一款开源的 LLMOps 平台,支持可视化编排 AI 应用、构建智能体、接入多种大语言模型、管理知识库、发布 API 服务等。相比单纯调用大模型 API,Dify 更适合企业或个人开发者快速搭建 AI 应用,例如智能客服、知识库问答、工作流助手、内容生成工具、企业内部 Copilot 等。

本文将以 Docker Compose 方式部署 Dify 为主线,完整介绍从服务器准备、安装 Docker、拉取 Dify 项目、配置环境变量、启动服务、访问后台、配置域名与 HTTPS、升级、备份到常见问题排查的全过程,并附上可直接复制使用的完整命令。

本教程适用于 Ubuntu 20.04 / Ubuntu 22.04 / Ubuntu 24.04 等 Linux 服务器。
推荐使用云服务器部署,例如阿里云、腾讯云、华为云、AWS、Vultr、Hetzner 等。


一、Dify 简介

Dify 是一个开源的大语言模型应用开发平台,核心能力包括:

  • 支持 OpenAI、Azure OpenAI、Anthropic、Gemini、通义千问、智谱、DeepSeek、Ollama 等模型;
  • 支持聊天助手、文本生成应用、Agent 智能体、Workflow 工作流;
  • 支持知识库 RAG,可上传文档、网页、文本等构建私有知识库;
  • 支持 API 发布,方便与业务系统集成;
  • 支持团队协作、应用管理、日志追踪与调试;
  • 支持 Docker 快速部署,适合个人和企业私有化使用。

通过私有部署 Dify,你可以将 AI 应用运行在自己的服务器上,更方便地管理数据、API Key、知识库和业务流程。


二、服务器配置建议

Dify 本身包含多个服务,例如:

  • Web 前端;
  • API 后端;
  • Worker 异步任务;
  • PostgreSQL 数据库;
  • Redis 缓存;
  • Weaviate / 向量数据库;
  • Nginx 网关;
  • Sandbox 代码执行环境;
  • Plugin Daemon 插件服务等。

因此服务器配置不建议太低。

1. 最低配置

适合测试、学习、个人体验:

CPU:2 核
内存:4GB
硬盘:30GB
系统:Ubuntu 20.04+

2. 推荐配置

适合长期运行、小团队使用:

CPU:4 核及以上
内存:8GB 及以上
硬盘:50GB - 100GB
系统:Ubuntu 22.04 LTS

3. 生产环境建议

如果需要部署知识库、多用户、多应用,建议:

CPU:8 核及以上
内存:16GB 及以上
硬盘:100GB 及以上 SSD
数据库:建议独立 PostgreSQL
对象存储:建议接入 S3 / OSS / COS
域名:建议配置 HTTPS

三、部署前准备

在开始部署前,你需要准备:

  1. 一台 Linux 服务器;
  2. 已开放服务器端口;
  3. 一个域名,非必须,但生产环境建议配置;
  4. SSH 登录权限;
  5. 基础命令行操作能力。

本文假设你已经通过 SSH 登录服务器。

例如:

ssh root@你的服务器IP

如果你使用的是普通用户:

ssh ubuntu@你的服务器IP

后续命令中,如果不是 root 用户,请根据情况在命令前添加 sudo


四、开放服务器端口

Dify 默认通过 Docker Compose 中的 Nginx 暴露 HTTP 服务,常见端口为:

80:HTTP 访问
443:HTTPS 访问

如果你只是本地测试,也可能直接访问:

http://服务器IP

请在云服务器安全组中放行:

TCP 80
TCP 443

如果需要 SSH:

TCP 22

注意:云服务器防火墙和系统防火墙是两层概念。即使系统开放了端口,云厂商安全组未放行也无法访问。

如果服务器启用了 UFW 防火墙,可以执行:

ufw allow 22/tcp
ufw allow 80/tcp
ufw allow 443/tcp
ufw reload
ufw status

五、更新系统依赖

首先更新系统软件包。

apt update && apt upgrade -y

安装基础工具:

apt install -y ca-certificates curl gnupg lsb-release git vim wget unzip

检查系统版本:

lsb_release -a

查看服务器资源:

free -h
df -h
nproc

六、安装 Docker

Dify 官方推荐使用 Docker Compose 部署,因此需要先安装 Docker。

1. 卸载旧版本 Docker

如果服务器之前安装过旧版本 Docker,可以先卸载:

apt remove -y docker docker-engine docker.io containerd runc

2. 添加 Docker 官方 GPG Key

install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg
chmod a+r /etc/apt/keyrings/docker.gpg

3. 添加 Docker 软件源

echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" \
  > /etc/apt/sources.list.d/docker.list

4. 安装 Docker Engine 和 Docker Compose

apt update
apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

5. 启动 Docker 并设置开机自启

systemctl enable docker
systemctl start docker

6. 检查 Docker 版本

docker version
docker compose version

如果能正常输出版本信息,说明 Docker 安装成功。


七、配置 Docker 镜像加速,可选

如果你的服务器在国内,拉取 Docker 镜像可能较慢,可以配置镜像加速。

创建或编辑 Docker 配置文件:

mkdir -p /etc/docker
vim /etc/docker/daemon.json

写入以下内容,镜像源可根据实际情况调整:

{
  "registry-mirrors": [
    "https://docker.1ms.run",
    "https://docker.1panel.live"
  ]
}

保存后重启 Docker:

systemctl daemon-reload
systemctl restart docker

验证配置:

docker info

八、拉取 Dify 项目代码

进入常用部署目录:

cd /opt

克隆 Dify 官方仓库:

git clone https://github.com/langgenius/dify.git

进入 Dify Docker 部署目录:

cd /opt/dify/docker

查看目录文件:

ls -lah

通常你会看到类似文件:

docker-compose.yaml
.env.example
nginx/
volumes/
middleware.env.example

九、配置 Dify 环境变量

Dify 的 Docker 部署通常需要从 .env.example 复制一份 .env 文件。

执行:

cp .env.example .env

然后编辑 .env

vim .env

不同版本的 Dify 环境变量可能略有差异。以下是常见需要关注的配置项。


十、重点环境变量说明

1. 控制台访问地址

如果你暂时使用服务器 IP 访问,可以配置为:

CONSOLE_WEB_URL=http://你的服务器IP
APP_WEB_URL=http://你的服务器IP
SERVICE_API_URL=http://你的服务器IP

如果你使用域名,例如:

https://dify.example.com

可以配置为:

CONSOLE_WEB_URL=https://dify.example.com
APP_WEB_URL=https://dify.example.com
SERVICE_API_URL=https://dify.example.com

2. 时区配置

建议设置为中国时区:

TZ=Asia/Shanghai

3. 数据库配置

Docker Compose 默认会启动 PostgreSQL,一般不需要修改。如果你要使用外部数据库,可以修改数据库相关变量。

常见配置类似:

DB_USERNAME=postgres
DB_PASSWORD=postgres
DB_HOST=db
DB_PORT=5432
DB_DATABASE=dify

生产环境建议将默认密码改成强密码,例如:

DB_PASSWORD=你的强密码

4. Redis 配置

默认 Redis 配置一般无需修改:

REDIS_HOST=redis
REDIS_PORT=6379

如有密码,也可以配置:

REDIS_PASSWORD=你的Redis密码

5. 文件存储配置

测试环境可以使用本地存储。生产环境建议接入对象存储,例如 AWS S3、阿里云 OSS、腾讯云 COS。

本地存储一般类似:

STORAGE_TYPE=opendal
OPENDAL_SCHEME=fs
OPENDAL_FS_ROOT=storage

如果你使用对象存储,需要根据对应服务填写 Access Key、Secret Key、Bucket、Endpoint 等信息。

6. 向量数据库配置

Dify 默认可能使用 Weaviate,部分版本也支持 Qdrant、Milvus、PGVector 等。

默认测试环境一般无需修改。如果知识库规模较大,建议单独规划向量数据库。


十一、启动 Dify 服务

/opt/dify/docker 目录下执行:

docker compose up -d

首次启动需要拉取多个镜像,时间取决于服务器网络情况。可以查看镜像下载和容器启动过程。

查看容器状态:

docker compose ps

如果所有服务都是 runninghealthy,说明服务基本正常。

查看日志:

docker compose logs -f

如果只想查看 API 服务日志:

docker compose logs -f api

查看 Worker 日志:

docker compose logs -f worker

查看 Nginx 日志:

docker compose logs -f nginx

十二、访问 Dify 控制台

如果你没有配置域名,可以直接访问:

http://你的服务器IP

如果你配置了域名 DNS 解析,可以访问:

http://dify.example.com

首次访问时,Dify 会引导你创建管理员账户。按照页面提示填写:

  • 管理员邮箱;
  • 管理员用户名;
  • 管理员密码。

创建完成后即可进入 Dify 控制台。


十三、配置模型供应商

进入 Dify 后,第一件事通常是配置模型。

路径一般为:

右上角头像 / 设置 / 模型供应商

你可以选择:

  • OpenAI;
  • Azure OpenAI;
  • Anthropic;
  • Google Gemini;
  • DeepSeek;
  • 通义千问;
  • 智谱 AI;
  • 火山方舟;
  • Ollama;
  • OpenAI-API-Compatible 等。

如果你使用 DeepSeek、通义千问、智谱等国产模型,通常需要填写:

API Key
Base URL,部分供应商需要
模型名称

如果你使用兼容 OpenAI 接口的模型服务,可以选择 OpenAI-Compatible,然后配置类似:

Base URL:https://api.example.com/v1
API Key:sk-xxxxxx
Model:model-name

配置完成后,可以在 Dify 中创建一个简单聊天应用进行测试。


十四、创建第一个聊天应用

登录控制台后:

  1. 点击「创建应用」;
  2. 选择「聊天助手」;
  3. 填写应用名称,例如「测试助手」;
  4. 选择已经配置好的模型;
  5. 编写系统提示词;
  6. 点击调试;
  7. 发布应用。

示例系统提示词:

你是一个专业、耐心、简洁的中文 AI 助手。
请用清晰的结构回答用户问题。
如果用户问题不明确,请先提出澄清问题。

调试成功后,可以通过 Web 页面访问,也可以使用 API 集成到业务系统。


十五、配置域名解析

如果你希望使用域名访问 Dify,需要先在域名服务商处添加 DNS 解析。

例如你的域名是:

dify.example.com

服务器 IP 是:

1.2.3.4

则添加一条 A 记录:

主机记录:dify
记录类型:A
记录值:1.2.3.4
TTL:默认

等待解析生效后,在本地测试:

ping dify.example.com

或:

nslookup dify.example.com

确认解析到服务器 IP 后,即可继续配置 HTTPS。


十六、使用 Nginx Proxy Manager 配置 HTTPS,可选

如果你的服务器已有 Nginx Proxy Manager,可以将 Dify 作为反向代理后端。

但需要注意:Dify Docker Compose 默认已经包含 Nginx 并占用 80 端口。如果你想用外部 Nginx Proxy Manager,则需要调整 Dify 暴露端口,例如将 Dify 映射到 8080,再由 NPM 代理到 http://服务器IP:8080

编辑 docker-compose.yaml 或相关配置,将 Nginx 端口映射改成类似:

ports:
  - "8080:80"

重启服务:

docker compose down
docker compose up -d

然后在 Nginx Proxy Manager 中添加 Proxy Host:

Domain Names:dify.example.com
Forward Hostname / IP:服务器IP
Forward Port:8080
Scheme:http

再申请 Let’s Encrypt SSL 证书即可。


十七、使用 Caddy 配置 HTTPS,可选

Caddy 配置 HTTPS 非常方便,会自动申请证书。

如果你想使用 Caddy,需要先确保 Dify 不直接占用 80 和 443,可以将 Dify 暴露到本机 8080。

安装 Caddy:

apt install -y debian-keyring debian-archive-keyring apt-transport-https curl
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' > /etc/apt/sources.list.d/caddy-stable.list
apt update
apt install -y caddy

编辑 Caddyfile:

vim /etc/caddy/Caddyfile

写入:

dify.example.com {
    reverse_proxy 127.0.0.1:8080
}

重启 Caddy:

systemctl restart caddy
systemctl enable caddy

查看状态:

systemctl status caddy

此时访问:

https://dify.example.com

即可。


十八、Dify 常用管理命令

进入部署目录:

cd /opt/dify/docker

1. 启动服务

docker compose up -d

2. 停止服务

docker compose stop

3. 重启服务

docker compose restart

4. 停止并删除容器

docker compose down

5. 查看服务状态

docker compose ps

6. 查看全部日志

docker compose logs -f

7. 查看指定服务日志

docker compose logs -f api
docker compose logs -f worker
docker compose logs -f web
docker compose logs -f nginx
docker compose logs -f db
docker compose logs -f redis

8. 拉取最新镜像

docker compose pull

9. 重新创建容器

docker compose up -d --force-recreate

10. 查看 Docker 占用空间

docker system df

11. 清理无用镜像

docker image prune -a

十九、升级 Dify

升级前一定要备份数据,尤其是生产环境。

进入 Dify 项目目录:

cd /opt/dify

拉取最新代码:

git pull

进入 Docker 目录:

cd /opt/dify/docker

如果官方 .env.example 有更新,建议对比你的 .env 和新示例文件:

diff .env .env.example

拉取最新镜像:

docker compose pull

重新启动:

docker compose down
docker compose up -d

查看容器状态:

docker compose ps

查看日志确认是否正常:

docker compose logs -f

注意:不要随意删除 volumes 目录或数据库卷,否则可能导致数据丢失。


二十、备份 Dify 数据

Dify 的核心数据主要包括:

  1. PostgreSQL 数据;
  2. 上传文件;
  3. 向量数据库数据;
  4. .env 配置文件;
  5. Docker Compose 配置文件;
  6. 插件与扩展数据,视版本而定。

1. 备份整个 docker 目录

最简单的方式是备份 /opt/dify/docker

cd /opt
tar -czvf dify-docker-backup-$(date +%F).tar.gz dify/docker

2. 备份 PostgreSQL 数据库

先查看数据库容器名称:

cd /opt/dify/docker
docker compose ps

通常服务名为 db。执行:

docker compose exec db pg_dump -U postgres dify > dify-db-backup-$(date +%F).sql

如果你的数据库用户名或数据库名不同,请根据 .env 修改。

例如:

docker compose exec db pg_dump -U your_db_user your_db_name > dify-db-backup-$(date +%F).sql

3. 备份 volumes 数据

cd /opt/dify/docker
tar -czvf dify-volumes-backup-$(date +%F).tar.gz volumes

4. 将备份文件复制到远程服务器

例如使用 scp

scp dify-db-backup-$(date +%F).sql root@备份服务器IP:/backup/
scp dify-volumes-backup-$(date +%F).tar.gz root@备份服务器IP:/backup/

也可以使用对象存储、rclone、rsync 等工具定期备份。


二十一、恢复 Dify 数据

如果需要恢复数据库,可以先将备份文件上传到服务器,然后进入 Dify Docker 目录。

停止服务:

cd /opt/dify/docker
docker compose down

启动数据库服务:

docker compose up -d db

等待数据库启动后,执行恢复:

cat dify-db-backup-2025-01-01.sql | docker compose exec -T db psql -U postgres dify

恢复 volumes:

tar -xzvf dify-volumes-backup-2025-01-01.tar.gz -C /opt/dify/docker

最后启动全部服务:

docker compose up -d

查看状态:

docker compose ps

二十二、常见问题排查

1. 访问服务器 IP 打不开

首先检查容器是否启动:

cd /opt/dify/docker
docker compose ps

检查 Nginx 日志:

docker compose logs -f nginx

检查端口监听:

ss -tunlp | grep -E ':80|:443'

检查防火墙:

ufw status

检查云服务器安全组是否放行 80 和 443。


2. Docker 镜像拉取很慢

可以配置 Docker 镜像加速,或尝试换网络环境。

也可以手动拉取镜像:

docker compose pull

查看具体失败镜像:

docker compose logs

3. 内存不足导致服务异常

如果服务器只有 2GB 内存,很可能出现容器频繁退出。查看内存:

free -h

查看容器状态:

docker compose ps

查看异常容器日志:

docker compose logs -f 服务名

可以临时增加 Swap:

fallocate -l 4G /swapfile
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile
echo '/swapfile none swap sw 0 0' >> /etc/fstab
free -h

不过生产环境不建议依赖 Swap,最好升级服务器配置。


4. 修改 .env 后不生效

修改 .env 后,需要重新创建容器:

cd /opt/dify/docker
docker compose down
docker compose up -d

如果只是重启,部分环境变量可能不会完全生效。


5. 域名访问异常

检查 DNS:

nslookup dify.example.com

检查服务器端口:

ss -tunlp | grep 80
ss -tunlp | grep 443

检查反向代理配置是否正确。

如果使用 HTTPS,确认 .env 中相关 URL 也应使用 https://

CONSOLE_WEB_URL=https://dify.example.com
APP_WEB_URL=https://dify.example.com
SERVICE_API_URL=https://dify.example.com

6. 模型调用失败

常见原因包括:

  • API Key 填写错误;
  • Base URL 填写错误;
  • 模型名称不存在;
  • 账户余额不足;
  • 服务商网络不可达;
  • 使用了不支持的模型类型;
  • 代理或防火墙限制。

可以进入 Dify 控制台,在模型供应商页面测试连接。

也可以进入容器测试网络:

docker compose exec api sh

容器内执行:

curl -I https://api.openai.com

如果无法访问,需要检查服务器网络。


7. 知识库上传失败

可能原因:

  • 文件过大;
  • 存储路径权限异常;
  • Worker 服务异常;
  • 向量数据库异常;
  • Embedding 模型未配置;
  • 文档解析服务异常。

检查 Worker 日志:

docker compose logs -f worker

检查 API 日志:

docker compose logs -f api

确认已配置可用的 Embedding 模型。


二十三、生产环境优化建议

1. 使用强密码

请修改默认数据库密码、Redis 密码以及其他敏感配置。

不要使用:

postgres
password
123456
admin

建议使用随机强密码:

openssl rand -base64 32

2. 开启 HTTPS

生产环境务必使用 HTTPS,避免 API Key、登录信息和用户数据明文传输。

3. 定期备份

建议至少每天备份一次数据库,每周备份一次完整数据,并将备份文件保存到异地。

4. 限制服务器访问

如果是内部系统,可以通过安全组限制访问 IP。

例如只允许公司公网 IP 访问 80 / 443。

5. 监控服务器资源

可以使用:

docker stats

查看容器资源使用情况。

也可以安装:

apt install -y htop
htop

6. 独立数据库

当用户量增长后,建议将 PostgreSQL、Redis、向量数据库迁移到独立实例,提高稳定性和可维护性。


二十四、一键部署命令汇总

如果你是在一台全新的 Ubuntu 服务器上部署,可以参考以下命令快速完成基础安装。

请根据实际情况修改域名、环境变量和密码。

apt update && apt upgrade -y

apt install -y ca-certificates curl gnupg lsb-release git vim wget unzip

install -m 0755 -d /etc/apt/keyrings

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg

chmod a+r /etc/apt/keyrings/docker.gpg

echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" \
  > /etc/apt/sources.list.d/docker.list

apt update

apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

systemctl enable docker
systemctl start docker

cd /opt

git clone https://github.com/langgenius/dify.git

cd /opt/dify/docker

cp .env.example .env

docker compose up -d

docker compose ps

部署完成后访问:

http://服务器IP

二十五、总结

通过本文的步骤,我们完成了 Dify 的完整私有化部署,包括服务器准备、Docker 安装、Dify 项目拉取、环境变量配置、服务启动、域名 HTTPS 配置、日常管理、升级、备份和常见问题排查。

对于个人开发者来说,Dify 可以快速搭建自己的 AI 应用开发平台;对于企业来说,Dify 能够帮助团队统一管理模型、知识库、应用和 API,降低 AI 应用落地成本。

如果只是测试体验,可以直接使用服务器 IP 访问;如果用于生产环境,建议务必做好以下几点:

  • 使用域名和 HTTPS;
  • 修改默认密码;
  • 定期备份数据库和文件;
  • 监控服务器资源;
  • 合理配置模型供应商;
  • 根据业务规模选择合适的数据库和向量数据库方案。

至此,Dify 部署已经完成。你可以开始创建聊天助手、知识库问答应用、工作流应用或智能体应用,并将它们集成到自己的网站、企业微信、飞书、钉钉或业务系统中。

目录结构
全文