Featured image of post Dify 本地私有化部署 - 在本地环境通过 Docker 部署开源 LLM 应用开发平台

Dify 本地私有化部署 - 在本地环境通过 Docker 部署开源 LLM 应用开发平台

快速搭建一个安全、可扩展且完全自主可控的 AI 工作流平台

Dify 本地私有化部署

前面使用Dify官网云端部署了点击查看→【之前的文章】 ,虽然简单省事,但是免费账号限制较多,假如我们有一台自己的服务器,或者想在本地使用Dify,就可以本地部署,下面讲一下怎么在自己的Windows系统部署Dify以及自己遇到的一些坑。

Docker的检查以及安装

首先Dify是运行在Docker里面的,先检查一下你电脑有没有Docker。 以Windows为例,打开Power shell输入以下命令并回车:

1
docker --version

有的话直接进入下一步,没有的话先装一下Docker。

1.官网下载安装:https://www.docker.com/products/docker-desktop/

2.或者直接使用winget包管理安装,可以先搜一下,运行 winget search docker

看到这个有别名(Moniker)的就是官方认证的docker真身,可以使用它的ID安装也可以直接使用别名docker安装。

运行 winget install docker 等待安装完成。

关键点(WSL 2):

  • Docker Desktop 在 Windows 上强烈依赖 WSL 2 (Windows Subsystem for Linux)。

  • 如果你没开启过,安装完成后 Docker 会提示你更新 WSL。你可以打开 PowerShell(管理员模式)运行:wsl --update

  • 过程可能需要关闭系统功能Hyper-V 并且重启电脑。

现在 Docker Desktop 在 Windows 上默认用 WSL 2 作为后端,会自动创建 WSL 实例,用来运行 Docker 的服务、管理容器资源。如图

Dify的本地部署

克隆Dify官方源码

Dify是开源项目,虽然可以直接在GitHub找到下载压缩包来运行。 GitHub - langgenius/dify: Production-ready platform for agentic workflow development.

但是建议使用使用git克隆仓库,后面假如我们想进行更多的操作比如便捷地切换、更新、回滚 Dify 版本,管理自定义修改等都会更加方便。(如果你没安装 Git,去 git-scm.com 装一个)

先创建一个存放Dify的文件夹,建议在用户目录下创建,避免遇到权限不足的情况。如 C:\Users\Dev\dify

然后在该文件夹下打开终端,运行克隆命令

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

等待完成。

进入Docker目录

Dify 的部署文件都放在这个目录里:

1
cd dify/docker

复制环境变量文件

Dify 需要一个环境配置文件,官方已经写好了模板,复制一份即可:

1
cp .env.example .env

一键启动

这是最关键的一步,它会自动拉取所有镜像(Postgres, Redis, Weaviate 等)并启动:

1
docker compose up -d

验证与访问

执行完上一步后,等待个几分钟(数据库初始化需要时间)。打开浏览器,访问:

http://localhost

看到 Dify 的账户设置界面,本地私有化部署成功!

这时候可以把云端的应用DSL文件下载下来导入本地Dify运行,也可以新建应用。

感悟

和之前使用的官网界面一模一样,想到之前不充会员带来的限制,在此刻解禁了,想想还是挺激动的😎

比如这个知识库文件上传数量限制,官方免费账户是一次一个,本地部署的默认值是一次5个。

但是我通常使用markdown文件,这种格式处理起来毫无压力,我直接改成50个一次。
.env文件里搜索batch找到这个参数,我这里改成50。

页面这里的提示已经变了,发现它的后面写死了总数不超过5个,但是前面已经变成每批最多50个了,无伤大雅,直接上传测试。

成功把一大堆md文件一次性上传。

常见坑点预警(如果不成功看这里):

  1. 端口冲突: Dify 默认占用 80 端口。如果你电脑上跑了 IIS 或者其他 Web 服务,会启动失败。

    • 解决: 修改 .env 文件,找到 EXPOSE_NGINX_PORT=80,改成比如 8088,然后重启容器。
  2. 内存不足: Docker Desktop 默认分配内存可能不够,Dify 这一套全家桶建议至少给 Docker 分配 4GB 以上 内存。

使用 Hugo 构建
主题 StackJimmy 设计