Dify
在 Linux 服务器用 Docker 安装 Dify
这篇笔记记录一下我在 Linux 服务器上安装 Dify 的过程。 Dify 官方提供了 Docker Compose 配置。只要 Docker 能正常使用,网络也没有问题,安装本身很快。 我实际碰到的问题主要有两个: 当前用户权限不够,需要使用 sudo 或者切换到 root。 服务器访问 GitHub 和 Dock

这篇笔记记录一下我在 Linux 服务器上安装 Dify 的过程。
Dify 官方提供了 Docker Compose 配置。只要 Docker 能正常使用,网络也没有问题,安装本身很快。
我实际碰到的问题主要有两个:
- 当前用户权限不够,需要使用
sudo或者切换到root。 - 服务器访问 GitHub 和 Docker 镜像仓库比较慢,需要处理网络问题。
安装前准备
Dify 官方文档给出的最低配置是:
CPU >= 2 Core
RAM >= 4 GiB服务器还需要提前安装:
Git
Docker 19.03+
Docker Compose 2.24.0+
curl
jq先确认 Docker 可以正常运行:
docker version
docker compose version如果出现权限错误,可以先加上 sudo:
sudo docker version
sudo docker compose version关于 Docker 权限
Linux 上 Docker daemon 通常需要较高权限。
最直接的方式是使用:
sudo docker compose up -d或者临时切换到 root 用户操作。
如果希望普通用户也能执行 Docker 命令,可以把用户加入 docker 组:
sudo usermod -aG docker $USER然后重新登录服务器。
需要注意,能执行 Docker 命令的用户权限已经很高。生产服务器不要随便把无关用户加入 docker 组。
处理网络问题
安装 Dify 时,至少有两类网络请求:
- 使用
git clone从 GitHub 下载 Dify 源码。 - 使用 Docker 从镜像仓库拉取 Dify 和数据库等容器镜像。
这两类请求不一定共用同一套网络配置。
如果服务器可以使用代理,可以先给当前终端配置代理:
export HTTP_PROXY=http://127.0.0.1:7890
export HTTPS_PROXY=http://127.0.0.1:7890这通常可以帮助 git clone、curl 等命令访问外部网络。
Docker 拉镜像由 Docker daemon 负责。只给当前终端设置代理后,Docker daemon 不一定会自动使用它。
可以按照 Docker 官方文档,在:
/etc/docker/daemon.json中配置 daemon 代理:
{
"proxies": {
"http-proxy": "http://127.0.0.1:7890",
"https-proxy": "http://127.0.0.1:7890",
"no-proxy": "localhost,127.0.0.1"
}
}也可以配置自己可用的镜像加速服务:
{
"registry-mirrors": [
"https://你的镜像服务地址"
]
}修改后重启 Docker:
sudo systemctl restart docker代理和镜像地址要根据自己的服务器环境填写。公共镜像服务可能会变化,不要长期依赖随手找到的地址。
安装 Dify
拉取官方仓库:
git clone --branch "$(curl -s https://api.github.com/repos/langgenius/dify/releases/latest | jq -r .tag_name)" \
https://github.com/langgenius/dify.git
cd dify/docker这里会拉取最新 release。直接克隆 main 分支也可以,但更适合查看或开发最新代码。
复制环境变量文件:
cp .env.example .env第一次安装可以先使用默认配置。需要修改端口、域名、数据库或者向量数据库时,再编辑:
.env启动服务:
sudo docker compose up -d第一次启动需要拉取多个镜像,耗时主要取决于网络速度。
查看容器状态:
sudo docker compose ps查看日志:
sudo docker compose logs -f初始化账号
服务启动后,在浏览器打开:
http://你的服务器IP/install按照页面提示创建管理员账号。
初始化完成后,访问:
http://你的服务器IP就可以登录 Dify。
如果页面打不开,还要检查服务器防火墙和云服务器安全组是否允许访问对应端口。默认 Docker Compose 配置通过 Nginx 暴露 HTTP 端口 80。
常用命令
停止服务:
sudo docker compose down重新启动:
sudo docker compose up -d修改 .env 后,可以重新创建容器让配置生效:
sudo docker compose down
sudo docker compose up -d我最后的感觉
Dify 的 Docker 安装并不复杂。
真正容易花时间的地方,一般不是 Dify 本身,而是服务器环境:
- Docker 有没有安装好。
- 当前用户有没有权限执行 Docker。
- GitHub 能不能正常访问。
- Docker daemon 能不能顺利拉取镜像。
- 防火墙和安全组有没有开放端口。
这些问题解决以后,剩下的步骤基本就是:
git clone --branch "$(curl -s https://api.github.com/repos/langgenius/dify/releases/latest | jq -r .tag_name)" \
https://github.com/langgenius/dify.git
cd dify/docker
cp .env.example .env
sudo docker compose up -d