Dify在Ubuntu20.04系统的部署

一、dify 介绍

Dify 是一款开源的大语言模型(LLM)智能体开发平台,可以用于快速搭建个性化或具备商业价值的智能体。在这里插入图片描述

1.核心功能优势

(1)丰富的功能组件

AI 工作流:通过可视化画布构建和测试强大的 AI 工作流

RAG 管道:支持从文档摄入到检索的完整流程,可从 PDF、PPT 等常见格式中提取文本

Agent 智能体:基于 LLM 的推理能力,可以自主规划任务、调用工具,完成复杂任务

模型管理:支持数百种专有和开源的 LLM,如GPT、 Deepseek r1、Llama3 等,并提供模型性能比较功能

(2)工具集成

Dify 提供了 50 多种内置工具(如谷歌搜索、DALL·E、Stable Diffusion 等),并允许自定义模型接入

2.应用场景

智能客服与对话助手:通过自然语言处理技术快速响应用户咨询,支持上下文记忆和多轮对话设计。

内容生成与文档处理:自动生成文章、摘要、代码,或解析长文档进行结构化提取。

商业智能与数据分析:结合企业数据库,生成数据报告或提供决策建议。

二、dify 安装(docker方式)

1.代码库下载

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

下载后目录如下所示

drwxrwxr-x 11 allyoung allyoung  4096 Feb 24 03:33 ./
drwxrwxr-x 10 allyoung allyoung  4096 Feb 24 03:32 ../
drwxrwxr-x 22 allyoung allyoung  4096 Feb 24 03:33 api/
-rw-rw-r--  1 allyoung allyoung    56 Feb 24 03:33 AUTHORS
-rw-rw-r--  1 allyoung allyoung  9301 Feb 24 03:33 CONTRIBUTING_CN.md
-rw-rw-r--  1 allyoung allyoung 12656 Feb 24 03:33 CONTRIBUTING_JA.md
-rw-rw-r--  1 allyoung allyoung  9948 Feb 24 03:33 CONTRIBUTING.md
-rw-rw-r--  1 allyoung allyoung 12341 Feb 24 03:33 CONTRIBUTING_VI.md
drwxrwxr-x  3 allyoung allyoung  4096 Feb 24 03:33 dev/
drwxrwxr-x  2 allyoung allyoung  4096 Feb 24 03:33 .devcontainer/
drwxrwxr-x 10 allyoung allyoung  4096 Feb 24 03:33 docker/
drwxrwxr-x  8 allyoung allyoung  4096 Feb 24 03:33 .git/
-rw-rw-r--  1 allyoung allyoung   338 Feb 24 03:33 .gitattributes
drwxrwxr-x  7 allyoung allyoung  4096 Feb 24 03:33 .github/
-rw-rw-r--  1 allyoung allyoung  3279 Feb 24 03:33 .gitignore
drwxrwxr-x  2 allyoung allyoung  4096 Feb 24 03:33 images/
-rw-rw-r--  1 allyoung allyoung  2400 Feb 24 03:33 LICENSE
-rw-rw-r--  1 allyoung allyoung  1304 Feb 24 03:33 Makefile
-rw-rw-r--  1 allyoung allyoung 16631 Feb 24 03:33 README_AR.md
-rw-rw-r--  1 allyoung allyoung 13488 Feb 24 03:33 README_CN.md
-rw-rw-r--  1 allyoung allyoung 15162 Feb 24 03:33 README_ES.md
-rw-rw-r--  1 allyoung allyoung 15345 Feb 24 03:33 README_FR.md
-rw-rw-r--  1 allyoung allyoung 14846 Feb 24 03:33 README_JA.md
-rw-rw-r--  1 allyoung allyoung 13519 Feb 24 03:33 README_KL.md
-rw-rw-r--  1 allyoung allyoung 14279 Feb 24 03:33 README_KR.md
-rw-rw-r--  1 allyoung allyoung 13736 Feb 24 03:33 README.md
-rw-rw-r--  1 allyoung allyoung 14433 Feb 24 03:33 README_PT.md
-rw-rw-r--  1 allyoung allyoung 13615 Feb 24 03:33 README_SI.md
-rw-rw-r--  1 allyoung allyoung 14392 Feb 24 03:33 README_TR.md
-rw-rw-r--  1 allyoung allyoung 15423 Feb 24 03:33 README_VI.md
drwxrwxr-x  5 allyoung allyoung  4096 Feb 24 03:33 sdks/
drwxrwxr-x 20 allyoung allyoung  4096 Feb 24 03:33 web/

2.配置文件修改

进入代码库下载目录dify中的docker目录

cd ./dify/docker

.env.example改名为.env

cp .env.example .env

3.启动docker 容器

通过 $ docker compose version 命令检查版本,根据你系统上的 Docker Compose 版本,选择合适的命令来启动容器。

示例如下

$  docker compose version
Docker Compose version v2.20.3

本机Docker Compose 版本为v2,使用以下命令:

