STEP 01
全体像を理解する
Difyは、LLM(大規模言語モデル)を使ったAIアプリをノーコードで構築できるオープンソースのプラットフォームです。チャットボット、テキスト生成ツール、ワークフローなどをブラウザ上で簡単に作れます。
Difyを動かすには複数のサービス(API、データベース、Redisなど)が必要で、それらをまとめて管理するためにDockerを使います。WindowsでDockerを使うにはWSL2(Windows上のLinux環境)が必要です。
さらに、Difyは「箱」のようなもので、中で動くAIモデルは別途用意する必要があります。今回はLM Studioを使って、PC上でローカルにLLMを動かし、Difyと接続します。
💡
この構成ではすべてがPC内で完結します。外部APIの契約や課金は一切不要です。インターネット接続はセットアップ時のみ必要で、構築後はオフラインでも動作します。
必要なスペック
- Windows 10/11(64bit)
- CPU:2コア以上
- メモリ:16GB以上推奨(最低8GB)
- ディスク空き容量:20GB以上
STEP 02
WSL2(Ubuntu)をインストールする
WSL2は「Windows上でLinuxを動かす仕組み」です。DockerやDifyはLinux上で動くため、まずこれを有効にします。
1
PowerShellを管理者として開く
スタートメニューで「PowerShell」と検索 → 右クリック →「管理者として実行」を選択します。
2
WSL2をインストールする
wsl --install
正常に進めばUbuntuが自動でインストールされます。
⚠️
ネットワークエラーが出る場合は、wsl --install --no-distribution でWSL2本体だけを先にインストールし、PCを再起動した後にMicrosoft Storeから「Ubuntu」を検索してインストールしてください。
4
Ubuntuの初期設定
再起動後、Ubuntuが自動で起動し、ユーザー名とパスワードの設定を求められます。パスワードは入力中に画面に表示されませんが、ちゃんと入力されています。
STEP 03
Docker Desktopをインストールする
Dockerは「アプリとその動作環境をまとめたコンテナを動かすツール」です。Difyの複数のサービスをまとめて起動・管理するために使います。
2
インストーラーを実行
Configuration画面で以下を確認してください:
| 項目 |
設定 |
説明 |
| Use WSL 2 instead of Hyper-V |
✅ チェックする |
DockerをWSL2上で動かす設定。必須。 |
| Allow Windows Containers... |
☐ チェック不要 |
Windows専用コンテナ。Difyには不要。 |
| Add shortcut to desktop |
✅ チェックする |
デスクトップにショートカットを作成。 |
3
PCを再起動し、Docker Desktopを起動
タスクバーにクジラのアイコンが表示されればOKです。
4
WSL2との連携を設定する
Docker Desktopを開き、Settings → Resources → WSL integration で:
- 「Enable integration with my default WSL distro」をオン
- 一覧に表示される Ubuntu もオン
- Apply & restart をクリック
5
動作確認
Ubuntuターミナル(スタートメニューから「Ubuntu」を検索して起動)で以下を実行:
docker --version
Docker version 29.x.x のようにバージョンが表示されれば成功です。
⚠️
Docker Desktopの設定(Settings → Resources)でメモリを8GB以上に設定してください。デフォルトだとDifyの起動に失敗することがあります。
STEP 04
LM Studioをセットアップする
LM Studioは、PC上でLLM(大規模言語モデル)をローカルに動かせるアプリです。ダウンロードしたモデルをロードするだけで、OpenAI互換のAPIサーバーとして動作します。
2
モデルをダウンロード
LM Studioを起動し、検索バーから使いたいモデルを探してダウンロードします。初めての場合は以下のようなモデルがおすすめです:
- Gemma 4(Google製、日本語も対応)
- Qwen 3.5(Alibaba製、多言語対応)
- Llama 3(Meta製、高性能)
💡
モデルのサイズとPCのメモリ(特にVRAM)を確認してください。メモリ16GBのPCなら、7B〜12B程度のモデルが現実的です。
3
モデルをロードする
ダウンロードしたモデルを選択してロードします。画面上部にモデル名が表示されればロード完了です。
4
Local Serverを起動する
左メニューの「↔」アイコン(Local Server)をクリックし、「Start Server」をクリックします。デフォルトでは http://localhost:1234 でサーバーが起動します。
5
動作確認
ブラウザで以下にアクセスし、モデル情報のJSONが表示されれば成功です。
http://localhost:1234/v1/models
STEP 05
Difyをインストール・起動する
ここからはUbuntuターミナルで作業します。スタートメニューから「Ubuntu」を検索して起動してください。
1
ソースコードを取得
git clone https://github.com/langgenius/dify.git
2
dockerディレクトリに移動し、環境ファイルを準備
cd dify/docker
cp .env.example .env
.env はDifyの設定ファイルです。初回はそのままで問題ありません。
3
Difyを起動
docker compose up -d
初回は大量のイメージをダウンロードするため5〜15分ほどかかります。
4
起動確認
docker compose ps
すべてのコンテナが「Up」や「Up (healthy)」と表示されていれば成功です。
5
管理者アカウントを作成
ブラウザで http://localhost/install にアクセスします。初期設定画面が表示されるので、メールアドレス・ユーザー名・パスワードを設定してアカウントを作成します。
✅
以降は http://localhost でいつでもDifyにアクセスできます。
STEP 06
DifyとLM Studioを接続する
DifyからLM Studioのモデルを使えるように設定します。ここが最も重要なポイントです。
1
モデルプロバイダーを開く
Dify画面右上のアカウントアイコン →「設定」→「モデルプロバイダー」を選択します。
2
LM Studioを選択
プロバイダー一覧から「LM Studio」を見つけてセットアップします。「OpenAI-API-compatible」でも動きますが、専用プロバイダーのほうが設定が簡単です。
3
モデルを追加する
「モデルを追加」をクリックし、以下を入力します:
| 項目 |
入力値 |
| Model Name |
LM Studioに表示されているモデル名
(例:gemma-4-e2b-it) |
| Model Type |
LLM |
| Base URL |
http://host.docker.internal:1234 |
| Completion mode |
Chat |
⚠️
Base URLの末尾に /v1 を付けないでください。Difyが自動で /v1 を付加するため、/v1 を含めると /v1/v1/ と二重になりエラーの原因になります。また、localhost ではなく host.docker.internal を使います。DifyはDockerコンテナ内で動いているため、localhost だとコンテナ自身を指してしまいます。
4
システムモデルを設定する
モデル追加後、「システムモデル設定」ボタンをクリックし、「システム推論モデル」に追加したモデル(例:gemma-4-e2b-it)を選択して保存します。他のモデル設定(埋め込み、Rerankなど)は空欄のままで構いません。
STEP 07
最初のチャットボットを作る
いよいよDifyでAIアプリを作ります。まずは簡単なチャットボットから始めましょう。
1
アプリを新規作成
上部メニューの「スタジオ」→「最初から作成」をクリックします。
2
アプリタイプを選択
「チャットボット」を選択し、アプリ名(例:「テストBot」)を入力して「作成する」をクリックします。
3
プロンプトを設定
オーケストレーション画面の「プロンプト」欄に、チャットボットへの指示を入力します。例:
あなたは親切で丁寧な日本語アシスタントです。ユーザーの質問にわかりやすく回答してください。
4
モデルを確認
画面右上のモデル表示がLM Studioのモデル(例:gemma-4-e2b-it)になっていることを確認します。
5
テストする
右側の「デバッグとプレビュー」にある「Botと話す」欄に「こんにちは」と入力して送信します。
🎉
AIからの応答が表示されれば成功です!「公開する」ボタンを押すと、URLが生成されて他の人にも共有できます。
STEP 08
次回以降の起動手順
2回目以降は、以下の手順でDifyを起動します。
毎回の起動フロー
① Docker Desktop を起動
→
② LM Studio を起動してサーバーStart
→
③ Ubuntu を起動
→
④ コマンドを実行
Ubuntuターミナルで以下を実行します:
cd ~/dify/docker
docker compose up -d
起動したらブラウザで http://localhost にアクセスすればDifyが使えます。
停止手順
作業が終わったら、起動と逆の順番で停止します:
停止フロー
① Difyを停止
→
② Ubuntuを閉じる
→
③ LM Studioを閉じる
→
④ Docker Desktopを終了
まずUbuntuターミナルでDifyを停止します:
docker compose down
その後、Ubuntuターミナルで exit と入力するか、ウィンドウを閉じます:
exit
LM Studioはウィンドウを閉じるだけでOKです。Docker Desktopはタスクバーのクジラアイコンを右クリック →「Quit Docker Desktop」で終了できます。
データは volumes フォルダに保存されるため、停止しても消えません。
💡
Docker Desktopが起動していないと docker コマンドが使えないので、起動時は必ず最初にDocker Desktopを立ち上げてください。
STEP 09
トラブルシューティング
WSL2のインストールでネットワークエラーが出る
wsl --install --no-distribution でWSL2本体だけ先にインストールし、再起動後にMicrosoft StoreからUbuntuをインストールしてください。VPNやセキュリティソフトが原因の場合は一時的にオフにして再試行します。
Ubuntuで docker コマンドが見つからない
Docker Desktop の Settings → Resources → WSL integration で「Enable integration with my default WSL distro」とUbuntuの両方がオンになっているか確認してください。設定変更後はUbuntuターミナルを再起動します。
ポート80が使えない(localhost にアクセスできない)
他のアプリ(Skype、IISなど)がポート80を使っている場合があります。dify/docker/.env ファイルの EXPOSE_NGINX_PORT=80 を EXPOSE_NGINX_PORT=8080 などに変更し、docker compose down → docker compose up -d で再起動してください。アクセスURLは http://localhost:8080 になります。
DifyからLM Studioの応答が空欄になる
LM Studioのログに POST /v1/v1/chat/completions と表示されている場合、URLが二重になっています。DifyのBase URLを http://host.docker.internal:1234(末尾の /v1 なし)に修正してください。
Difyのコンテナが起動しない・落ちる
Docker Desktop の Settings → Resources でメモリ割り当てを8GB以上に設定してください。docker compose logs でエラーの詳細を確認できます。