零基础教程:在 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 工作流。

相关推荐
2401_8920709821 小时前
【Linux C++ 日志系统实战】LogFile 日志文件管理核心:滚动策略、线程安全与方法全解析
linux·c++·日志系统·日志滚动
雪可问春风21 小时前
docker环境部署
运维·docker·容器
lwx91485221 小时前
Linux-Shell算术运算
linux·运维·服务器
翻斗包菜21 小时前
PostgreSQL 日常维护完全指南:从基础操作到高级运维
运维·数据库·postgresql
somi721 小时前
ARM-驱动-02-Linux 内核开发环境搭建与编译
linux·运维·arm开发
双份浓缩馥芮白1 天前
【Docker】Linux 迁移 docker 目录(软链接)
linux·docker
海的透彻1 天前
nginx启动进程对文件的权限掌控
运维·chrome·nginx
黄昏晓x1 天前
Linux ---- UDP和TCP
linux·tcp/ip·udp
路溪非溪1 天前
Linux驱动开发中的常用接口总结(一)
linux·运维·驱动开发
此刻觐神1 天前
IMX6ULL开发板学习-01(Linux文件目录和目录相关命令)
linux·服务器·学习