はじめに
こんにちは。最近、LLMアプリケーション開発プラットフォームとして注目を集めている「Dify」、皆さんはもう触っていますか?
クラウド版も便利ですが、データプライバシーの観点や、より深いカスタマイズを行うためには、やはりローカル環境(セルフホスト)で動かせると強力ですよね。
今回は、私のローカル開発環境(macOS)にDifyを導入した際の手順をまとめました。Docker Desktopの代わりに Colima を使用している環境での構築ログになりますが、標準的なDocker環境でも同様の手順で進められます。
これからDifyを試してみたい方の参考になれば幸いです。
参考資料
参考資料は以下の通りです。
目次
1. Difyのアーキテクチャと準備
作業に入る前に、今回構築する環境の全体像を把握しておきましょう。Difyは単一のコンテナではなく、データベース(PostgreSQL)、キャッシュ(Redis)、ベクトルデータベース(Weaviate/Qdrant)、そしてバックエンド・フロントエンドなど、複数のサービスが連携して動作します。
これを手動で一つ一つ設定するのは大変ですが、公式が用意している docker-compose.yml を使えば、コマンド一発で環境が整います。
前提条件
- Git: リポジトリのクローンに使用
- Docker / Docker Compose: コンテナのオーケストレーション
- Colima (macOSの場合の推奨): Dockerランタイムとして使用
2. リポジトリのクローン
まずは、適当な作業ディレクトリを作成し、GitHubからDifyのソースコードをクローンしてきます。
# 開発用ディレクトリへ移動(パスはご自身の環境に合わせてください)
cd ~/development
# ディレクトリを作成して移動(整理整頓のため)
mkdir DIFY
cd DIFY
# ソースコードをクローン
git clone https://github.com/langgenius/dify.git
クローンが完了したら、ディレクトリ構成はこのようになります。
~/development/DIFY/
└── dify/ <-- クローンされたリポジトリ
3. Dockerランタイムの起動 (Colima)
Dockerコンテナを動かすために、ランタイムを起動します。私はmacOS上で Colima を使用しています。
colimaのセットアップ方法はこちらです。
colima start
⚠️ Colima起動時のWarningについて
環境によっては、起動時に以下のような警告が出ることがあります。
WARN[0000] Failed to resolve the guest agent binary for "x86_64" error="guest agent binary could not be found..."
WARN[0000] Failed to resolve the guest agent binary for "armv7l" ...
これはゲストエージェントのバイナリが見つからないという警告ですが、最終的に以下のように done と表示されれば、Dockerランタイム自体は正常に起動しています。あまり神経質にならなくても大丈夫です。
INFO[0001] starting colima
INFO[0001] runtime: docker
...
INFO[0015] done
もし起動しない場合は、lima 関連のパッケージ更新や、colima delete してからの再作成を試してみてください。
4. 環境変数の設定と起動
いよいよDifyを立ち上げます。Docker関連のファイルは docker ディレクトリ配下にまとまっています。
① ディレクトリ移動
cd dify/docker
② 環境変数の設定
docker-compose.yml が参照する環境変数を設定します。サンプルファイル .env.example が用意されているので、これをコピーして .env を作成します。
cp .env.example .env
基本的にはデフォルトのままで動作しますが、ポート番号などを変更したい場合は、この .env ファイルを編集してください。
③ Docker Compose で起動
準備が整いました。以下のコマンドで全コンテナを一括起動します。-d オプションをつけることでバックグラウンド実行になります。
docker compose up -d
初回起動時は多数のDockerイメージ(Postgres, Redis, Weaviate, Sandboxなど)をプルするため、ネットワーク環境によっては数分かかります。コーヒーでも飲んで待ちましょう。
実行ログの例(クリックして展開)
[+] Running 90/90
✔ worker_beat Pulled 33.4s
✔ nginx Pulled 42.4s
✔ sandbox Pulled 32.8s
✔ weaviate Pulled 19.4s
...
[+] Running 14/14
✔ Network docker_default Created
✔ Container docker-web-1 Started
✔ Container docker-weaviate-1 Started
✔ Container docker-db_postgres-1 Healthy
...
✔ Container docker-nginx-1 Started
全てのコンテナの状態が Started(または Healthy)になれば起動成功です!
5. ブラウザでのアクセス確認
コンテナが立ち上がったら、ブラウザを開いて以下のURLにアクセスしてください。
-
URL:
http://localhost/install
Difyのセットアップ画面(管理者アカウント作成画面)が表示されれば成功です!
Note: もし画面が表示されない場合は、コンテナがまだ初期化中の可能性があります。
docker compose logs -fでログを確認するか、数分待ってからリロードしてみてください。
まとめ
今回は、ローカル環境にDifyを構築する手順をご紹介しました。
- GitHubから
difyをクローン -
dify/dockerディレクトリへ移動 -
.envを作成 (cp .env.example .env) -
docker compose up -dで起動
たったこれだけの手順で、自分だけのLLMアプリ開発基盤が手に入ります。特に colima ユーザーの方は、起動時のWarningに驚くかもしれませんが、基本的には無視して進めて問題ありません。
これで、APIキーの課金以外を気にすることなく、存分にAIエージェントの開発実験ができますね。
それでは、良いDifyライフを!
(base) user:~/development/DIFY/dify/docker (main)
%