sudo docker compose up -d #Docker Compose 是 Docker 官方提供的一个工具,用于定义和运行多容器的 Docker 应用程序。借助一个 YAML 文件(通常命名为 `docker-compose.yml`),你可以对应用程序的服务、网络、卷等配置进行定义,然后使用 Docker Compose 命令一键式地启动、停止和管理整个应用程序。

这里如果版本是 Docker Compose V1,使用以下命令:

sudo docker-compose up -d

运行命令后,你应该会看到类似以下的输出,显示所有容器的状态和端口映射:

[+] Running 11/11
 ✔ Network docker_ssrf_proxy_network  Created                                                                 0.1s 
 ✔ Network docker_default             Created                                                                 0.0s 
 ✔ Container docker-redis-1           Started                                                                 2.4s 
 ✔ Container docker-ssrf_proxy-1      Started                                                                 2.8s 
 ✔ Container docker-sandbox-1         Started                                                                 2.7s 
 ✔ Container docker-web-1             Started                                                                 2.7s 
 ✔ Container docker-weaviate-1        Started                                                                 2.4s 
 ✔ Container docker-db-1              Started                                                                 2.7s 
 ✔ Container docker-api-1             Started                                                                 6.5s 
 ✔ Container docker-worker-1          Started                                                                 6.4s 
 ✔ Container docker-nginx-1           Started                                                                 7.1s

最后检查是否所有容器都正常运行:

docker compose ps

在这个输出中,你应该可以看到包括 3 个业务服务 api / worker / web,以及 6 个基础组件 weaviate / db / redis / nginx / ssrf_proxy / sandbox

NAME                  IMAGE                              COMMAND                   SERVICE      CREATED              STATUS                        PORTS
docker-api-1          langgenius/dify-api:0.6.13         "/bin/bash /entrypoi…"   api          About a minute ago   Up About a minute             5001/tcp
docker-db-1           postgres:15-alpine                 "docker-entrypoint.s…"   db           About a minute ago   Up About a minute (healthy)   5432/tcp
docker-nginx-1        nginx:latest                       "sh -c 'cp /docker-e…"   nginx        About a minute ago   Up About a minute             0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:443->443/tcp, :::443->443/tcp
docker-redis-1        redis:6-alpine                     "docker-entrypoint.s…"   redis        About a minute ago   Up About a minute (healthy)   6379/tcp
docker-sandbox-1      langgenius/dify-sandbox:0.2.1      "/main"                   sandbox      About a minute ago   Up About a minute             
docker-ssrf_proxy-1   ubuntu/squid:latest                "sh -c 'cp /docker-e…"   ssrf_proxy   About a minute ago   Up About a minute             3128/tcp
docker-weaviate-1     semitechnologies/weaviate:1.19.0   "/bin/weaviate --hos…"   weaviate     About a minute ago   Up About a minute             
docker-web-1          langgenius/dify-web:0.6.13         "/bin/sh ./entrypoin…"   web          About a minute ago   Up About a minute             3000/tcp
docker-worker-1       langgenius/dify-api:0.6.13         "/bin/bash /entrypoi…"   worker       About a minute ago   Up About a minute             5001/tcp

然后即可在浏览器上输入http://<your_ip>进行登陆。效果如下
在这里插入图片描述

三、遇到问题与解决

1.使用sudo docker compose up -d报错

报错日志如下

$ sudo docker compose up -d
[sudo] password for allyoung: 
[+] Running 10/10
 ✘ web Error                                                                                                                                                                                                                               15.0s 
 ✘ worker Error                                                                                                                                                                                                                            15.0s 
 ✘ nginx Error                                                                                                                                                                                                                             15.0s 
 ✘ db Error                                                                                                                                                                                                                                15.0s 
 ✘ redis Error                                                                                                                                                                                                                             15.0s 
 ✘ ssrf_proxy Error                                                                                                                                                                                                                        15.0s 
 ✘ plugin_daemon Error                                                                                                                                                                                                                     15.0s 
 ✘ api Error                                                                                                                                                                                                                               15.0s 
 ✘ sandbox Error                                                                                                                                                                                                                           15.0s 
 ✘ weaviate Error                                                                                                                                                                                                                          15.0s 
Error response from daemon: Get "https://registry-1.docker.io/v2/": context deadline exceeded (Client.Timeout exceeded while awaiting headers)

原因在于网络超时,无法获取到docker 镜像。

解决:增加docker镜像地址。

sudo vim /etc/docker/daemon.json

daemon.json中写入如下内容

{
 	"registry-mirrors": [
       "https://pull.loridocker.com",
       "https://docker.hlmirror.com",
       "https://dockerpull.cn"
  ]
 }

注意修改镜像地址后,要重启docker 后生效。命令如下

systemctl daemon-reload
systemctl restart docker

然后重新执行sudo docker compose up -d即可。

2.使用service docker start报错

报错日志如下

# service docker start
Failed to start docker.service: Unit docker.service not found.
# docker -v
Docker version 27.2.0, build 3ab4256

原因在于docker 安装不完整。

解决:

