自動バックアップ付きのLinuxにDifyをインストールする

0 株式
0
0
0
0

導入

このチュートリアルでは、オープンソースのLLMOpsプラットフォームであるDifyをLinuxサーバー(Ubuntu、Debian、またはCentOS)にインストールする手順を詳しく説明します。また、ResticとS3互換オブジェクトストレージ(例:Cloudflare R2)を使用した自動バックアップの設定も行います。このチュートリアルを完了すると、サーバー上で完全に機能するDifyインスタンスが稼働し、定期的なバックアップが実行されるようになります。.

Difyは、AIアプリケーションの作成、デプロイ、管理を可能にする強力なツールです。このプラットフォームは、高度なコーディング知識を必要とせずに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 ディレクトリにリダイレクトします。.
  • サンプル環境ファイルのコピーを作成します。.
  • 新しい .env ファイルを nano テキスト エディターで開きます。.

.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 エディターを終了します。.

    ステップ4 – SSL証明書を設定する

    ここで SSL 証明書を追加します。.

    独自の証明書を使用している場合は、それを dify.crt ファイルと dify.key ファイルに含めることができます。.

    Cloudflare 証明書を使用している場合は、cert.pem ファイルと key.pem ファイルに含める必要があります。.

    個人証明書

    2 つの新しいファイルを作成します。

    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)。.

    ステップ5 – Difyをデプロイする

    これでDifyをデプロイする準備が整いました。

    cd ~/dify/docker docker
    compose up -d

    このコマンドは、Difyに必要なすべてのコンテナを起動します。-dオプションは、コンテナをデタッチモード(バックグラウンド)で実行します。.

    1 分ほど経つと、ブラウザでドメインにアクセスすると Dify インスタンスが表示されるはずです。.

    コンテナのステータスを確認するには、次のコマンドを実行します。

    docker ps -a

    ステップ6 – 自動バックアップを設定する

    Difyをデプロイしたら、ResticとS3互換オブジェクトストレージ(例:Cloudflare R2)を使って自動バックアップを設定しましょう。まず、ルートユーザーに切り替える必要があります。

    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

    パスワードを cronjob の新しいファイルに保存します。

    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インスタンスの使用準備が整い、毎日のバックアップでデータの安全性が確保されます。.

    コメントを残す

    メールアドレスが公開されることはありません。 が付いている欄は必須項目です


    あなたも気に入るかもしれない