ローカルで Dify を使ってみたい
Difyやn8nのようなを AI ワークフローツールをローカルで動かすメリットは大きく2つです。
- クラウド版の毎月の利用料や機能制限を気にしなくてよい
- RAG の設計で社内データなどを外部サーバーへ送信せずに済む
逆にクラウド版ではサーバー管理や外部 API 連携が容易であること、が挙げられます。
この記事では Dify の様々なセルフホスティングの方法を紹介します。
コマンド1発: GitHub Codespacesでブラウザ完結のデプロイ
さっそく外部クラウドですが、非常に簡単な方法です。
リポジトリからボタン1つで起動
こちらの Dify のリポジトリから簡単に構築できます。
- Codespaceインスタンスの生成
リポジトリのcode→Codespacesで新規の codespace を作成してください。
プロビジョニングとコンテナ構築が開始されます。数分かかります。
README にある通り、以下のコマンドをターミナルで実行します。
cd dify
cd docker
cp .env.example .env
docker compose up -d
完了後、ポートタブの URL を開くとセットアップ画面にアクセスできます。
これでスタートできます。あっけないですね。
これが1つ目の方法です。
セキュリティに関する注意点
-
データは外部に送信されます
完全ローカルホストであれば、データは手元のPCや自社サーバーから外に出ませんが、Codespaces にデプロイすると、RAG 用にインポートした PDF やテキストデータは Microsoft(GitHub)のクラウドサーバーにアップロードされ、保管されることになります。 -
公開設定を確認
ポートをフォワーディング時に、公開をpublicにしてしまうと URL を知っている第三者に公開してしまうリスクがあります。 -
自動削除のリスクがあります
GitHub Codespacesは長期間アクティブでない状態が続くと、環境(コンテナ)ごと自動的に削除される仕様になっています。
Dockerコンテナを使って構築
本格的な社内運用や、物理マシンのリソースを限界まで引き出した推論環境を構築する場合はローカルでのDocker Compose を用いたデプロイを推奨します。
公式リポジトリを使ったクローン&コンテナ立ち上げ
最もシンプルなコマンドは以下の通り。GitHub Codespaces の実装方法とほぼ同じです。
# 1. ローカルマシンに Dify 公式リポジトリをダウンロード
git clone https://github.com/langgenius/dify.git
# 2. Dockerディレクトリへ移動
cd dify/docker
# 3. 環境変数定義用ファイルのひな形をコピー
cp .env.example .env
# 4. バックグラウンドでコンテナを起動
docker compose up -d
docker-compose.yaml のカスタマイズと環境管理
Difyの docker-compose.yaml ファイルは、YAML アンカー機能(&shared-api-worker-config など)を用いて各サービスの共通環境変数、依存関係、マウントするボリューム定義を一元管理することができます。
なお、API のシークレットキーの再定義、データベース接続先の変更などは直接 YAML を修正するのではなく、 .env を書き換える形で実施します。
イメージ更新とデータベース・マイグレーション
現状、Dify は頻繁にバージョンアップが行われているため、Dify 本体をアップグレードし、データベース(PostgreSQL)のスキーマを同期させる場面が想定されます。
- 1.ロールバック用バックアップ
docker compose exec db_postgres pg_dump -U postgres -d dify > backup.sql
- 2.コンテナ停止
docker compose down
- 3.ターゲットバージョンの pull
git pull origin main
docker compose pull
- 4.環境変数の同期とコンテナスタート
bash dify-env-sync.sh
docker compose up -d
環境変数でMIGRATION_ENABLED=trueとなっていると自動でマイグレーションを実行します。
ローカルLLM(Ollama)と連携する
トークンの消費量に応じた重量課金を防ぐためにローカル LLM との繋ぎこみができると、さらに理想的な開発環境になります。
こちらのページをもとに実装してみました。Dify はローカルホストできているという所から出発します。
詳細は別記事で紹介します。この記事ではさっくりと流れを説明します。
# Windows
irm https://ollama.com/install.ps1 | iex
# mac, Linux
curl -fsSL https://ollama.com/install.sh | sh
- 2.モデルのダウンロード
ライブラリから pull してきます。
ollama pull llama3
※ Hugging Face から持ってきても良いです。
- 3.モデルのプロバイダを Ollama に設定
Dify で利用するモデルプロバイダを Ollama に設定します。
設定→モデルプロバイダーでOllamaを見つけインストール、さらにモデルを追加から必要な情報を入力し保存します。
あとはプロジェクトで使うだけです!





