介绍
在本教程中,我将引导您完成在 Linux 服务器(Ubuntu、Debian 或 CentOS)上安装开源 LLMOps 平台 Dify 的过程。我还会设置使用 Restic 和兼容 S3 的对象存储(例如 Cloudflare R2)进行自动备份。完成本教程后,您将在服务器上拥有一个功能齐全的 Dify 实例,并能定期进行备份。.
Dify 是一款功能强大的工具,可用于创建、部署和管理 AI 应用。该平台提供简洁易用的用户界面,无需深厚的编程知识即可构建 AI 应用,并集成了多种 AI 模型和服务。.
这种配置为您提供了一个强大的环境,可用于开发和运行人工智能应用程序。.
先决条件
开始之前,您需要准备以下物品:
- 一台 Linux 服务器(Ubuntu、Debian 或 CentOS)以及具有 sudo 权限的用户访问权限。.
- 指向服务器 IP 地址的域名。.
- 域名的 SSL 证书(例如通过 Cloudflare)。.
要使用 Cloudflare 生成 SSL 证书,请先注册并:
- 购买域名或将现有域名指向 Cloudflare 名称服务器。.
- 选择您的域名,然后转到 SSL/TLS » 源服务器 » 创建证书,即可生成 SSL 证书。.
Cloudflare SSL 证书
我们将以 Ubuntu 为例操作系统,但对于 Debian 和 CentOS,步骤也类似。.
步骤 1 – 准备服务器
首先,我们将更新系统,安装 Docker 和 Docker Compose,并设置 Git。以下命令将为我们完成所有这些操作:
sudo apt update -y && \
sudo apt upgrade -y && \
sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common gnupg lsb-release && \
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg && \
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null && \
sudo apt-get update -y && \
sudo apt-get install -y docker-ce && \
sudo usermod -aG docker $USER && \
sudo curl -L https://github.com/docker/compose/releases/download/v2.26.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose && \
sudo chmod +x /usr/local/bin/docker-compose && \
sudo apt install git -y此命令执行以下操作:
- 更新系统软件包列表并更新已安装的软件包。.
- 安装所需的依赖项。.
- 添加 GPG 密钥和官方 Docker 仓库。.
- 安装 Docker 和 Docker Compose。.
- 将您的用户添加到 Docker 用户组。.
- 安装 Git。.
要进行检查,您可以运行以下命令:
docker --version && docker compose version && git version
您可能需要注销并重新登录,群组信息才能更新。.
步骤 2 – 克隆 Dify 存储库
现在我们克隆 Dify 代码库:
cd ~ && git clone https://github.com/langgenius/dify.git
此命令会将 Dify 源代码下载到您的服务器。.
步骤 3 – 配置 Dify
接下来,我们设置配置文件:
cd ~/dify/docker
cp .env.example .env
nano .env
这些命令:
- 重定向到 Dify Docker 目录。.
- 创建示例环境文件的副本。.
- 在 nano 文本编辑器中打开新建的 .env 文件。.
在 .env 文件中,根据您的需要设置以下变量:
- 正在更新域变量:
APP_WEB_URL=your_domain_name
NGINX_HTTPS_ENABLED=true- 更新证书变量:
- 如果您使用的是自己的证书,则可以保留默认值,并在下一步中添加相关的密钥文件。.
- 如果您使用的是 Cloudflare 证书,请按如下方式更新证书变量的值:
- 更新证书变量:
NGINX_SSL_CERT_FILENAME=cert.pem
NGINX_SSL_CERT_KEY_FILENAME=key.pem- 更新其他变量:
同时检查 .env 文件中的其他变量,并根据需要进行调整。.
修改完成后,按 Ctrl+S 保存文件,按 Ctrl+X 退出 nano 编辑器。.
第四步——设置SSL证书
现在我们将添加SSL证书。.
如果您使用自己的证书,可以将其包含在 dify.crt 和 dify.key 文件中。.
如果您使用的是 Cloudflare 证书,则需要将其包含在 cert.pem 和 key.pem 文件中。.
个人证书
创建两个新文件:
nano ~/dify/docker/nginx/ssl/dify.crt
nano ~/dify/docker/nginx/ssl/dify.key将您的证书和密钥复制粘贴到这些文件中。然后保存并退出编辑器(Ctrl+S,Ctrl+X)。.
Cloudflare证书
添加 Cloudflare 证书的方法如下:
nano ~/dify/docker/nginx/ssl/cert.pem
nano ~/dify/docker/nginx/ssl/key.pem将 Cloudflare 证书的内容复制到这些文件中。然后保存并退出编辑器(Ctrl+S,Ctrl+X)。.
第五步 – 部署 Dify
现在我们准备部署Dify:
cd ~/dify/docker docker
compose up -d此命令启动 Dify 所需的所有容器。-d 选项以分离模式(在后台)运行容器。.
大约一分钟后,您应该可以通过在浏览器中访问您的域名来看到您的 Dify 实例。.
要检查容器状态,可以运行以下命令:
docker ps -a步骤六——设置自动备份
部署 Dify 后,我们来设置使用 Restic 和 S3 兼容对象存储(例如 Cloudflare R2)的自动备份。首先,我们需要切换到 root 用户:
sudo su
cd ~步骤 6.1 – 安装 Restic
以上命令会将我们带到根目录。现在,让我们安装 Restic:
sudo apt update
sudo apt install restic步骤 6.2 – 准备与 S3 兼容的存储桶
如果您尚未创建存储桶,请从您的服务提供商处创建一个新存储桶,或在您的 Cloudflare 帐户中创建一个 R2 存储桶。请注意以下信息:
- 存储桶名称
- ID访问密钥
- 秘密访问密钥
- 端点 URL
步骤 6.3 – 创建备份脚本
我们创建一个新目录并设置备份脚本:
mkdir -p /root/restic
nano /root/restic/backup.sh请将以下内容复制并粘贴到文件中:
#!/bin/bash
# Set environment variables for Restic
export RESTIC_REPOSITORY="s3:YOUR_S3_ENDPOINT_URL/YOUR_BUCKET_NAME"
export AWS_ACCESS_KEY_ID="YOUR_ACCESS_KEY_ID"
export AWS_SECRET_ACCESS_KEY="YOUR_SECRET_ACCESS_KEY"
export RESTIC_PASSWORD_FILE="/etc/restic-password"
# Set the backup source
# Replace "YOUR_USER" with the user that installed Dify
BACKUP_SOURCE="/home/YOUR_USER/dify/docker/volumes"
# Perform the backup
restic backup $BACKUP_SOURCE
# Prune old snapshots (keep last 7 daily, last 4 weekly, and last 12 monthly backups)
restic forget --keep-daily 7 --keep-weekly 4 --keep-monthly 12 --prune
# Check the repository for errors
restic check将初始值替换为您的 S3 存储桶的实际信息,并将“YOUR_USER”替换为安装 Dify 的用户。然后保存文件并退出编辑器(Ctrl+S,Ctrl+X)。.
步骤 6.4 – 设置 Restic 存储库
我们设置环境变量并启动存储库:
export RESTIC_REPOSITORY="s3:YOUR_S3_ENDPOINT_URL/YOUR_BUCKET_NAME"
export AWS_ACCESS_KEY_ID="YOUR_ACCESS_KEY_ID"
export AWS_SECRET_ACCESS_KEY="YOUR_SECRET_ACCESS_KEY"
restic init我们将密码存储在一个新文件中,供 cron 作业使用:
echo "YOUR_PASSWORD" > /etc/restic-password
chmod 600 /etc/restic-password步骤 6.5 – 设置每日备份
打开 cron 文件,并在文件末尾添加以下行:
crontab -e 0 3 * * * /root/restic/backup.sh > /root/restic/backup.log 2>&1此命令设置每日凌晨 3 点进行备份。保存文件并退出编辑器。.
步骤 7 – 检查设置
为确保设置正确:
- 手动运行备份脚本:
/root/restic/backup.sh- 请访问 Restic 代码库查看照片:
restic 快照步骤 8 – Dify 的未来更新
将来要更新 Dify,请运行以下命令:
cd ~/dify/docker
docker compose down
git pull origin main
docker compose pull
docker compose up -d这些命令停止当前容器,加载新的更改,下载更新的镜像,并启动新的容器。.
结果
恭喜!您已成功在 Linux 服务器上安装 Dify,设置了 SSL 证书,并配置了自动备份。现在您的 Dify 实例已准备就绪,每日备份可确保您的数据安全。.










