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

相关推荐
AlfredZhao2 天前
生产环境里,为什么不建议把普通端口直接暴露到公网?
linux·https·443·80
戴为沐3 天前
Linux内存扩容指南
linux
zylyehuo4 天前
Linux 彻底且安全地删除文件
linux
用户805533698034 天前
主线 U-Boot 上 RK3506:和闭源 rkbin 拔河的三个隐性契约
linux·嵌入式
用户034095297914 天前
linux fcitx 5 雾凇拼音 设置在中文输入法下仍然输入英文标点
linux
乘云数字DATABUFF4 天前
5分钟部署开源APM Databuff:OpenTelemetry全链路追踪入门实战
运维·后端
Patrick_Wilson5 天前
从「改个端口」到 502:Next.js on k8s 的容器端口、Service 映射与 env 覆盖
docker·kubernetes·next.js
Suroy5 天前
DockerView-Go:用 Go 写一个终端 Docker 监控工具,顺便做了个 Web 仪表盘
docker
云恒要逆袭5 天前
运行你的第一个Docker容器
后端·docker·容器
Web3探索者6 天前
可视化服务器管理和传统命令行区别是什么?新手教程:Linux 运维到底该用图形界面还是 SSH 命令行?
linux·ssh