零基础教程:在 Linux 上通过 Docker 快速部署 Dify

零基础教程:在 Linux 上通过 Docker 快速部署 Dify

Dify 是一款强大的 LLM 应用开发平台,它可以让你轻松构建自己的 AI 助手、知识库和工作流。本文将手把手教你如何在 Linux 服务器上从零开始搭建 Dify 环境。

一、 环境准备

在开始之前,请确保你的服务器满足以下最低配置要求:

  • CPU: 2 核及以上
  • 内存: 4 GB 及以上(推荐 8GB+,否则运行多个模型插件时可能会卡顿)
  • 磁盘: 至少 50 GB 可用空间
  • 操作系统: Ubuntu 20.04+, CentOS 7+ 或其他主流 Linux 发行版

1. 安装 Docker 和 Docker Compose

Dify 依赖 Docker 环境运行。如果你的服务器尚未安装,可以使用以下官方脚本快速安装:

bash 复制代码
# 安装 Docker
# Docker 版本建议 25.0.1
curl -fsSL https://get.docker.com | bash -s docker 

# 启动并设置开机自启
sudo systemctl start docker
sudo systemctl enable docker

# 安装 Docker Compose (V2版本)
# 现在的 Docker 通常自带 compose,可以检查一下
docker compose version

二、 下载 Dify 源码

我们直接从 GitHub 获取 Dify 的部署配置:
Dify历史版本

bash 复制代码
# 克隆项目仓库
git clone https://github.com/langgenius/dify.git

# 进入目录
cd dify/docker

三、 配置环境变量

Dify 使用 .env 文件来管理配置。我们需要从模板创建一个:

bash 复制代码
# 复制环境变量模板
cp .env.example .env

提示: 一般情况下,默认配置即可直接运行。如果你需要修改默认端口(默认 80 端口),可以用 vim .env 修改 NGINX_PORT 变量。

bash 复制代码
# HTTP port
NGINX_PORT=80

四、 启动部署

dify/docker 目录下执行启动命令。第一次启动时,Docker 会下载所需的镜像(包括 PostgreSQL, Redis, Weaviate 等),耗时视网络情况而定:

bash 复制代码
docker compose up -d

启动完成后,你可以通过以下命令查看容器状态:

bash 复制代码
docker compose ps

如果看到所有服务(如 api, worker, web, db 等)都显示 UpHealthy,说明部署成功。

更新容器:

bash 复制代码
# 停止并删除容器(不会删除数据,因为数据在 volumes 里)
docker compose down

# 重新启动
docker compose up -d

五、 初始化与访问

  1. 访问后台 :在浏览器中输入 http://你的服务器IP
  2. 设置管理员:第一次访问时,系统会提示你设置管理员账号和密码。
  3. 配置模型 :进入系统后,点击右上角的 "设置" -> "模型供应商" ,填入你的 OpenAI、Claude 或 DeepSeek 的 API Key。

六、 常见问题排查 (FAQ)

  • 访问不了页面?
    请检查服务器防火墙是否开放了 80 端口(或者你在 .env 中设置的端口)。
  • 镜像下载太慢?
    建议配置国内的 Docker 镜像加速器。
  • 如何更新 Dify?
bash 复制代码
cd dify/docker
docker compose down
git pull origin main
docker compose pull
docker compose up -d

结语

恭喜你!现在你已经拥有了一套属于自己的私有化 AI 开发平台。你可以在上面创建情感助手、接入本地知识库,甚至构建复杂的 AI 工作流。

相关推荐
Y1rong几秒前
linux之信号量
linux
70asunflower11 分钟前
用Docker创建不同的容器类型
运维·docker·容器
wdfk_prog13 分钟前
[Linux]学习笔记系列 -- [drivers][tty]sysrq
linux·笔记·学习
2501_9336707914 分钟前
中专学财务,2026年就业方向全解析:从出纳到财务BP的进阶路
运维·服务器
c++逐梦人18 分钟前
Linux基础IO
linux·操作系统·io
blueSatchel19 分钟前
U-Boot载入到DDR过程的代码分析
linux·开发语言·u-boot
专注VB编程开发20年21 分钟前
vb.net datatable新增数据时改用数组缓存
java·linux·windows
Dovis(誓平步青云)33 分钟前
《滑动窗口算法:从 “暴力遍历” 到 “线性高效” 的思维跃迁》
运维·服务器·数据库·算法
迎仔42 分钟前
05-计算设备运维进阶:算力中心的设备医生
运维
小Pawn爷1 小时前
3.Dockerfile
docker