Dify(ディファイ)をDocker Composeではなく、ソースコードから直接ビルドして起動する方法は、Dify自体のカスタマイズやデバッグを行いたい開発者にとって必須のスキルです。
この記事では、macOSやLinux環境を前提に、PythonバックエンドとNext.jsフロントエンドをセットアップし、ローカル環境でDifyを完全動作させるまでの手順をステップバイステップで解説します。
1. 前提条件と環境準備
ソースコードからの起動には、以下のミドルウェアとランタイムが必要です。
- OS: macOS 10.14+ または Linux (Ubuntu等)
- Docker & Docker Compose: データベース等のミドルウェア起動に使用
- Python: バージョン 3.12
- Node.js: バージョン 22 (LTS)
- システム要件: CPU 2コア以上、RAM 4GB以上推奨
リポジトリのクローン
まず、GitHubからDifyのソースコードをローカルにダウンロードします。
git clone https://github.com/langgenius/dify.git
cd dify
2. ミドルウェアの起動 (Docker Compose)
Dify本体はソースコードから動かしますが、PostgreSQL、Redis、Weaviateなどの依存ミドルウェアはDockerで起動するのが効率的です。
cd docker
cp middleware.env.example middleware.env
docker compose -f docker-compose.middleware.yaml up -d
これで、ポート5432(DB)や6379(Redis)などが利用可能になります。
3. バックエンド (API/Worker) のセットアップ
Difyの頭脳となるバックエンドサービスをPythonで立ち上げます。
Python環境の構築
推奨されるPythonバージョン管理ツール pyenv などを使って、Python 3.12環境を用意してください。
# apiディレクトリへ移動 cd ../api
環境変数の設定
cp .env.example .env
シークレットキーの生成と設定 (Mac/Linux)
awk -v key="$(openssl rand -base64 42)" '/^SECRET_KEY=/ {sub(/=.*/, "=" key)} 1' .env > temp_env && mv temp_env .env
依存関係のインストールとDB移行
Difyはパッケージ管理に高速な uv を採用しています。
# uvで依存パッケージをインストール
uv sync
データベースのマイグレーション(テーブル作成など)
uv run flask db upgrade
APIサーバーの起動
uv run flask run --host 0.0.0.0 --port=5001 --debug
正常に起動すると Running on http://127.0.0.1:5001 と表示されます。
Workerサービスの起動
非同期処理(ドキュメントの解析やメール送信など)を行うWorkerを別ターミナルで起動します。
# apiディレクトリで実行
uv run celery -A app.celery worker -P gevent -c 1 --loglevel INFO -Q dataset,generation,mail,ops_trace
4. フロントエンド (Web) のセットアップ
ユーザーインターフェースとなるWebサービスをNode.jsで立ち上げます。
依存関係のインストール
# webディレクトリへ移動 cd ../web
パッケージのインストール
pnpm install --frozen-lockfile
Note: pnpm がインストールされていない場合は npm i -g pnpm でインストールしてください。
環境変数の設定と起動
# 環境変数ファイルの作成
cp .env.example .env.local
Webサーバーの起動(開発モード)
pnpm start
ビルドが完了すると Ready in ...ms と表示され、http://localhost:3000 でアクセス可能になります。
5. 動作確認
ブラウザで http://127.0.0.1:3000 にアクセスしてください。
Difyのセットアップ画面(管理者アカウント作成画面)が表示されれば、環境構築は成功です。

これで、Difyのソースコードを自由に修正し、即座に反映を確認できる開発環境が整いました。
【推奨】業務システム化に有効なアイテム
生成AIを学ぶ



システム化のパートナー



VPSサーバの選定





コメント