導入
このチュートリアルでは、オープンソースの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.pemCloudflare証明書の内容をこれらのファイルにコピーします。保存してエディターを終了します(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インスタンスの使用準備が整い、毎日のバックアップでデータの安全性が確保されます。.