curl -sSL https://get.docker.com/ |sh
<think>好的,我现在需要帮助用户了解如何在Ubuntu部署Dify。首先,我得回忆一下Dify是什么。Dify好像是一个开源的AI应用开发平台,用户可以用它来构建基于语言模型的应用程序。用户可能想在自己的Ubuntu服务器上部署它,可能是为了开发或者测试自己的AI应用。 接下来,我得确定用户的需求。用户可能对Dify不太熟悉,所以需要从基础开始讲解。同时,用户可能已经具备一定的Linux操作经验,但可能需要详细的步骤指导,包括环境准备、依赖安装、配置和启动等。 首先,部署Dify需要满足哪些系统要求呢?可能包括Ubuntu的版本,比如18.04或更高,Docker和Docker Compose的安装,因为很多开源项目用容器化部署。内存方面,可能至少需要4GB,特别是如果同时运行数据库和其他服务的话。 然后,步骤大概分为安装依赖、克隆仓库、配置环境变量、启动服务、访问应用等。需要确保每个步骤都正确,比如Docker的安装是否正确,权限是否设置好了。环境变量方面,Dify可能需要一些配置,比如数据库连接、API密钥等,这些可能需要用户自己去获取,比如OpenAI的API密钥。 接下来,可能会遇到常见问题,比如端口冲突,这时候需要检查80和5001端口是否被占用。或者权限问题,比如Docker命令是否需要sudo,或者用户是否在docker组里。还有网络问题,比如镜像拉取慢,可能需要配置国内镜像源。 另外,后续维护方面,可能需要更新代码,重新构建容器,数据备份等,这些也是用户关心的点。数据备份尤其重要,避免数据丢失。 需要确保每个步骤的命令都是正确的,比如安装Docker的官方方法,添加用户到docker组,然后克隆仓库,复制环境文件,编辑配置,启动服务。这些步骤需要详细但简明,用户可能容易出错的地方要提示,比如环境变量文件中的必填项,或者如何获取API密钥。 可能还需要验证安装是否成功,比如用docker ps查看容器状态,访问IP和端口,或者处理防火墙设置。用户可能不知道如何检查服务是否正常运行,或者遇到浏览器无法访问的情况,需要排查网络或服务状态。 最后,保持回答结构清晰,分步骤讲解,避免使用过于专业的术语,但也要准确。可能需要提醒用户根据实际环境调整,比如如果已经有外部数据库,可以修改配置,或者如何调整资源限制。 总结一下,整个思考过程需要覆盖系统要求、详细步骤、常见问题处理、维护建议,并且确保命令正确,解释清楚每个步骤的目的,帮助用户顺利完成部署。</think>### Ubuntu 部署 Dify 分步教程 --- #### 一、系统要求 1. **操作系统**: Ubuntu 18.04 或更高版本 2. **内存**: ≥4GB(推荐 8GB) 3. **依赖工具**: - Docker 20.10+ - Docker Compose 2.0+ - Git --- #### 二、安装依赖 ##### 1. 安装 Docker 和 Docker Compose ```bash # 安装 Docker sudo apt update && sudo apt install -y docker.io sudo systemctl enable docker && sudo systemctl start docker # 安装 Docker Compose sudo curl -L "https://github.com/docker/compose/releases/download/v2.20.3/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose # 验证安装 docker --version && docker-compose --version ``` ##### 2. 配置用户权限(避免使用 `sudo`) ```bash sudo usermod -aG docker $USER newgrp docker # 或重新登录生效 ``` --- #### 三、部署 Dify ##### 1. 克隆仓库 ```bash git clone https://github.com/langgenius/dify.git cd dify/docker ``` ##### 2. 配置环境变量 ```bash cp .env.example .env nano .env # 按需修改以下参数(至少填写必填项) ``` - **必填项**: ```bash OPENAI_API_KEY=sk-xxx # 你的 OpenAI API 密钥 ``` ##### 3. 启动服务 ```bash docker-compose up -d ``` --- #### 四、验证部署 1. **查看容器状态** ```bash docker ps # 确认所有容器为 "healthy" 或 "running" ``` 2. **访问 Dify** - 浏览器输入 `http://服务器IP:80` - 首次访问需初始化管理员账号 --- #### 五、常见问题 ##### 1. 端口冲突 - 若 80 端口被占用,修改 `docker-compose.yml` 中 `ports` 配置: ```yaml ports: - "新端口:80" ``` ##### 2. 更新 Dify 版本 ```bash git pull origin main docker-compose down && docker-compose up -d --build ``` ##### 3. 数据备份 - **数据库备份**: ```bash docker exec -t dify-postgres pg_dump -U postgres > dify_backup.sql ``` --- #### 六、后续维护 1. **查看日志** ```bash docker-compose logs -f # 实时查看日志 ``` 2. **停止服务** ```bash docker-compose down ``` --- #### 附:配置 HTTPS(可选) 1. 使用 Nginx 反向代理并配置 Let's Encrypt 证书 2. 修改 `docker-compose.yml` 映射端口为 `443:443` --- 通过以上步骤,可在 Ubuntu 上快速部署 Dify。若需定制化配置(如外部数据库),需修改 `docker-compose.yml` 和 `.env` 文件。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值