在 Linux 上安装 Dify 并启用自动备份功能。

0 股票
0
0
0
0

介绍

在本教程中,我将引导您完成在 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 实例已准备就绪,每日备份可确保您的数据安全。.

    发表回复

    您的邮箱地址不会被公开。 必填项已用 * 标注

    您可能也喜欢