0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

さくらのクラウドでDifyをホスティングしてみる①

Last updated at Posted at 2025-05-09

✨ Difyとは?

最近注目を集めている Dify は、ChatGPTやClaudeなどの大規模言語モデル(LLM)を活用して、
カスタムAIアプリケーションチャットボットを素早く構築できるオープンソースのプラットフォームです。

Difyを使うことで、次のようなAIアプリやチャットサービスを、専門的なプログラミングなしでも構築できます:

💬 質問応答ボット

  • 社内のよくある質問に答えるボット
  • PDFマニュアルに基づくQ&Aボット

💬 📄 文章要約ツール

  • ニュース記事を自動で要約するサービス
  • 議事録の要点を抽出するツール

🔗 外部データと連携したAIアプリの構築*

  • 社内データベースとつなげた在庫問い合わせボット
  • API経由で天気予報を取得して案内するAI」

🧠 複数の大規模言語モデル(LLM)を簡単に切り替えて利用

  • OpenAI(ChatGPT)、Anthropic(Claude)、Azure OpenAI、Mistral などを用途に応じて使い分け可能

💬 🛠️ ユーザー管理やログ表示、APIキー発行など商用にも対応

  • 社内メンバーごとにボットを使わせる
  • API経由で社外システムに機能を組み込む

つまり、Difyを使えば、「AIチャットを作ってみたい」「業務に生成AIを導入してみたい」という場合に、
Webインターフェースや少しの設定だけで実践的なAIツールを動かせるというわけです。


☁️ クラウド利用 vs セルフホスティング

Difyには大きく分けて2つの使い方があります:

利用方法 特徴
Dify Cloud(クラウド) サインアップ後すぐに利用可能。OpenAIキーがあれば即実行。開発体験がスムーズ。
セルフホスティング OSS版をDockerで自前サーバーにデプロイ可能。API制限なし・データ完全管理・独自改造もOK。

今回は後者の「セルフホスティング」の方法を、さくらのクラウド上にUbuntuサーバーを立てて実践しました。


✅ 必要なシステム要件

DifyをDocker Composeでセルフホスティングするためには、以下の最小要件を満たす必要があります:

  • CPU: 2コア以上
  • メモリ: 4 GiB以上(推奨は8 GiB)
  • OS: Linux(例:Ubuntu 20.04、AlmaLinux 9など)
  • Docker: バージョン19.03以降
  • Docker Compose: バージョン1.28以降

詳細はこちら
https://docs.dify.ai/ja-jp/getting-started/install-self-hosted/local-source-code?utm_source=chatgpt.com

📌 今回の目的と構成

この記事では、以下のことをゴールとしています:

  • さくらのクラウドに仮想サーバー(Ubuntu)を作成
  • DockerおよびDocker Composeを導入
  • Difyの公式リポジトリからクローンして、ローカルで起動準備を整える

今後の記事では、.env の設定や、実際の初期起動、外部公開(nginxやSSL設定)についても扱う予定です。

サーバーを作成

さくらのクラウドホーム画面から、「さくらのクラウド(Iaas)」を開く
image.png

サイドバーから「サーバ」を選択し、右上の「追加」をクリック
image.png

以下の設定値でサーバを作成する。
image.png

image.png

image.png

公開鍵を「プロジェクトから選択」にするためには、予めさくらのクラウドに登録しておく必要があります。もちろん「入力」を選択して直接入力することも可能です。

(公開鍵を「なし」に設定した場合は、管理ユーザのパスワードでSSHログインできます。)
スクリーンショット 2025-05-10 065537.png

image.png

作成されたサーバを開き、NICタブをクリックします。
「共有セグメント インターネット」(つまりインターネット公開されているインターフェース)の、「IPv4アドレス」がサーバのSSHログインIPです。

スクリーンショット 2025-05-10 070741.png

ssh ubuntu@{共有セグメントのIPv4アドレス}

サーバにDockerとDocker Composeをインストール

1. 依存パッケージのインストール

sudo apt update #サーバ作成時にapt updateしていたら不要
sudo apt install -y ca-certificates curl gnupg lsb-release

2. GPGキーとリポジトリの追加

DockerのAPTリポジトリの信頼性を確認するための「署名鍵(GPGキー)」を、ローカルにバイナリ形式で保存します。

sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | \
  sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
ls -l /etc/apt/keyrings/docker.gpg

