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

相关推荐
测试修炼手册29 分钟前
[测试工具] 用 Codex 做测试实战:从需求分析到自动化用例落地
运维·自动化·需求分析
米高梅狮子44 分钟前
03.网络类服务实践
linux·运维·服务器·网络·kubernetes·centos·openstack
June`1 小时前
网络编程时内核究竟做了什么???
linux·服务器·网络
楼兰公子2 小时前
RK3588 + Linux7.0.3 网络工程调试错误速查手册
linux·网络·3588
Elnaij2 小时前
Linux系统与系统编程(9)——自设计shell与基础IO
linux·服务器
IpdataCloud2 小时前
稳定的企业级IP数据接口怎么选?可用性指标+离线库高可用方案
运维·网络·tcp/ip
WebGIS开发2 小时前
地信职业百科②:GIS运维
运维·gis·就业·转行
淘矿人2 小时前
Claude辅助DevOps实践
java·大数据·运维·人工智能·算法·bug·devops
JiaWen技术圈2 小时前
nginx 安全响应头 介绍
运维·nginx·安全
IMPYLH2 小时前
Linux 的 unexpand 命令
linux·运维·服务器·bash