🤔 なぜこんなことをするの?

APT(パッケージ管理システム)は、公式以外のソースからソフトウェアをインストールするとき、その出所を検証するために「署名キー」を必要とします。Dockerのソフトウェアをインストールするためには、Dockerの署名付きパッケージが本物であることを確認するための鍵が必要なんです。

3. Dockerリポジトリの設定

次に DockerのAPTリポジトリの追加 を行います。

echo \
  "deb [arch=$(dpkg --print-architecture) \
  signed-by=/etc/apt/keyrings/docker.gpg] \
  https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
cat  /etc/apt/sources.list.d/docker.list

/etc/apt/sources.list.d/docker.listに以下のような情報が入っていればOK。

deb [arch=amd64   signed-by=/etc/apt/keyrings/docker.gpg]   https://download.docker.com/linux/ubuntu   jammy stable

4. APTキャッシュを更新

sudo apt update

5. DockerとDocker Composeをインストール

sudo apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin

この画面が途中で表示されます。

これは、APTによるパッケージ更新後に表示される「古いライブラリを使っているデーモン(サービス)を再起動するか?」という確認です。
セキュリティや安定性のために、再起動しておくのが推奨されます。

Tab キーを押すと にカーソルが移動します
Enter キーで確定→ インストールが進みます。

6. Dockerの動作確認

sudo docker run hello-world

以下のような文章が表示されたら成功!

Hello from Docker!
This message shows that your installation appears to be working correctly.

Difyのインストール

Difyをインストールする前に、専用のユーザを作成しておきます。(セキュリティ上、管理ユーザとわけるため。この手順飛ばしてもDifyのインストールはできます。)

1. difyhost ユーザーの作成

# 1. ユーザー作成(パスワードも設定されます)
sudo adduser difyhost

# 2. Dockerグループに追加(sudoなしで docker コマンドを使えるように)
sudo usermod -aG docker difyhost

# 3. difyhostユーザに切り替え
su - difyhost

# 4. ホームディレクトリが/home/difyhost/担っていることを確認
pwd

以後の手順で、/home/difyhost/配下にDify Composeがデプロイされます。

2. Difyのリポジトリをクローン

git clone https://github.com/langgenius/dify.git
cd dify/docker

※特定のDifyバージョンを選択してクローンしたい場合は上記ではなく下記手順を実施します。
(例として1.0.0-beta.1を使用する場合)

git clone https://github.com/langgenius/dify.git .
git tag
git fetch --tags
git checkout tags/1.0.0-beta.1 -b dify-1.0.0-beta.1
cd dify/docker

3. 環境設定ファイルをコピー

cp .env.example .env

4. Docker コンテナを起動する

docker compose up -d

下記のような画面が1分ほど続きます。

image.png

下記画面のようにContainerが表示され、すべて起動されたらOK!!

image.png

5. Difyへアクセス

Google Chromeなどのブラウザで、下記のアドレスにアクセスしてみましょう。
IPは作成したサーバのNICの共有セグメントのIPです。

http://{サーバのIP}/install

スクリーンショット 2025-05-10 070741.png

下記のような画面が表示されたら成功です!

メールアドレスなど必要事項を入力して、「セットアップ」をクリックします。

その後、特にメール認証などはなく、ログイン画面に遷移するので、
先ほど入力したメールアドレスとPWを入力します。

Difyの管理画面が表示されます。
スクリーンショット 2025-05-10 083300.png

一旦ここまで。

📝 まとめ:セルフホスティングでDifyを動かすまで

今回は、さくらのクラウド上にUbuntuサーバーを用意し、Dockerを使ってDifyをセルフホストするところまでを実践しました。

クラウド版と違い、自前のサーバーで運用することで以下のようなメリットがあります:

  • API利用制限なしで開発・検証できる
  • データがすべて自分の管理下にある
  • 独自の改造や社内システムとの統合がしやすい

🔧 今後予定していること

次回以降は、以下のような「実運用に向けた環境整備」を進めていきます:

  • Let's Encrypt を使った SSL/TLS 対応
  • ベーシック認証やファイアウォール等のセキュリティ強化
  • Difyのアプリケーション開発

DifyはLLMを活用した開発をグッと身近にしてくれる強力なツールです。
引き続き、自分だけのAIアプリ基盤を一緒に育てていきましょう!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?