Skip to main content

このドキュメントは AI によって自動翻訳されています。不正確な部分がある場合は、英語版 を参照してください。

Dify はデフォルト設定でそのまま動作します。デプロイをカスタマイズするには、関連するファイルの環境変数を編集します:

  • 必須の起動値 は docker/.env にあります(デプロイ時に docker/.env.example からコピーして作成したファイル)。直接編集します。

  • オプションまたはプロバイダー固有の設定 は docker/envs/ にテンプレートとして用意されています。デフォルト値を上書きするには、対応するテンプレートをコピーし(.example 拡張子を外す)、コピーを編集します。例:

docker/.env の値は、docker/envs/*.env ファイルの値より優先されます。

Tip

Dify をアップグレードした後、各 .env.example を対応する .env と比較し、新規または変更された変数を確認してください。

共通変数#

これらの URL 変数は、Dify の各サービスのアドレスを設定します。

Nginx 背後のシングルドメインデプロイ(デフォルトの Docker Compose 構成)の場合、これらは空のままで構いません。システムがリクエストから自動検出します。カスタムドメイン、マルチドメインデプロイ、またはリバースプロキシを使用する場合に設定してください。

CONSOLE_API_URL#

デフォルト値:(空)

Dify バックエンド API の公開 URL。OAuth ログイン(GitHub、Google)、Notion 連携、または OAuth を必要とするプラグインを使用する場合に設定してください。これらの機能は、認証後にユーザーをリダイレクトするための絶対コールバック URL を必要とします。また、セキュア(HTTPS のみ)Cookie を使用するかどうかも決定します。

例:https://api.console.dify.ai

SERVER_CONSOLE_API_URL#

デフォルト値:http://api:5001

Web フロントエンドコンテナがサーバーサイドでリクエストを送信する際に使用する Console API のアドレスです。公開ドメインを経由せず、Docker 内部ネットワークから API に直接アクセスします。この変数は Web フロントエンドコンテナでのみ使用され、Python バックエンドには影響しません。ブラウザからのリクエストは引き続き CONSOLE_API_URL を使用します。空の場合は CONSOLE_API_URL にフォールバックします。API サービスの内部アドレスが異なる場合にのみ変更してください。

CONSOLE_WEB_URL#

デフォルト値:(空)

Dify コンソールフロントエンドの公開 URL。すべてのシステムメール(招待、パスワードリセット、通知)のリンク構築、および OAuth ログイン後のコンソールへのリダイレクトに使用されます。CONSOLE_CORS_ALLOW_ORIGINS が設定されていない場合、デフォルトの CORS 許可オリジンとしても機能します。

空の場合、メールリンクが正しく機能しません。シングルドメインデプロイでも、メール機能を使用する場合はこの変数を設定してください。

例:https://console.dify.ai

SERVICE_API_URL#

デフォルト値:(空)

Dify コンソールで Developer に表示される API Base URL。Developer が Dify API を呼び出すためにコードにコピーする URL です。空の場合、現在のリクエストから自動検出されます(例:http://localhost/v1)。サーバーが複数のアドレスでアクセス可能な場合、この変数を設定して一貫した URL を確保してください。

例:https://api.dify.ai

APP_API_URL#

デフォルト値:(空)

Web アプリフロントエンド(公開アプリ)のバックエンド API URL。この変数は Web フロントエンドコンテナでのみ使用され、Python バックエンドには影響しません。空の場合、Docker イメージのデフォルトは http://127.0.0.1:5001です。

例:https://api.app.dify.ai

APP_WEB_URL#

デフォルト値:(空)

公開 Web アプリのアクセス URL。ワークフローの 人間の入力ノード に必要です。メール通知のフォームリンクは {APP_WEB_URL}/form/{token} 形式で構築されます。空の場合、人間の入力メールに有効なフォームリンクが含まれません。

例:https://app.dify.ai

TRIGGER_URL#

デフォルト値:http://localhost

Webhook およびインテグレーショントリガーエンドポイントのアクセス URL。外部システムがこのアドレスを使用してワークフローを呼び出します。Dify はトリガーコールバック URL を {TRIGGER_URL}/triggers/webhook/{id} の形式で構築し、コンソールに表示します。

外部システムからトリガーが動作するようにするには、それらがアクセスできるパブリックドメインまたは IP アドレスを指定する必要があります。

FILES_URL#

デフォルト値:(空;CONSOLE_API_URL にフォールバック)

ファイルプレビューおよびダウンロードリンクのベース URL です。Dify はすべてのファイル(アップロードされたドキュメント、ツール出力、ワークスペースロゴ)に対して、署名付きの時間制限 URL を生成します。生成された URL はフロントエンドとマルチモーダルモデルに提供されます。

ファイル処理プラグインを使用する場合、またはファイル URL を専用ドメインで使用したい場合に設定してください。FILES_URLと CONSOLE_API_URL の両方が空の場合、ファイルプレビューが機能しません。

例:https://upload.example.comまたはhttp://<your-ip>:5001

INTERNAL_FILES_URL#

デフォルト値:(空;FILES_URL にフォールバック)

Docker ネットワーク内のサービス間通信で使用されるファイルアクセス URL(例:プラグインデーモン、PDF/Word 抽出器)。これらの内部サービスは、Nginx やパブリックドメインを Nginx 経由する外部 FILES_URL にアクセスできない場合があります。

空の場合、内部サービスは FILES_URL を使用します。内部サービスが外部 URL にアクセスできない場合に設定してください。

例:http://api:5001

FILES_ACCESS_TIMEOUT#

デフォルト値:300(5 分)

署名付きファイル URL の有効期間(秒)。この時間を過ぎると URL は拒否され、ファイルを再リクエストする必要があります。長時間実行プロセスの場合は増加し、セキュリティを強化する場合は減少させてください。

ENABLE_COLLABORATION_MODE#

デフォルト値:true

ワークフローキャンバスのリアルタイム共同編集(同時編集、キャンバス上のコメント、@メンション)を有効化します。

localhost 以外のホストから Dify にアクセスする場合、NEXT_PUBLIC_SOCKET_URL をブラウザから到達できる WebSocket URL に設定してください(CORS 設定 を参照)。デフォルトの ws://localhost はローカル専用環境でのみ動作します。

共同編集機能を無効化するには、この値を false に設定します。Docker Compose を使用している場合は、COMPOSE_PROFILES から collaboration も削除してください。削除しないと、専用の api_websocket コンテナはトラフィックを受け取らないまま起動し続けます。

独自のリバースプロキシを使用する場合は /socket.io/ パスで Upgrade および Connection ヘッダーを転送してください(同梱の nginx テンプレートにはこの設定が含まれています)。API を複数レプリカで運用する場合はスティッキーセッションが必要です。

大きなワークフローの共同編集中にエディタが切断と再接続を繰り返す場合は、WEBSOCKET_MAX_HTTP_BUFFER_SIZE を上げてください。

システムエンコーディング#

変数デフォルト値説明
LANGC.UTF-8システムロケール設定。UTF-8 エンコーディングを保証します。
LC_ALLC.UTF-8すべてのカテゴリのロケールオーバーライド。
PYTHONIOENCODINGutf-8Python I/O エンコーディング。
UV_CACHE_DIR/tmp/.uv-cacheUV パッケージマネージャーのキャッシュディレクトリ。存在しないホームディレクトリによる権限問題を回避します。

サーバー設定#

ログ#

変数デフォルト値説明
LOG_LEVELINFO最小ログレベル。すべてのハンドラー(ファイル+コンソール)のログ記録内容を制御します。レベル(低→高):DEBUG、INFO、WARNING、ERROR、CRITICAL。
LOG_OUTPUT_FORMATtexttextはタイムスタンプ、レベル、スレッド、トレース ID を含む人間可読な形式を出力します。json はログ集約ツール(ELK、Datadog など)向けの構造化 JSON を出力します。
LOG_FILE/app/logs/server.logログファイルパス。設定するとファイルベースのログ記録が有効になり、自動ローテーションされます。ディレクトリは自動作成されます。空の場合はコンソールにのみ出力されます。
LOG_FILE_MAX_SIZE20ローテーション前のログファイル最大サイズ(MB)。超過すると現在のファイルが .1 にリネームされ、新しいファイルが作成されます。
LOG_FILE_BACKUP_COUNT5保持するローテーションログファイル数。デフォルト設定では最大 6 ファイル(現在のファイル+5 バックアップ)が存在します。
LOG_DATEFORMAT%Y-%m-%d %H:%M:%Sテキスト形式ログのタイムスタンプフォーマット(strftime コード)。JSON 形式では無視されます。
LOG_TZUTCログタイムスタンプのタイムゾーン(pytz 形式、例:Asia/Shanghai)。テキスト形式にのみ適用されます。JSON は常に UTC を使用します。Celery のタスクスケジューリングタイムゾーンも設定します。

一般#

変数デフォルト値説明
DEBUGfalse詳細ログを有効化:ワークフローノードの入出力、ツール実行の詳細、完全な LLM プロンプトとレスポンス、アプリ起動時間。ローカル開発に有用です。ログに機密データが出力される可能性があるため、本番環境では推奨しません。
FLASK_DEBUGfalse標準 Flask デバッグモードフラグ。Dify では積極的に使用されていません。DEBUG が主要な制御変数です。
ENABLE_REQUEST_LOGGINGfalseすべての HTTP リクエストに対してコンパクトなアクセスログ(METHOD PATH STATUS DURATION TRACE_ID)を記録します。LOG_LEVELが DEBUG に設定されている場合、完全なリクエストとレスポンスボディも JSON 形式で記録されます。
DEPLOY_ENVPRODUCTIONSentry と OpenTelemetry の監視データにタグ付けし、環境別にエラーとトレースをフィルタリングできるようにします。X-Env レスポンスヘッダーとしても送信されます。アプリケーションの動作は変更しません。
DEPLOYMENT_EDITIONCOMMUNITYデプロイのエディション(COMMUNITY、ENTERPRISE、CLOUD)。デフォルトのまま使用してください。

従来の EDITION、ENTERPRISE_ENABLED、BILLING_ENABLED を置き換えるものです。これらの旧変数は 1.17.0 以降無視されます。
MIGRATION_ENABLEDtruetrueの場合、コンテナ起動時にデータベーススキーママイグレーション(flask upgrade-db)を自動実行します。Docker のみ。マイグレーションを別途実行する場合は falseに設定してください。ソースコードからの起動では、flask db upgrade を手動で実行してください。
CHECK_UPDATE_URLhttps://updates.dify.aiコンソールがこの URL で Dify の新バージョンを確認します。空に設定すると無効化されます。エアギャップ環境や外部 HTTP コールを防止したい場合に有用です。
OPENAI_API_BASEhttps://api.openai.com/v1レガシー変数。Dify 自身のコードでは積極的に使用されていません。環境に存在する場合、OpenAI Python SDK に読み取られる可能性があります。

SECRET_KEY#

デフォルト値:(.env.example にプリセット;本番環境では必ず置き換えてください)

セッション Cookie 署名、JWT 認証トークンに使用されます。さらに、ファイル URL 署名(HMAC-SHA256)とサードパーティ OAuth 資格情報の暗号化(AES-256)にも使用されます。初回起動前に、強力なキーを生成してください:

Warning

デプロイ後にこのキーを変更すると、すべてのユーザーが即座にログアウトされ、すべてのファイル URL が無効になり、OAuth を使用するプラグイン連携が壊れます。暗号化された資格情報は復元できなくなります。

KEY_PROVIDER_TYPE#

デフォルト値:local

保存された資格情報(モデルプロバイダーの API キー、ツール資格情報などワークスペースの機密情報)を暗号化する、ワークスペースごとの鍵の保管場所を選択します。

  • local:ワークスペースごとに RSA 鍵ペアを生成し、秘密鍵を STORAGE_TYPE のストレージバックエンドに保存します。

  • azure-keyvault:各ワークスペースの RSA 鍵を Azure Key Vault に保管し、秘密鍵が Key Vault の外に出ることはありません。認証には DefaultAzureCredential(マネージド ID、環境変数、または Azure CLI ログイン)を使用します。

Warning

プロバイダーは最初のワークスペースを作成する前に決めてください。一方のプロバイダーで暗号化した資格情報はもう一方では復号できません。資格情報が保存済みのデプロイで切り替えると、再入力するまで読み取れなくなります。

変数デフォルト値説明
AZURE_KEYVAULT_VAULT_URL(空)Key Vault インスタンスの URL。KEY_PROVIDER_TYPE が azure-keyvault の場合は必須で、未設定だと API サービスが起動しません。例:https://your-vault-name.vault.azure.net
AZURE_KEYVAULT_KEY_SIZE2048Dify が Key Vault にワークスペース用の鍵を新規作成する際の RSA 鍵長(ビット)。新規作成時のみ適用され、既存の鍵のサイズは変わりません。
AZURE_KEYVAULT_ROTATION_INTERVAL_DAYS(空)設定すると(最小 7)、新規作成されるワークスペース鍵に N 日ごとの Key Vault 自動ローテーションポリシーが付与されます。古いバージョンの鍵は使用可能なまま残るため、ローテーション前に暗号化した資格情報も再暗号化なしで復号できます。空のままにすると、ローテーションは Azure 側で手動管理します。

INIT_PASSWORD#

デフォルト値:(空)

初回セットアップ時のオプションのセキュリティゲート。設定すると、/install ページで管理者アカウント作成前にこのパスワードの入力が必要になります。サーバーが公開されている場合の不正なセットアップを防止します。セットアップ完了後、この変数は効力を失います。最大長:30 文字。

トークンとリクエスト制限#

変数デフォルト値説明
ACCESS_TOKEN_EXPIRE_MINUTES60ログインセッションのアクセストークンの有効期間(分)。期限切れ後、ブラウザがリフレッシュトークンを使用してサイレントに更新します。ユーザーはログアウトされません。
REFRESH_TOKEN_EXPIRE_DAYS30資格情報を再入力せずにログイン状態を維持できる期間(日)。この期間内にアクセスがない場合、再ログインが必要です。
APP_MAX_EXECUTION_TIME3600アプリ実行の最大実行時間(秒)。超過すると終了されます。WORKFLOW_MAX_EXECUTION_TIME と連動する外側の制限で、両方ともデフォルトは 1 時間です。これはアプリキューレベル、もう一方はワークフローエンジンレベルで適用されます。ワークフローにより多くの時間が必要な場合は、両方を増やしてください。

Agent を利用する場合は、この 2 つの外側の制限を Agent の実行期限(DIFY_AGENT_RUN_TIMEOUT_SECONDS)以上に保ってください。下回ると Agent の実行が途中で打ち切られます。
APP_DEFAULT_ACTIVE_REQUESTS0アプリごとのデフォルト同時リクエスト制限。UI でカスタム制限が設定されていないアプリに使用されます。0は無制限を意味します。有効な制限はこの値と APP_MAX_ACTIVE_REQUESTS の小さい方になります。
APP_MAX_ACTIVE_REQUESTS0アプリごとのグローバル同時リクエスト上限。アプリのカスタム設定がこの値を超える場合、オーバーライドされます。0 は無制限を意味します。
WEBSOCKET_MAX_HTTP_BUFFER_SIZE10485760共同編集用 WebSocket が受け付ける 1 メッセージの最大バイト数(デフォルトは 10 MiB)。大きなワークフローの保存時にグラフが上限を超え、切断が繰り返される場合は値を上げる。

/socket.io/ を処理する API プロセスに設定する。Docker Compose では api_websocket コンテナが該当する。

コンテナ起動設定#

Docker イメージまたは Docker Compose で起動する場合にのみ有効です。

変数デフォルト値説明
DIFY_BIND_ADDRESS0.0.0.0API サーバーがバインドするネットワークインターフェース。0.0.0.0はすべてのインターフェースでリッスンします。127.0.0.1 に設定するとローカルホストのみに制限されます。
DIFY_PORT5001API サーバーのリッスンポート。
SERVER_WORKER_AMOUNT1Gunicorn ワーカープロセス数。gevent(デフォルト)使用時は各ワーカーが greenlet で複数の同時接続を処理するため、通常 1 で十分です。同期ワーカーの場合は (2 x CPUコア数) + 1を使用してください。参考ドキュメント。
SERVER_WORKER_CLASSgeventGunicorn ワーカータイプ。デフォルト値のままにしてください。他の値は psycopg2 と gRPC のパッチを壊します。
SERVER_WORKER_CONNECTIONS10ワーカーごとの最大同時接続数。非同期ワーカー(gevent)にのみ適用されます。高負荷時に接続拒否やレスポンス遅延が発生する場合は、この値を増加してください。
GUNICORN_TIMEOUT360ワーカーがこの秒数以内に応答しない場合、Gunicorn はそのワーカーを終了して再起動します。ストリーミング LLM レスポンスに使用される長時間 SSE 接続をサポートするため、360(6 分)に設定されています。
API_WEBSOCKET_WORKER_AMOUNT1Docker Compose のみ。リアルタイムコラボレーションを担う専用 api_websocket コンテナの Gunicorn ワーカー数です。コラボレーションのイベントは Redis 経由でワーカー間に同期されます。編集トラフィックが多く、1 つのワーカーが CPU コアを使い切る場合は安心して増やせます。
API_WEBSOCKET_WORKER_CLASSgeventwebsocket.gunicorn.workers.GeventWebSocketWorkerDocker Compose のみ。専用の api_websocket コンテナのワーカークラスです。デフォルト値のままにしてください。他の値は WebSocket サポートを壊します。
API_WEBSOCKET_WORKER_CONNECTIONS1000Docker Compose のみ。api_websocket ワーカー 1 つあたりが同時に受け付ける WebSocket 接続の最大数です。開いているワークフローエディタタブごとに 1 接続を使用するため、デフォルトではワーカー 1 つあたり最大 1000 の同時編集セッションを処理できます。それ以上が見込まれる場合は、値を増やすかワーカーを追加してください。
API_WEBSOCKET_GUNICORN_TIMEOUT360Docker Compose のみ。api_websocket ワーカーがこの秒数内に応答しない場合、Gunicorn が再起動します。デフォルトの 360 秒(6 分)は長時間保持される WebSocket 接続に適しています。
CELERY_WORKER_CLASS(空;デフォルトは gevent)Celery ワーカータイプ。SERVER_WORKER_CLASS と同じ gevent パッチ要件があります。変更は強く非推奨です。
CELERY_WORKER_AMOUNT4Celery ワーカープロセス数。オートスケーリング無効時のみ使用されます。リソースの限られた VM では下げてください。スループットを柔軟に調整したい場合は、この値を上げるより CELERY_AUTO_SCALE を有効化するほうが適切です。
CELERY_AUTO_SCALEfalse動的オートスケーリングを有効化。有効時、Celery はキュー深度を監視し、CELERY_MIN_WORKERSから CELERY_MAX_WORKERS の間でワーカーを動的に生成/終了します。
CELERY_MAX_WORKERS(空;デフォルトは CPU 数)オートスケーリング有効時の最大ワーカー数。
CELERY_MIN_WORKERS(空;デフォルトは 1)オートスケーリング有効時の最小ワーカー数。
COMPOSE_WORKER_HEALTHCHECK_DISABLEDtrueDocker Compose による Celery Worker コンテナのヘルスチェックを無効化します。繁忙な Worker 上での celery inspect ping はコストが高いため、デフォルトで無効です。false に設定すると有効化されます。Docker Compose デプロイメントにのみ適用されます。
COMPOSE_WORKER_HEALTHCHECK_INTERVAL30sCelery Worker ヘルスチェックの実行間隔。COMPOSE_WORKER_HEALTHCHECK_DISABLED=false の場合にのみ有効です。Docker Compose の期間書式(例:30s、1m)を受け付けます。
COMPOSE_WORKER_HEALTHCHECK_TIMEOUT30s1 回の Celery Worker ヘルスチェックのタイムアウト。COMPOSE_WORKER_HEALTHCHECK_DISABLED=false の場合にのみ有効です。

MODE#

デフォルト値:worker(worker サービスの env ファイルに設定された値。変数が未設定の場合、コンテナは API サーバーを起動)

dify-api イメージがコンテナ起動時に実行するプロセスを選択します。3 つの env サンプルファイルがそれぞれのサービス向けの値を設定しています:worker.env.example は worker、api.env.example は api、worker-beat.env.example は beat。指定できる値:

  • api(空または認識されない値も同様):API サーバー
  • worker:Celery タスクコンシューマー
  • beat:定期タスクディスパッチャー
  • job:Flask CLI コマンドを 1 つ実行して終了
  • migration:MIGRATION_ENABLED=true と併用し、データベース移行後に終了

付属の Compose ファイルはサービスごとに適切な値を設定済みのため、変更が必要なのは Kubernetes などのカスタム構成のみです。誤った値ではコンテナが別のプロセスを実行します。worker がないと、インデックス作成やメールのタスクが処理されずに滞留します。

API ツール設定#

変数デフォルト値説明
API_TOOL_DEFAULT_CONNECT_TIMEOUT10API ツールノードが外部 API を呼び出す際の TCP 接続確立の最大待機時間(秒)。
API_TOOL_DEFAULT_READ_TIMEOUT60API ツールノードが外部 API からレスポンスデータを受信する最大待機時間(秒)。

データベース設定#

データベースはデフォルトで PostgreSQL を使用します。OceanBase、MySQL、seekdb もサポートされています。

変数デフォルト値説明
DB_TYPEpostgresqlデータベースタイプ。サポートされる値:postgresql、mysql、oceanbase、seekdb。TiDB などの MySQL 互換データベースは mysql を使用できます。
DB_USERNAMEpostgresデータベースユーザー名。接続文字列で URL エンコードされるため、特殊文字も安全に使用できます。
DB_PASSWORDdifyai123456データベースパスワード。接続文字列で URL エンコードされるため、@、:、% などの文字も安全に使用できます。
DB_HOSTdb_postgresデータベースサーバーのホスト名。
DB_PORT5432データベースサーバーのポート。MySQL を使用する場合は 3306 に設定してください。
DB_DATABASEdifyデータベース名。

コネクションプール#

Dify がデータベースコネクションプールを管理する方法を制御します。デフォルト設定はほとんどのデプロイで問題なく動作します。

変数デフォルト値説明
SQLALCHEMY_POOL_SIZE30プール内に保持する永続接続数。
SQLALCHEMY_MAX_OVERFLOW10プールが満杯の場合に許可される追加の一時接続数。デフォルト設定では、最大 40 接続(30 + 10)が同時に存在できます。
SQLALCHEMY_POOL_RECYCLE3600この秒数の後に接続をリサイクルし、古い接続を防止します。
SQLALCHEMY_POOL_TIMEOUT30プールが枯渇した場合の接続待機時間。この時間内に接続が解放されない場合、リクエストはタイムアウトエラーで失敗します。
SQLALCHEMY_POOL_RESET_ON_RETURNrollback接続がプールに返却された際の SQLAlchemy の動作です。rollback は再利用前に未コミットのトランザクション状態をクリアし、commit はコミットします。
SQLALCHEMY_POOL_PRE_PINGfalse使用前に軽量クエリで接続をテストします。「接続切断」エラーを防止しますが、わずかなレイテンシーが追加されます。不安定なネットワークの本番環境で推奨されます。
SQLALCHEMY_POOL_USE_LIFOfalse均等ローテーション(FIFO)の代わりに、最後に返却された接続を再利用します(LIFO)。LIFO はより少ない接続を「ウォーム」状態に保ち、オーバーヘッドを削減できます。
SQLALCHEMY_ECHOfalseすべての SQL 文をログに出力します。クエリ問題のデバッグに有用です。

PostgreSQL パフォーマンスチューニング#

これらは PostgreSQL コンテナへの起動引数として渡されます。Dify アプリケーションではなく、データベースサーバーの設定です。

変数デフォルト値説明
POSTGRES_MAX_CONNECTIONS200最大データベース接続数。API と Celery ワーカーが同時に接続プールを開くため、too many connections エラーを避けるには、少なくとも SERVER_WORKER_AMOUNT × SERVER_WORKER_CONNECTIONS + CELERY_WORKER_AMOUNT + 余裕 の接続数を確保してください。参考ドキュメント
POSTGRES_SHARED_BUFFERS128MBバッファ用共有メモリ。推奨値:利用可能メモリの 25%。参考ドキュメント
POSTGRES_WORK_MEM4MBデータベースワーカーごとの作業メモリ。参考ドキュメント
POSTGRES_MAINTENANCE_WORK_MEM64MBメンテナンス作業用に予約されるメモリ。参考ドキュメント
POSTGRES_EFFECTIVE_CACHE_SIZE4096MBプランナーの有効キャッシュサイズの推定値。参考ドキュメント
POSTGRES_STATEMENT_TIMEOUT0ステートメント終了前の最大実行時間(ミリ秒)。0はタイムアウトなし。参考ドキュメント
POSTGRES_IDLE_IN_TRANSACTION_SESSION_TIMEOUT0トランザクション内アイドルセッションの最大時間(ミリ秒)。0はタイムアウトなし。参考ドキュメント

MySQL パフォーマンスチューニング#

これらは MySQL コンテナへの起動引数として渡されます。Dify アプリケーションではなく、データベースサーバーの設定です。

変数デフォルト値説明
MYSQL_MAX_CONNECTIONS1000最大 MySQL 接続数。
MYSQL_INNODB_BUFFER_POOL_SIZE512MInnoDB バッファプールサイズ。推奨値:専用 MySQL サーバーの利用可能メモリの 70-80%。参考ドキュメント
MYSQL_INNODB_LOG_FILE_SIZE128MInnoDB ログファイルサイズ。参考ドキュメント
MYSQL_INNODB_FLUSH_LOG_AT_TRX_COMMIT2トランザクションコミット時の InnoDB ログフラッシュ方式。オプション:0(フラッシュなし)、1(フラッシュ&同期)、2(OS キャッシュへフラッシュ)。参考ドキュメント

Redis 設定#

これらの変数を設定して、Dify を Redis インスタンスに接続します。Dify はスタンドアロン(デフォルト)、Sentinel、Cluster の 3 つのデプロイモードをサポートしています。

変数デフォルト値説明
REDIS_HOSTredisRedis サーバーのホスト名。スタンドアロンモードでのみ使用されます。Sentinel または Cluster モード有効時は無視されます。
REDIS_PORT6379Redis サーバーのポート。スタンドアロンモードでのみ使用されます。
REDIS_USERNAME(空)Redis 6.0+ ACL ユーザー名。すべてのモード(スタンドアロン、Sentinel、Cluster)に適用されます。
REDIS_PASSWORDdifyai123456Redis 認証パスワード。Cluster モードの場合は、代わりに REDIS_CLUSTERS_PASSWORD を使用してください。
REDIS_DB0Redis データベース番号(0-15)。スタンドアロンおよび Sentinel モードにのみ適用されます。Celery のデータベース(CELERY_BROKER_URL で設定;デフォルトは DB 1)と衝突しないようにしてください。
REDIS_KEY_PREFIX(空)Redis キーに適用されるグローバルプレフィックス。Pub/Sub チャネル、Redis Streams 名、Celery のキューと結果バックエンドキーにも適用されます。Dify はプレフィックスとキーの間にコロンを自動挿入します。たとえば staging を設定すると、実際のキーは staging:session:abc の形式になります。複数の Dify インスタンスが同一の Redis を共有する場合(例:staging と production)、キー衝突の回避に有効です。空のままにすると、プレフィックスなしのデフォルト動作を維持します。既存のデプロイで後から有効化すると、以前のプレフィックス(または空)で書き込まれたキーは参照できなくなります。
REDIS_USE_SSLfalseRedis 接続の SSL/TLS を有効化。Sentinel プロトコルには自動適用されません。
REDIS_MAX_CONNECTIONS(空)Redis プール内の最大接続数。空のままでライブラリのデフォルトを使用します。必要に応じて Redis サーバーの maxclients に合わせて設定してください。
REDIS_KEEPALIVEtrueRedis 接続で TCP keepalive を有効にします。ファイアウォールやロードバランサーに静かに切断されたアイドル接続を検知し、次回使用時に失敗する前に再確立します。
REDIS_KEEPALIVE_IDLE30最初の TCP keepalive プローブを送信するまでの接続アイドル秒数(TCP_KEEPIDLE)。REDIS_KEEPALIVE=true のときに適用されます。
REDIS_KEEPALIVE_INTERVAL10TCP keepalive プローブの送信間隔(秒)(TCP_KEEPINTVL)。REDIS_KEEPALIVE=true のときに適用されます。
REDIS_KEEPALIVE_COUNT10接続が切断されたと判断するまでに許容する未確認プローブの回数(TCP_KEEPCNT)。REDIS_KEEPALIVE=true のときに適用されます。

Redis SSL 設定#

REDIS_USE_SSL=trueの場合にのみ適用されます。Celery broker の URL が rediss:// スキームを使用する場合、これらの設定は Celery broker にも適用されます。

変数デフォルト値説明
REDIS_SSL_CERT_REQSCERT_NONE証明書検証レベル:CERT_NONE(検証なし)、CERT_OPTIONAL(オプション検証)、または CERT_REQUIRED(完全検証)。
REDIS_SSL_CA_CERTS(空)Redis サーバー検証用の CA 証明書ファイルパス。
REDIS_SSL_CERTFILE(空)相互 TLS 認証用のクライアント証明書パス。
REDIS_SSL_KEYFILE(空)相互 TLS 認証用のクライアント秘密鍵パス。

Redis Sentinel モード#

Sentinel は高可用性のための自動マスター検出とフェイルオーバーを提供します。Cluster モードとは相互に排他的です。

変数デフォルト値説明
REDIS_USE_SENTINELfalseRedis Sentinel モードを有効化。有効時、REDIS_HOST/REDIS_PORT は無視されます。Dify は Sentinel ノードに接続し、現在のマスターを問い合わせます。
REDIS_SENTINELS(空)Sentinel ノードのアドレス。形式:<ip1>:<port1>,<ip2>:<port2>,<ip3>:<port3>。これらは Sentinel インスタンスであり、Redis サーバーではありません。
REDIS_SENTINEL_SERVICE_NAME(空)Sentinel が監視する論理サービス名(sentinel.confで設定)。Dify は master_for(service_name) を呼び出して現在のマスターを検出します。
REDIS_SENTINEL_USERNAME(空)Sentinel ノードの認証ユーザー名。REDIS_USERNAME とは別です。後者は Redis マスター/レプリカの認証に使用されます。
REDIS_SENTINEL_PASSWORD(空)Sentinel ノードの認証パスワード。REDIS_PASSWORD とは別です。
REDIS_SENTINEL_SOCKET_TIMEOUT0.1Sentinel ノードとの通信の Socket タイムアウト(秒)。デフォルトの 0.1 秒は高速なローカルネットワークを想定しています。クラウド/WAN デプロイでは、断続的なタイムアウトを防止するために 1.0-5.0 秒に増加してください。

Redis Cluster モード#

Cluster モードは複数の Redis ノード間での自動シャーディングを提供します。Sentinel モードとは相互に排他的です。

変数デフォルト値説明
REDIS_USE_CLUSTERSfalseRedis Cluster モードを有効化。
REDIS_CLUSTERS(空)Cluster ノード。形式:<ip1>:<port1>,<ip2>:<port2>,<ip3>:<port3>
REDIS_CLUSTERS_PASSWORD(空)Redis Cluster のパスワード。

Redis 接続の堅牢性設定#

これらの変数は、Redis 接続のクライアント側リトライ、タイムアウト、ヘルスチェックの動作を調整します。デフォルト値は控えめに設定されています。ネットワークレイテンシが高いクラウド/WAN デプロイでは、タイムアウト値を増やしてください。

変数デフォルト値説明
REDIS_RETRY_RETRIES3一時的な障害(ConnectionError、TimeoutError、socket.timeout)発生時の、Redis コマンドごとの最大リトライ回数。0 に設定するとリトライを無効化します。ジッター付き指数バックオフを使用します。
REDIS_RETRY_BACKOFF_BASE1.0リトライ間の指数バックオフのベース遅延(秒)。
REDIS_RETRY_BACKOFF_CAP10.0リトライ間のバックオフ遅延の上限(秒)。
REDIS_SOCKET_TIMEOUT5.0Redis 読み取り/書き込み操作の Socket タイムアウト(秒)。高負荷下で断続的なコマンドタイムアウトが発生する場合は増やしてください。
REDIS_SOCKET_CONNECT_TIMEOUT5.0Redis 接続確立の Socket タイムアウト(秒)。
REDIS_HEALTH_CHECK_INTERVAL30アイドル接続に対するクライアント側ヘルスチェックの間隔(秒)。0に設定すると無効化します。Cluster モードでは適用されません(redis-py が該当パラメータを静かに削除します)。

Celery 設定#

データセットインデックス作成、メール送信、定期ジョブに使用されるバックグラウンドタスクキューを設定します。

CELERY_BROKER_URL#

デフォルト値:redis://:difyai123456@redis:6379/1

Celery メッセージブローカーの Redis 接続 URL。

直接接続形式:

Sentinel モード形式(複数ノードはセミコロンで区切り):

変数デフォルト値説明
CELERY_BACKENDredisCelery がタスク結果を保存する場所。オプション:redis(高速、インメモリ)または database(メインデータベースに保存)。
BROKER_USE_SSLfalseCELERY_BROKER_URLが rediss:// スキームを使用する場合に自動有効化。Redis SSL 証明書設定を broker 接続に適用します。
CELERY_USE_SENTINELfalseCelery broker の Redis Sentinel モードを有効化。
CELERY_SENTINEL_MASTER_NAME(空)Sentinel サービス名(Master Name)。
CELERY_SENTINEL_PASSWORD(空)Sentinel 認証パスワード。REDIS_SENTINEL_PASSWORD とは別です。キャッシュとタスクキューで異なる Sentinel クラスターを使用する場合に異なる値を設定できます。
CELERY_SENTINEL_SOCKET_TIMEOUT0.1Sentinel への接続タイムアウト(秒)。
CELERY_TASK_ANNOTATIONSnull特定のタスクにランタイム設定(例:レート制限)を適用します。形式:JSON 辞書。例:{"tasks.add": {"rate_limit": "10/s"}}。ほとんどのユーザーはこの設定を必要としません。

CORS 設定#

フロントエンドのクロスドメインアクセスポリシーを制御します。

変数デフォルト値説明
WEB_API_CORS_ALLOW_ORIGINS*Web API へのクロスオリジンリクエストの許可オリジン。例:https://dify.app
CONSOLE_CORS_ALLOW_ORIGINS*コンソール API へのクロスオリジンリクエストの許可オリジン。設定されていない場合、CONSOLE_WEB_URL にフォールバックします。
COOKIE_DOMAIN(空)フロントエンドとバックエンドが異なるサブドメインで実行される場合、共有トップレベルドメイン(例:example.com)に設定します。これにより認証 Cookie をサブドメイン間で共有できます。空の場合、Cookie は最もセキュアな __Host- プレフィックスを使用し、単一ドメインにロックされます。
NEXT_PUBLIC_COOKIE_DOMAIN(空)クロスサブドメイン Cookie のフロントエンドフラグ。1(または任意の非空値)に設定して有効化します。実際のドメインはバックエンドで COOKIE_DOMAIN から読み取られます。
NEXT_PUBLIC_SOCKET_URLws://localhostリアルタイム共同編集のためのブラウザ側 WebSocket エンドポイント。スキーム + ホスト + ポートのみを指定します(パス /socket.io/ は固定)。http(s):// を ws(s):// に置き換えてください。例:wss://dify.example.com。デフォルトは同梱 nginx の 80 番ポートに対応します。ランタイムで適用されるため、コンテナ再起動で反映されます。
NEXT_PUBLIC_BATCH_CONCURRENCY5フロントエンドのみ。バッチ操作時に UI が発行する同時 API コール数を制御します。

Dify CLI とプログラマティック API#

/openapi/v1/* は、Dify CLI(difyctl)などのクライアントが OAuth ベアラートークンで利用する、ユーザー単位のプログラマティック API です。デフォルトでは無効です。CLI を使うには OPENAPI_ENABLED と ENABLE_OAUTH_BEARER の両方を true にします。

変数デフォルト値説明
OPENAPI_ENABLEDfalseDify CLI(difyctl)が利用する /openapi/v1/* プログラマティック API のマスタースイッチ。
false の間はすべての /openapi/v1/* エンドポイントが 404 を返し、difyctl login を開始できません。ENABLE_OAUTH_BEARER と併せて有効にします。
ENABLE_OAUTH_BEARERfalse/openapi/v1/* の OAuth ベアラー認証を有効にし、デバイスフローのログイン承認も制御します。
OPENAPI_ENABLED=true でもこれが false だと、difyctl login は承認時に 503 で失敗します。CLI には両方の true が必要です。
OPENAPI_KNOWN_CLIENT_IDSdifyctlデバイスフローのログインを開始できる OAuth クライアント ID(カンマ区切り)。
ID を追加すればコード変更なしで他のクライアントを許可できます。difyctl を外すと CLI ログインが unsupported_client で失敗します。
OPENAPI_CORS_ALLOW_ORIGINS(空)/openapi/v1/* をクロスオリジンで呼び出せるブラウザオリジン(カンマ区切り)。
空の場合はすべて拒否します。標準デプロイでは影響がなく、CLI などブラウザ以外のクライアントは CORS の対象外です。
OPENAPI_RATE_LIMIT_PER_TOKEN60OAuth ベアラートークンごとの /openapi/v1/* に対する 1 分あたりのリクエスト上限。Redis 経由でレプリカ間に共有されます。
超過すると 429 と Retry-After ヘッダーを返します。0 で無効化できます。
DEVICE_FLOW_APPROVE_RATE_LIMIT_PER_HOUR101 つのブラウザセッションが 1 時間に承認・拒否できるデバイスフローログインの回数。
超えると承認が 429 を返し、ウィンドウのリセット待ちになります。0 は指定できません。

ファイルストレージ設定#

Dify がアップロードファイル、データセットドキュメント、暗号化キーを保存する場所を設定します。各ストレージタイプには独自の資格情報変数があります。使用するもののみを設定してください。

STORAGE_TYPE#

デフォルト値:opendal

ファイルストレージバックエンドを選択します。サポートされる値:opendal、s3、azure-blob、aliyun-oss、google-storage、huawei-obs、volcengine-tos、tencent-cos、baidu-obs、oci-storage、supabase、clickzetta-volume、local(非推奨;内部的に OpenDAL のファイルシステムスキームを使用)。

OpenDAL(デフォルト)

Apache OpenDAL を使用するデフォルトのストレージバックエンド。多くのストレージサービスをサポートする統一インターフェースです。Dify は OPENDAL_<SCHEME>_* に一致する環境変数を自動スキャンし、OpenDAL に渡します。例えば、OPENDAL_SCHEME=s3 の場合、OPENDAL_S3_ACCESS_KEY_ID、OPENDAL_S3_SECRET_ACCESS_KEY などを設定します。

変数デフォルト値説明
OPENDAL_SCHEMEfs使用するストレージサービス。例:fs(ローカルファイルシステム)、s3、gcs、azblob。

デフォルトの fs スキームの場合:

変数デフォルト値説明
OPENDAL_FS_ROOTstorageローカルファイルシステムストレージのルートディレクトリ。存在しない場合は自動作成されます。

利用可能なすべてのスキームとその設定オプションについては、 OpenDAL サービスドキュメント を参照してください。

S3
変数デフォルト値説明
S3_ENDPOINT(空)S3 エンドポイントアドレス。AWS 以外の S3 互換サービス(MinIO など)では必須です。
S3_REGIONus-east-1S3 リージョン。
S3_BUCKET_NAMEdifyaiS3 バケット名。
S3_ACCESS_KEY(空)S3 Access Key。IAM ロール使用時は不要です。
S3_SECRET_KEY(空)S3 Secret Key。IAM ロール使用時は不要です。
S3_ADDRESS_STYLEautoS3 アドレッシングスタイル:auto、path、または virtual。バケット名を URL パスに含める(path)か、サブドメインとして使用する(virtual)かを制御します。S3_USE_AWS_MANAGED_IAM が false の場合のみ有効です。
S3_USE_AWS_MANAGED_IAMfalse明示的な access key や secret key の代わりに AWS IAM ロールを使用します。対象は EC2 インスタンスプロファイルや ECS タスクロールです。有効時はインスタンスメタデータから資格情報を自動検出します。
Azure Blob
変数デフォルト値説明
AZURE_BLOB_ACCOUNT_NAMEdifyaiAzure ストレージアカウント名。
AZURE_BLOB_ACCOUNT_KEYdifyaiAzure ストレージアカウントキー。
AZURE_BLOB_CONTAINER_NAMEdifyai-containerAzure Blob コンテナ名。
AZURE_BLOB_ACCOUNT_URLhttps://<your_account_name>.blob.core.windows.netAzure Blob アカウント URL。
Google Cloud Storage
変数デフォルト値説明
GOOGLE_STORAGE_BUCKET_NAME(空)Google Cloud Storage バケット名。
GOOGLE_STORAGE_SERVICE_ACCOUNT_JSON_BASE64(空)Base64 エンコードされたサービスアカウント JSON キー。
Alibaba Cloud OSS
変数デフォルト値説明
ALIYUN_OSS_BUCKET_NAME(空)OSS バケット名。
ALIYUN_OSS_ACCESS_KEY(空)OSS access key。
ALIYUN_OSS_SECRET_KEY(空)OSS secret key。
ALIYUN_OSS_ENDPOINThttps://oss-ap-southeast-1-internal.aliyuncs.comOSS エンドポイント。リージョンとエンドポイントのリファレンス。
ALIYUN_OSS_REGIONap-southeast-1OSS リージョン。
ALIYUN_OSS_AUTH_VERSIONv4OSS 認証バージョン。
ALIYUN_OSS_PATH(空)オブジェクトパスプレフィックス。/で始めないでください。参考ドキュメント。
ALIYUN_CLOUDBOX_ID(空)CloudBox ベースの OSS デプロイ用の CloudBox ID。
Tencent Cloud COS
変数デフォルト値説明
TENCENT_COS_BUCKET_NAME(空)COS バケット名。
TENCENT_COS_SECRET_KEY(空)COS secret key。
TENCENT_COS_SECRET_ID(空)COS secret ID。
TENCENT_COS_REGION(空)COS リージョン(例:ap-guangzhou)。参考ドキュメント。
TENCENT_COS_SCHEME(空)COS アクセス用プロトコル(httpまたは https)。
TENCENT_COS_CUSTOM_DOMAIN(空)COS アクセス用カスタムドメイン。
OCI Object Storage
変数デフォルト値説明
OCI_ENDPOINT(空)OCI エンドポイント URL。
OCI_BUCKET_NAME(空)OCI バケット名。
OCI_ACCESS_KEY(空)OCI access key。
OCI_SECRET_KEY(空)OCI secret key。
OCI_REGIONus-ashburn-1OCI リージョン。
Huawei OBS
変数デフォルト値説明
HUAWEI_OBS_BUCKET_NAME(空)OBS バケット名。
HUAWEI_OBS_ACCESS_KEY(空)OBS access key。
HUAWEI_OBS_SECRET_KEY(空)OBS secret key。
HUAWEI_OBS_SERVER(空)OBS サーバー URL。参考ドキュメント。
HUAWEI_OBS_PATH_STYLEfalse仮想ホスト型の代わりにパス型 URL を使用。
Volcengine TOS
変数デフォルト値説明
VOLCENGINE_TOS_BUCKET_NAME(空)TOS バケット名。
VOLCENGINE_TOS_ACCESS_KEY(空)TOS access key。
VOLCENGINE_TOS_SECRET_KEY(空)TOS secret key。
VOLCENGINE_TOS_ENDPOINT(空)TOS エンドポイント URL。参考ドキュメント。
VOLCENGINE_TOS_REGION(空)TOS リージョン(例:cn-guangzhou)。
Baidu OBS
変数デフォルト値説明
BAIDU_OBS_BUCKET_NAME(空)Baidu OBS バケット名。
BAIDU_OBS_ACCESS_KEY(空)Baidu OBS access key。
BAIDU_OBS_SECRET_KEY(空)Baidu OBS secret key。
BAIDU_OBS_ENDPOINT(空)Baidu OBS サーバー URL。
Supabase
変数デフォルト値説明
SUPABASE_BUCKET_NAME(空)Supabase ストレージバケット名。
SUPABASE_API_KEY(空)Supabase API キー。
SUPABASE_URL(空)Supabase サーバー URL。
ClickZetta Volume
変数デフォルト値説明
CLICKZETTA_VOLUME_TYPEuserボリュームタイプ。オプション:user(個人/小規模チーム)、table(エンタープライズマルチテナント)、external(データレイク統合)。
CLICKZETTA_VOLUME_NAME(空)外部ボリューム名(TYPE=external の場合のみ必要)。
CLICKZETTA_VOLUME_TABLE_PREFIXdataset_テーブルボリュームのテーブルプレフィックス(TYPE=table の場合のみ使用)。
CLICKZETTA_VOLUME_DIFY_PREFIXdify_km他のアプリから分離するための Dify ファイルディレクトリプレフィックス。

ClickZetta Volume は、ベクトルデータベースセクションで設定された CLICKZETTA_* 接続パラメータを再利用します。

アーカイブストレージ#

ワークフロー実行ログをアーカイブするための独立した S3 互換ストレージ。archive-workflow-runs メンテナンスコマンドが、指定した期限より古いワークフロー実行を月単位の Parquet バンドルにまとめます。アーカイブから生成される CSV エクスポートはエクスポート用バケットに一時保存されます。

変数デフォルト値説明
ARCHIVE_STORAGE_ENABLEDfalseワークフローログアーカイブ用のアーカイブストレージを有効化。
ARCHIVE_STORAGE_ENDPOINT(空)S3 互換エンドポイント URL。
ARCHIVE_STORAGE_ARCHIVE_BUCKET(空)アーカイブされたワークフロー実行ログ用バケット。
ARCHIVE_STORAGE_EXPORT_BUCKET(空)アーカイブされたログから生成される一時的な CSV エクスポート ZIP 用バケット。バケットのライフサイクルルールで自動削除できます。
ARCHIVE_STORAGE_ACCESS_KEY(空)Access key。
ARCHIVE_STORAGE_SECRET_KEY(空)Secret key。
ARCHIVE_STORAGE_REGIONautoストレージリージョン。

ベクトルデータベース設定#

ナレッジベースのエンベディング保存と類似検索に使用するベクトルデータベースを設定します。各プロバイダーには独自の資格情報変数があります。使用するもののみを設定してください。

VECTOR_STORE#

デフォルト値:weaviate

ベクトルデータベースバックエンドを選択します。データセットに既にインデックスがある場合、データセットに保存されたタイプがこの設定より優先されます。Docker Compose でプロバイダーを切り替える場合、COMPOSE_PROFILES がこの値に基づいて対応するコンテナを自動起動します。

サポートされる値:weaviate、oceanbase、seekdb、qdrant、milvus、myscale、relyt、pgvector、pgvecto-rs、chroma、opensearch、oracle、tencent、elasticsearch、elasticsearch-ja、analyticdb、couchbase、vikingdb、opengauss、tablestore、vastbase、tidb、tidb_on_qdrant、baidu、lindorm、huawei_cloud、upstash、matrixone、clickzetta、alibabacloud_mysql、iris、hologres。

変数デフォルト値説明
VECTOR_INDEX_NAME_PREFIXVector_indexベクトルデータベースのコレクション名に追加されるプレフィックス。複数の Dify デプロイでベクトルデータベースインスタンスを共有する場合に変更してください。
Weaviate
変数デフォルト値説明
WEAVIATE_ENDPOINThttp://weaviate:8080Weaviate REST API エンドポイント。
WEAVIATE_API_KEY(空)Weaviate 認証用 API キー。
WEAVIATE_GRPC_ENDPOINTgrpc://weaviate:50051高性能バイナリプロトコル用の別の gRPC エンドポイント。バッチ操作が大幅に高速になります。未設定の場合、HTTP エンドポイントから推測されます。
WEAVIATE_TOKENIZATIONwordテキストフィールドのトークン化方法。オプション:word(空白と句読点で分割)、whitespace(空白のみで分割)、character(文字レベル、CJK 言語に適しています)。
OceanBase / seekdb

seekdb は OceanBase のライト版であり、同じ接続設定を共有します。

変数デフォルト値説明
OCEANBASE_VECTOR_HOSToceanbaseホスト名または IP アドレス。
OCEANBASE_VECTOR_PORT2881ポート番号。
OCEANBASE_VECTOR_USERroot@testデータベースユーザー名。
OCEANBASE_VECTOR_PASSWORDdifyai123456データベースパスワード。
OCEANBASE_VECTOR_DATABASEtestデータベース名。
OCEANBASE_CLUSTER_NAMEdifyaiクラスター名(Docker デプロイのみ)。
OCEANBASE_MEMORY_LIMIT6GOceanBase のメモリ制限(Docker デプロイのみ)。
SEEKDB_MEMORY_LIMIT2Gseekdb のメモリ制限(Docker デプロイのみ)。
OCEANBASE_ENABLE_HYBRID_SEARCHfalseベクトル検索と併用する BM25 クエリ用の全文インデックスを有効化。OceanBase >= 4.3.5.1 が必要です。有効化後にコレクションを再作成する必要があります。
OCEANBASE_FULLTEXT_PARSERik全文パーサー。組み込み:ngram、beng、space、ngram2、ik。外部(プラグインが必要):japanese_ftparser、thai_ftparser。
Qdrant
変数デフォルト値説明
QDRANT_URLhttp://qdrant:6333Qdrant エンドポイントアドレス。
QDRANT_API_KEYdifyai123456Qdrant 用 API キー。
QDRANT_CLIENT_TIMEOUT20クライアントタイムアウト(秒)。
QDRANT_GRPC_ENABLEDfalsegRPC 通信を有効化。
QDRANT_GRPC_PORT6334gRPC ポート。
QDRANT_REPLICATION_FACTOR1シャードごとのレプリカ数。
Milvus
変数デフォルト値説明
MILVUS_URIhttp://host.docker.internal:19530Milvus URI。 Zilliz Cloud の場合は Public Endpoint を使用してください。
MILVUS_DATABASE(空)データベース名。
MILVUS_TOKEN(空)認証トークン。Zilliz Cloud の場合は API Key を使用してください。
MILVUS_USER(空)ユーザー名。
MILVUS_PASSWORD(空)パスワード。
MILVUS_ENABLE_HYBRID_SEARCHfalseベクトル類似検索と併用する BM25 スパースインデックスによる全文検索を有効化。Milvus >= 2.5.0 が必要です。この機能を有効にせずに作成されたコレクションは再作成が必要です。
MILVUS_ANALYZER_PARAMS(空)テキストフィールドのアナライザーパラメータ。
MILVUS_SECUREfalseMilvus 接続で一方向 TLS を有効にします。有効にすると、クライアントは TLS で暗号化された gRPC で接続し、サーバー証明書を検証します。
MILVUS_SERVER_PEM_PATH(空)コンテナ内の Milvus サーバー証明書(PEM)のパス。MILVUS_SECURE が有効な場合にサーバーの検証に使用されます。
MILVUS_SERVER_NAME(空)検証対象のサーバー名(TLS SNI、証明書の CN または SAN と一致)。MILVUS_SERVER_PEM_PATH を設定する場合は必須です。
MyScale
変数デフォルト値説明
MYSCALE_HOSTmyscaleMyScale ホスト。
MYSCALE_PORT8123MyScale ポート。
MYSCALE_USERdefaultユーザー名。
MYSCALE_PASSWORD(空)パスワード。
MYSCALE_DATABASEdifyデータベース名。
MYSCALE_FTS_PARAMS(空)全文検索パラメータ。多言語サポートリファレンス。
Couchbase
変数デフォルト値説明
COUCHBASE_CONNECTION_STRINGcouchbase://couchbase-serverCouchbase クラスターの接続文字列。
COUCHBASE_USERAdministratorユーザー名。
COUCHBASE_PASSWORDpasswordパスワード。
COUCHBASE_BUCKET_NAMEEmbeddingsバケット名。
COUCHBASE_SCOPE_NAME_defaultスコープ名。
Hologres
変数デフォルト値説明
HOLOGRES_HOST(空)ホスト名。
HOLOGRES_PORT80ポート番号。
HOLOGRES_DATABASE(空)データベース名。
HOLOGRES_ACCESS_KEY_ID(空)Access Key ID(PG ユーザー名として使用)。
HOLOGRES_ACCESS_KEY_SECRET(空)Access Key Secret(PG パスワードとして使用)。
HOLOGRES_SCHEMApublicスキーマ名。
HOLOGRES_TOKENIZERjiebaテキストフィールドのトークナイザー。
HOLOGRES_DISTANCE_METHODCosine距離メソッド。
HOLOGRES_BASE_QUANTIZATION_TYPErabitq量子化タイプ。
HOLOGRES_MAX_DEGREE64HNSW の最大次数。
HOLOGRES_EF_CONSTRUCTION400HNSW の ef_construction パラメータ。
PGVector
変数デフォルト値説明
PGVECTOR_HOSTpgvectorホスト名。
PGVECTOR_PORT5432ポート番号。
PGVECTOR_USERpostgresユーザー名。
PGVECTOR_PASSWORDdifyai123456パスワード。
PGVECTOR_DATABASEdifyデータベース名。
PGVECTOR_MIN_CONNECTION1最小プール接続数。
PGVECTOR_MAX_CONNECTION5最大プール接続数。
PGVECTOR_PG_BIGMfalse全文検索用の pg_bigm 拡張を有効化。
Vastbase
変数デフォルト値説明
VASTBASE_HOSTvastbaseホスト名。
VASTBASE_PORT5432ポート番号。
VASTBASE_USERdifyユーザー名。
VASTBASE_PASSWORDDifyai123456パスワード。
VASTBASE_DATABASEdifyデータベース名。
VASTBASE_MIN_CONNECTION1最小プール接続数。
VASTBASE_MAX_CONNECTION5最大プール接続数。
PGVecto.RS
変数デフォルト値説明
PGVECTO_RS_HOSTpgvecto-rsホスト名。
PGVECTO_RS_PORT5432ポート番号。
PGVECTO_RS_USERpostgresユーザー名。
PGVECTO_RS_PASSWORDdifyai123456パスワード。
PGVECTO_RS_DATABASEdifyデータベース名。
AnalyticDB
変数デフォルト値説明
ANALYTICDB_KEY_ID(空)Aliyun access key ID。AccessKey の作成。
ANALYTICDB_KEY_SECRET(空)Aliyun access key secret。
ANALYTICDB_REGION_IDcn-hangzhouリージョン識別子。
ANALYTICDB_INSTANCE_ID(空)インスタンス ID(例:gp-xxxxxx)。インスタンスの作成。
ANALYTICDB_ACCOUNT(空)アカウント名。アカウントの作成。
ANALYTICDB_PASSWORD(空)アカウントパスワード。
ANALYTICDB_NAMESPACEdify名前空間(スキーマ)。存在しない場合は自動作成されます。
ANALYTICDB_NAMESPACE_PASSWORD(空)名前空間パスワード。新しい名前空間作成時に使用されます。
ANALYTICDB_HOST(空)直接接続ホスト(API ベースのアクセスの代替)。
ANALYTICDB_PORT5432直接接続ポート。
ANALYTICDB_MIN_CONNECTION1最小プール接続数。
ANALYTICDB_MAX_CONNECTION5最大プール接続数。
TiDB Vector
変数デフォルト値説明
TIDB_VECTOR_HOSTtidbホスト名。
TIDB_VECTOR_PORT4000ポート番号。
TIDB_VECTOR_USER(空)ユーザー名。
TIDB_VECTOR_PASSWORD(空)パスワード。
TIDB_VECTOR_DATABASEdifyデータベース名。
TIDB_VECTOR_ENABLE_FULLTEXT_SEARCHfalseTiDB Vector 上のナレッジベースで全文検索とハイブリッド検索を利用できるようにします。

新規のナレッジベーステーブルには多言語対応の全文インデックスが付与され、既存テーブルには次回ドキュメントをインデックスする際に追加されます。

全文インデックスをサポートする TiDB デプロイが必要です。
MatrixOne
変数デフォルト値説明
MATRIXONE_HOSTmatrixoneホスト名。
MATRIXONE_PORT6001ポート番号。
MATRIXONE_USERdumpユーザー名。
MATRIXONE_PASSWORD111パスワード。
MATRIXONE_DATABASEdifyデータベース名。
Chroma
変数デフォルト値説明
CHROMA_HOST127.0.0.1Chroma サーバーホスト。
CHROMA_PORT8000Chroma サーバーポート。
CHROMA_TENANTdefault_tenantテナント名。
CHROMA_DATABASEdefault_databaseデータベース名。
CHROMA_AUTH_PROVIDERchromadb.auth.token_authn.TokenAuthClientProvider認証プロバイダークラス。
CHROMA_AUTH_CREDENTIALS(空)認証資格情報。
Oracle
変数デフォルト値説明
ORACLE_USERdifyOracle ユーザー名。
ORACLE_PASSWORDdifyOracle パスワード。
ORACLE_DSNoracle:1521/FREEPDB1データソース名。
ORACLE_CONFIG_DIR/app/api/storage/walletOracle 設定ディレクトリ。
ORACLE_WALLET_LOCATION/app/api/storage/walletAutonomous DB 用ウォレットの場所。
ORACLE_WALLET_PASSWORDdifyウォレットパスワード。
ORACLE_IS_AUTONOMOUSfalseOracle Autonomous Database を使用するかどうか。
AlibabaCloud MySQL
変数デフォルト値説明
ALIBABACLOUD_MYSQL_HOST127.0.0.1ホスト名。
ALIBABACLOUD_MYSQL_PORT3306ポート番号。
ALIBABACLOUD_MYSQL_USERrootユーザー名。
ALIBABACLOUD_MYSQL_PASSWORDdifyai123456パスワード。
ALIBABACLOUD_MYSQL_DATABASEdifyデータベース名。
ALIBABACLOUD_MYSQL_MAX_CONNECTION5最大プール接続数。
ALIBABACLOUD_MYSQL_HNSW_M6HNSW M パラメータ。
Relyt
変数デフォルト値説明
RELYT_HOSTdbホスト名。
RELYT_PORT5432ポート番号。
RELYT_USERpostgresユーザー名。
RELYT_PASSWORDdifyai123456パスワード。
RELYT_DATABASEpostgresデータベース名。
OpenSearch
変数デフォルト値説明
OPENSEARCH_HOSTopensearchホスト名。
OPENSEARCH_PORT9200ポート番号。
OPENSEARCH_SECUREtrueHTTPS を使用。
OPENSEARCH_VERIFY_CERTStrueSSL 証明書を検証。
OPENSEARCH_AUTH_METHODbasicbasicはユーザー名/パスワードを使用。aws_managed_iam は Boto3 資格情報による AWS SigV4 リクエスト署名を使用(AWS Managed OpenSearch または Serverless 用)。
OPENSEARCH_USERadminユーザー名。basic 認証でのみ使用。
OPENSEARCH_PASSWORDadminパスワード。basic 認証でのみ使用。
OPENSEARCH_AWS_REGIONap-southeast-1AWS リージョン。aws_managed_iam 認証でのみ使用。
OPENSEARCH_AWS_SERVICEaossAWS サービスタイプ:es(Managed Cluster)または aoss(OpenSearch Serverless)。aws_managed_iam 認証でのみ使用。
Tencent Cloud VectorDB
変数デフォルト値説明
TENCENT_VECTOR_DB_URLhttp://127.0.0.1アクセスアドレス。コンソール。
TENCENT_VECTOR_DB_API_KEYdifyAPI キー。キー管理。
TENCENT_VECTOR_DB_TIMEOUT30リクエストタイムアウト(秒)。
TENCENT_VECTOR_DB_USERNAMEdifyアカウント名。アカウント管理。
TENCENT_VECTOR_DB_DATABASEdifyデータベース名。データベースの作成。
TENCENT_VECTOR_DB_SHARD1シャード数。
TENCENT_VECTOR_DB_REPLICAS2レプリカ数。
TENCENT_VECTOR_DB_ENABLE_HYBRID_SEARCHfalseハイブリッド検索を有効化。スパースベクトルドキュメント。
Elasticsearch
変数デフォルト値説明
ELASTICSEARCH_HOST0.0.0.0ホスト名。
ELASTICSEARCH_PORT9200ポート番号。
ELASTICSEARCH_USERNAMEelasticユーザー名。
ELASTICSEARCH_PASSWORDelasticパスワード。
ELASTICSEARCH_USE_CLOUDfalseElastic Cloud モードに切り替え。trueの場合、host/port/username/password の代わりに ELASTICSEARCH_CLOUD_URLと ELASTICSEARCH_API_KEY を使用します。
ELASTICSEARCH_CLOUD_URL(空)Elastic Cloud エンドポイント URL。ELASTICSEARCH_USE_CLOUD=true の場合に必要です。
ELASTICSEARCH_API_KEY(空)Elastic Cloud API キー。ELASTICSEARCH_USE_CLOUD=true の場合に必要です。
ELASTICSEARCH_VERIFY_CERTSfalseSSL 証明書を検証。
ELASTICSEARCH_CA_CERTS(空)CA 証明書のパス。
ELASTICSEARCH_REQUEST_TIMEOUT100000リクエストタイムアウト(ミリ秒)。
ELASTICSEARCH_RETRY_ON_TIMEOUTtrueタイムアウト時にリトライ。
ELASTICSEARCH_MAX_RETRIES10最大リトライ回数。
Baidu Vector DB
変数デフォルト値説明
BAIDU_VECTOR_DB_ENDPOINThttp://127.0.0.1:5287エンドポイント URL。
BAIDU_VECTOR_DB_CONNECTION_TIMEOUT_MS30000接続タイムアウト(ミリ秒)。
BAIDU_VECTOR_DB_ACCOUNTrootアカウント名。
BAIDU_VECTOR_DB_API_KEYdifyAPI キー。
BAIDU_VECTOR_DB_DATABASEdifyデータベース名。
BAIDU_VECTOR_DB_SHARD1シャード数。
BAIDU_VECTOR_DB_REPLICAS3レプリカ数。
BAIDU_VECTOR_DB_INVERTED_INDEX_ANALYZERDEFAULT_ANALYZER転置インデックスアナライザー。
BAIDU_VECTOR_DB_INVERTED_INDEX_PARSER_MODECOARSE_MODE転置インデックスパーサーモード。
BAIDU_VECTOR_DB_AUTO_BUILD_ROW_COUNT_INCREMENT500Baidu Vector DB 側で自動インデックス再構築をトリガーする絶対行数増分のしきい値。_RATIO と併せて機能し、いずれかのしきい値を先に超えた時点で有効になります。
BAIDU_VECTOR_DB_AUTO_BUILD_ROW_COUNT_INCREMENT_RATIO0.05自動インデックス再構築をトリガーする相対増加率のしきい値(新規行数/既存行数)。上記の絶対しきい値と合わせ、先に達した条件が適用されます。
BAIDU_VECTOR_DB_REBUILD_INDEX_TIMEOUT_IN_SECONDS300インデックス再構築の完了をクライアントが待機する最大時間(秒)。タイムアウト時、クライアント側の呼び出しは失敗しますが、サーバー側の再構築は完了する可能性があります。しばらく経ってから再度クエリを投げれば成功することが多いです。
VikingDB
変数デフォルト値説明
VIKINGDB_ACCESS_KEY(空)Access key。
VIKINGDB_SECRET_KEY(空)Secret key。
VIKINGDB_REGIONcn-shanghaiリージョン。
VIKINGDB_HOSTapi-vikingdb.xxx.volces.comAPI ホスト。リージョン固有のエンドポイントに置き換えてください。
VIKINGDB_SCHEMEhttpプロトコルスキーム(httpまたは https)。
VIKINGDB_CONNECTION_TIMEOUT30接続タイムアウト(秒)。
VIKINGDB_SOCKET_TIMEOUT30Socket タイムアウト(秒)。
Lindorm
変数デフォルト値説明
LINDORM_URLhttp://localhost:30070Lindorm 検索エンジン URL。コンソール。
LINDORM_USERNAMEadminユーザー名。
LINDORM_PASSWORDadminパスワード。
LINDORM_USING_UGCtrueUGC モードを使用。
LINDORM_QUERY_TIMEOUT1クエリタイムアウト(秒)。
OpenGauss
変数デフォルト値説明
OPENGAUSS_HOSTopengaussホスト名。
OPENGAUSS_PORT6600ポート番号。
OPENGAUSS_USERpostgresユーザー名。
OPENGAUSS_PASSWORDDify@123パスワード。
OPENGAUSS_DATABASEdifyデータベース名。
OPENGAUSS_MIN_CONNECTION1最小プール接続数。
OPENGAUSS_MAX_CONNECTION5最大プール接続数。
OPENGAUSS_ENABLE_PQfalsePQ アクセラレーションを有効化。
Upstash Vector
変数デフォルト値説明
UPSTASH_VECTOR_URL(空)Upstash Vector エンドポイント URL。
UPSTASH_VECTOR_TOKEN(空)Upstash Vector API トークン。
TableStore
変数デフォルト値説明
TABLESTORE_ENDPOINThttps://instance-name.cn-hangzhou.ots.aliyuncs.comエンドポイントアドレス。instance-name をインスタンス名に置き換えてください。
TABLESTORE_INSTANCE_NAME(空)インスタンス名。
TABLESTORE_ACCESS_KEY_ID(空)Access Key ID。
TABLESTORE_ACCESS_KEY_SECRET(空)Access Key Secret。
TABLESTORE_NORMALIZE_FULLTEXT_BM25_SCOREfalse全文 BM25 スコアを正規化。
ClickZetta
変数デフォルト値説明
CLICKZETTA_USERNAME(空)ユーザー名。
CLICKZETTA_PASSWORD(空)パスワード。
CLICKZETTA_INSTANCE(空)インスタンス名。
CLICKZETTA_SERVICEapi.clickzetta.comサービスエンドポイント。
CLICKZETTA_WORKSPACEquick_startワークスペース名。
CLICKZETTA_VCLUSTERdefault_ap仮想クラスター。
CLICKZETTA_SCHEMAdifyスキーマ名。
CLICKZETTA_BATCH_SIZE100操作のバッチサイズ。
CLICKZETTA_ENABLE_INVERTED_INDEXtrue転置インデックスを有効化。
CLICKZETTA_ANALYZER_TYPEchineseアナライザータイプ。
CLICKZETTA_ANALYZER_MODEsmartアナライザーモード。
CLICKZETTA_VECTOR_DISTANCE_FUNCTIONcosine_distance距離関数。
InterSystems IRIS
変数デフォルト値説明
IRIS_HOSTirisホスト名。
IRIS_SUPER_SERVER_PORT1972スーパーサーバーポート。
IRIS_USER_SYSTEMユーザー名。
IRIS_PASSWORDDify@1234パスワード。
IRIS_DATABASEUSERデータベース名。
IRIS_SCHEMAdifyスキーマ名。
IRIS_CONNECTION_URL(空)完全な接続 URL(個別設定をオーバーライド)。
IRIS_MIN_CONNECTION1最小プール接続数。
IRIS_MAX_CONNECTION3最大プール接続数。
IRIS_TEXT_INDEXtrueテキストインデックスを有効化。
IRIS_TEXT_INDEX_LANGUAGEenテキストインデックスの言語。

ナレッジベース設定#

変数デフォルト値説明
UPLOAD_FILE_SIZE_LIMIT15ドキュメントアップロード(PDF、Word ドキュメントなど)の最大ファイルサイズ(MB)。超過するとユーザーに「ファイルが大きすぎます」エラーが表示されます。画像、動画、音声には適用されません。それらには下記の別の制限があります。
UPLOAD_FILE_BATCH_LIMIT5フロントエンドがアップロードバッチごとに許可する最大ファイル数。
UPLOAD_FILE_EXTENSION_BLACKLIST(空)アップロードできないファイル拡張子のセキュリティブロックリスト。カンマ区切り、小文字、ドットなし。例:exe,bat,cmd,com,scr,vbs,ps1,msi,dll。空の場合はすべてのタイプを許可します。
SINGLE_CHUNK_ATTACHMENT_LIMIT10単一のナレッジベースセグメント(チャンク)に埋め込める最大画像数。
IMAGE_FILE_BATCH_LIMIT10アップロードバッチごとの最大画像ファイル数。
ATTACHMENT_IMAGE_FILE_SIZE_LIMIT2ナレッジベースインデックス作成時に外部 URL から取得する画像の最大サイズ(MB)。これを超える画像はスキップされます。直接アップロードに適用される UPLOAD_IMAGE_FILE_SIZE_LIMIT とは異なります。
ATTACHMENT_IMAGE_DOWNLOAD_TIMEOUT60ナレッジベースインデックス作成時に外部 URL から画像をダウンロードする際のタイムアウト(秒)。低速または応答しない画像サーバーはこのタイムアウト後に放棄されます。
ETL_TYPEdifyドキュメント抽出ライブラリ。difyは txt、md、pdf、html、xlsx、docx、csv をサポートします。Unstructuredは doc、msg、eml、ppt、pptx、xml、epub のサポートを追加します(UNSTRUCTURED_API_URL が必要)。
UNSTRUCTURED_API_URL(空)Unstructured.io API エンドポイント。ETL_TYPEが Unstructuredの場合に必要です。.pptファイルのサポートにも必要です。例:http://unstructured:8000/general/v0/general。
UNSTRUCTURED_API_KEY(空)Unstructured.io 認証用 API キー。
SCARF_NO_ANALYTICStrueUnstructured ライブラリのテレメトリ/分析収集を無効化。
TOP_K_MAX_VALUE10ナレッジベース検索で top_k パラメータ(検索ごとの結果返却数)にユーザーが設定できる最大値。
DATASET_MAX_SEGMENTS_PER_REQUEST0データセット API リクエストごとの最大セグメント数。0 は無制限を意味します。

アノテーションインポート#

変数デフォルト値説明
ANNOTATION_IMPORT_FILE_SIZE_LIMIT2アノテーションインポート用 CSV ファイルの最大サイズ(MB)。超過すると HTTP 413 が返されます。
ANNOTATION_IMPORT_MAX_RECORDS10000アノテーションインポートごとの最大レコード数。レコードが多いファイルはバッチに分割する必要があります。
ANNOTATION_IMPORT_MIN_RECORDS1アノテーションインポートごとに必要な最小有効レコード数。
ANNOTATION_IMPORT_RATE_LIMIT_PER_MINUTE5ワークスペースごとの 1 分あたりの最大アノテーションインポートリクエスト数。超過すると HTTP 429 が返されます。
ANNOTATION_IMPORT_RATE_LIMIT_PER_HOUR20ワークスペースごとの 1 時間あたりの最大アノテーションインポートリクエスト数。
ANNOTATION_IMPORT_MAX_CONCURRENT5ワークスペースごとの最大同時アノテーションインポートタスク数。古いタスクは 2 分後に自動クリーンアップされます。

モデル設定#

変数デフォルト値説明
PLUGIN_BASED_TOKEN_COUNTING_ENABLEDfalse正確な使用量追跡のためにプラグインベースのトークンカウントを使用。無効の場合、トークンカウントは 0 を返します(高速ですがコスト追跡の精度が低下します)。

マルチモーダル設定#

変数デフォルト値説明
MULTIMODAL_SEND_FORMATbase64マルチモーダル LLM にファイルを送信する方法。base64はリクエストにファイルデータを埋め込みます(互換性が高く、オフラインで動作、ペイロードが大きい)。urlは署名付き URL を送信してモデルに取得させます(高速、リクエストが小さいですが、モデルが FILES_URL にアクセスできる必要があります)。
UPLOAD_IMAGE_FILE_SIZE_LIMIT10直接アップロードの最大画像ファイルサイズ(MB)(jpg、png、webp、gif、svg)。
UPLOAD_VIDEO_FILE_SIZE_LIMIT100直接アップロードの最大動画ファイルサイズ(MB)(mp4、mov、mpeg、webm)。
UPLOAD_AUDIO_FILE_SIZE_LIMIT50直接アップロードの最大音声ファイルサイズ(MB)(mp3、m4a、wav、amr、mpga)。
Note

すべてのアップロードサイズ制限は NGINX_CLIENT_MAX_BODY_SIZE(デフォルト 100M)によっても制限されます。アップロード制限を 100 MB を超えて増加する場合は、NGINX_CLIENT_MAX_BODY_SIZE も同様に増加してください。そうしないと、Nginx が 413 エラーでアップロードを拒否します。

Sentry 設定#

Sentry はエラー追跡とパフォーマンス監視を提供します。各サービスにはエラーレポートを分離するための独自の DSN があります。

変数デフォルト値説明
SENTRY_DSN(空)サービス間で共有される Sentry DSN。
API_SENTRY_DSN(空)API サービス用の Sentry DSN。設定されている場合、SENTRY_DSN をオーバーライドします。空の場合、バックエンドの Sentry が無効になります。
API_SENTRY_TRACES_SAMPLE_RATE1.0パフォーマンストレーシングに含めるリクエストの割合(0.01 = 1%、1.0 = 100%)。トレースはサービス間のリクエストフローを追跡します。
API_SENTRY_PROFILES_SAMPLE_RATE1.0CPU/メモリプロファイリングに含めるリクエストの割合(0.01 = 1%)。プロファイルはコード内で時間が費やされている箇所を表示します。
SENTRY_TRACES_SAMPLE_RATE1.0API_SENTRY_TRACES_SAMPLE_RATE の直接名で、docker/envs/core-services/ 配下の設定ファイルが使用します。
Compose 構成では API_SENTRY_* の値が優先されます。Sentry DSN が空の間は無効です。
SENTRY_PROFILES_SAMPLE_RATE1.0API_SENTRY_PROFILES_SAMPLE_RATE の直接名で、用途は上と同じです。
プロファイリングはトレース対象に選ばれたリクエストからのみ採取されるため、実際の量はおおよそ両レートの積になります。
WEB_SENTRY_DSN(空)Web フロントエンド(Next.js)用の Sentry DSN。フロントエンドのみ。
PLUGIN_SENTRY_ENABLEDfalseプラグインデーモンサービスの Sentry を有効化。
PLUGIN_SENTRY_DSN(空)プラグインデーモン用の Sentry DSN。

Notion 連携設定#

ナレッジベースデータソースとして Dify を Notion に接続します。 https://www.notion.so/my-integrations で連携資格情報を取得してください。

変数デフォルト値説明
NOTION_INTEGRATION_TYPEpublicpublicは標準 OAuth 2.0 を使用します(HTTPS リダイレクト URL が必要、CLIENT_ID + CLIENT_SECRET が必要)。internalは直接連携トークンを使用します(HTTP で動作)。ローカルデプロイには internal を使用してください。
NOTION_CLIENT_SECRET(空)OAuth クライアントシークレット。public 連携に必要です。
NOTION_CLIENT_ID(空)OAuth クライアント ID。public 連携に必要です。
NOTION_INTERNAL_SECRET(空)Notion からの直接連携トークン。internal 連携に必要です。

メール設定#

Dify はアカウント招待、パスワードリセット、ログインコード、人間の入力ノード通知のメールを送信します。サポートされる 3 つのプロバイダーのいずれかを設定してください。メールリンクには CONSOLE_WEB_URL の設定が必要です。 共通変数 を参照してください。

変数デフォルト値説明
MAIL_TYPEresendメールプロバイダー:resend、smtp、または sendgrid。
MAIL_DEFAULT_SEND_FROM(空)すべての送信メールのデフォルト「From」アドレス。必須です。
Resend
変数デフォルト値説明
RESEND_API_URLhttps://api.resend.comResend API エンドポイント。セルフホスト Resend またはプロキシ用にオーバーライドします。
RESEND_API_KEY(空)Resend API キー。MAIL_TYPE=resend の場合に必要です。
SMTP

3 つの TLS モード:暗黙的 TLS(SMTP_USE_TLS=true、SMTP_OPPORTUNISTIC_TLS=false、ポート 465)、STARTTLS(SMTP_USE_TLS=true、SMTP_OPPORTUNISTIC_TLS=true、ポート 587)、またはプレーン(SMTP_USE_TLS=false、ポート 25)。

変数デフォルト値説明
SMTP_SERVER(空)SMTP サーバーアドレス。
SMTP_PORT465SMTP サーバーポート。STARTTLS モードの場合は 587 を使用してください。
SMTP_USERNAME(空)SMTP ユーザー名。IP ホワイトリストされたサーバーでは空にできます。
SMTP_PASSWORD(空)SMTP パスワード。IP ホワイトリストされたサーバーでは空にできます。
SMTP_USE_TLStrueTLS を有効化。trueで SMTP_OPPORTUNISTIC_TLS=falseの場合、暗黙的 TLS(SMTP_SSL)を使用します。
SMTP_OPPORTUNISTIC_TLSfalse暗黙的 TLS の代わりに STARTTLS(明示的 TLS)を使用。SMTP_USE_TLS=true と併用する必要があります。
SMTP_LOCAL_HOSTNAME(空)SMTP HELO/EHLO で送信されるホスト名をオーバーライド。SMTP サーバーがコンテナホスト名を拒否する場合に Docker で必要です(Google Workspace、Microsoft 365 でよく発生)。ドメインに設定してください(例:mail.yourdomain.com)。
SendGrid
変数デフォルト値説明
SENDGRID_API_KEY(空)SendGrid API キー。MAIL_TYPE=sendgrid の場合に必要です。

詳細については、 SendGrid ドキュメント を参照してください。

その他の設定#

コンソール機能#

変数デフォルト値説明
ENABLE_LEARN_APPtrueLearn Dify セクションの表示を切り替えます。対象は探索ページのチュートリアルテンプレート、スタジオにアプリがないときの入門パネル、ヘルプメニューの表示切り替えです。

false で 3 か所とも非表示になります。
ENABLE_SKILLtrueメインナビゲーションに Skills を表示します。

false にすると、ワークスペースの UI からスキルが非表示になります。

認証とアカウント#

デフォルトでは、サインインはメールアドレスとパスワードで行い、新しいアカウントはワークスペースへの招待または初期セットアップウィザードで作成します。以下のトグルでこの方針を調整できます。

変数デフォルト値説明
ENABLE_EMAIL_PASSWORD_LOGINtrueメールアドレスとパスワードでコンソールにサインインします。無効にすると、サインインページからパスワードフォームが消え、パスワードログイン、パスワードリセット、セルフサービス登録の各エンドポイントが 403 を返します。サインイン方法は必ず 1 つ以上有効にしてください。すべて無効にすると、認証方式が未設定である旨が表示され、設定を戻すまで誰もログインできません。
ENABLE_EMAIL_CODE_LOGINfalseパスワードの代わりに、メールで届く 6 桁のワンタイムコードでサインインします。メール送信の設定が必要です(メール設定 を参照)。未設定ではコードが届きません。ALLOW_REGISTER=true の場合、未登録のメールアドレスでコードを入力するとアカウントも作成されるため、セルフサービス登録の経路にもなります。
EMAIL_CODE_LOGIN_TOKEN_EXPIRY_MINUTES5サインインコードの有効時間(分)。期限切れのコードは拒否され、再取得が必要です。
EMAIL_CODE_LOGIN_MAX_ATTEMPTS51 つのサインインコードで許容される入力ミスの最大回数。超えるとコードが無効になり、再取得が必要です。
ENABLE_SOCIAL_OAUTH_LOGINfalseコンソールのサインインページに GitHub と Google のサインインボタンを表示します。ボタンが機能するのは、対応する GitHub または Google の OAuth アプリ認証情報を API サービスに設定した場合だけです。フラグだけ有効にして認証情報が未設定だと、サインインは失敗します。初回の OAuth サインインでアカウントが作成されるのは ALLOW_REGISTER=true のときだけです。
ALLOW_REGISTERfalseアカウントの自己作成を許可します。サインインページに新規登録リンクを表示し(パスワードログインが有効な場合)、初回のメールコードまたは OAuth サインインでのアカウント作成を許可します。招待制にするには false のままにします。ワークスペースへの招待と初期セットアップウィザードは常に利用できます。
ALLOW_CREATE_WORKSPACEfalseどのワークスペースにも属さないアカウントに対して、セルフサービス登録時やメールコード、OAuth サインイン時にワークスペースを自動作成します。false の場合、こうしたアカウントはワークスペースへの招待を待つ必要があります。セットアップウィザードが作成する管理者ワークスペースには影響しません。
ENABLE_CHANGE_EMAILtrueアカウント設定ページからメールアドレスを変更できるようにします。変更はメールの確認コードで検証されるため、メール送信の設定が必要です。外部ディレクトリと一致させる必要がある場合など、メールアドレスを固定したいときは false に設定します。

LLMOps トレース配信#

アプリ実行のトレースは、バックグラウンドタスクが LLMOps プロバイダーへ配信します。対象のプロバイダーは Langfuse、LangSmith、Arize/Phoenix などです。Docker Compose でデプロイする場合は、docker/envs/core-services/shared.env にこれらの変数を設定します。

変数デフォルト値説明
OPS_TRACE_UNIFIED_ENABLEDfalsetrue にすると、LangSmith と Arize/Phoenix のトレースに共通の構造を使います。ワークフロー実行、ノード、それらの親子関係を記録します。デフォルトの false では、各プロバイダーの従来のトレース実装を使います。他のプロバイダーには影響しません。

各アプリで LLMOps を有効にし、プロバイダーを設定する必要があります。
OPS_TRACE_RETRYABLE_DISPATCH_MAX_RETRIES780一時的な失敗後にトレース配信をリトライする最大回数。超えるとそのトレースは破棄されます。

デフォルトのリトライ時間(回数 × OPS_TRACE_RETRYABLE_DISPATCH_DELAY_SECONDS)は、1 時間のワークフロー上限とエクスポート猶予期間を上回るよう設定されています。

現在この経路に入るのは、Arize/Phoenix でネストしたワークフローをトレースする場合のみです。子トレースが親のコンテキストより先に届くと発生します。0 は指定できません。
OPS_TRACE_RETRYABLE_DISPATCH_DELAY_SECONDS5リトライの間隔(秒)。許容ウィンドウは間隔 × 最大回数(デフォルトで約 65 分)です。

小さくするとネストしたトレースが早く届く一方、リトライ回数を早く使い切ります。0 は指定できません。
OPS_TRACE_PARENT_CONTEXT_TTL_SECONDS3900親ワークフローのトレースコンテキストを保持する時間(秒)。保持中は、後から届くネストした子トレースが親に接続できます。

OPS_TRACE_UNIFIED_ENABLED が true の場合、リトライ時間(回数 × 間隔)以上に設定してください。これより小さいと、Dify は設定を読み込めません。

インデックス作成#

変数デフォルト値説明
INDEXING_MAX_SEGMENTATION_TOKENS_LENGTH4000ナレッジベース用にドキュメントをチャンク化する際のテキストセグメントごとの最大トークン長。大きい値はチャンクあたりのコンテキストを多く保持し、小さい値はより細かい粒度を提供します。

新規ユーザーのデフォルト設定#

変数デフォルト値説明
NEW_USER_DEFAULT_PLUGIN_IDS(空)新しいワークスペースの作成時に自動インストールされるマーケットプレイスのプラグイン ID(カンマ区切り)。
NEW_USER_DEFAULT_MODELS(空)新しいワークスペースに設定されるデフォルトモデル。model_type:provider:model 形式のカンマ区切り。

ワークフロー生成#

変数デフォルト値説明
WORKFLOW_GENERATION_TIMEOUT_MS180000/create または /refine によるアプリ生成 1 回を UI が待つ時間。web コンテナが読み込む。
WORKFLOW_GENERATOR_NODE_BUILDER_MAX_WORKERS6/create//refine の生成リクエスト 1 回あたりの、ノード構成を組み立てる LLM 呼び出しの最大並列数。

トークンと招待#

すべてのトークン有効期限変数は、Redis に保存されるワンタイムトークンの有効期間を制御します。期限切れ後、ユーザーは新しいトークンをリクエストする必要があります。

変数デフォルト値説明
INVITE_EXPIRY_HOURS72ワークスペース招待リンクの有効期間(時間)。
RESET_PASSWORD_TOKEN_EXPIRY_MINUTES5パスワードリセットトークンの有効期間(分)。
EMAIL_REGISTER_TOKEN_EXPIRY_MINUTES5メール登録トークンの有効期間(分)。
CHANGE_EMAIL_TOKEN_EXPIRY_MINUTES5メール変更トークンの有効期間(分)。
OWNER_TRANSFER_TOKEN_EXPIRY_MINUTES5ワークスペースオーナー移譲トークンの有効期間(分)。

コード実行サンドボックス#

以下の設定は、API と Worker がサンドボックスに接続する方法を指定します。サンドボックスは、コードノード(Python、JavaScript)とテンプレート変換ノード(Jinja2)を分離して実行する独立したサービスです。

変数デフォルト値説明
CODE_EXECUTION_ENDPOINThttp://sandbox:8194サンドボックスサービスエンドポイント。
CODE_EXECUTION_API_KEYdify-sandboxサンドボックス認証用 API キー。サンドボックスサービスの SANDBOX_API_KEY と一致する必要があります。
CODE_EXECUTION_SSL_VERIFYtrueサンドボックス接続の SSL を検証。自己署名証明書での開発時は無効化してください。
CODE_EXECUTION_CONNECT_TIMEOUT10接続タイムアウト(秒)。
CODE_EXECUTION_READ_TIMEOUT60読み取りタイムアウト(秒)。
CODE_EXECUTION_WRITE_TIMEOUT10書き込みタイムアウト(秒)。
CODE_EXECUTION_POOL_MAX_CONNECTIONS100サンドボックスサービスへの最大同時 HTTP 接続数。
CODE_EXECUTION_POOL_MAX_KEEPALIVE_CONNECTIONS20サンドボックスコネクションプールで維持する最大アイドル接続数。
CODE_EXECUTION_POOL_KEEPALIVE_EXPIRY5.0アイドルなサンドボックス接続が閉じられるまでの秒数。

コードとテンプレートの出力制限#

API と Worker は、コードノードとテンプレート変換ノードの出力にこれらの制限を適用します。サンドボックスサービスはこれらの変数を読み取りません。変更を反映するには、サンドボックスではなく API と Worker を再起動してください。

変数デフォルト値説明
CODE_MAX_NUMBER9223372036854775807コードノード出力で許可される最大数値(最大 64 ビット符号付き整数)。
CODE_MIN_NUMBER-9223372036854775808コードノード出力で許可される最小数値(最小 64 ビット符号付き整数)。
CODE_MAX_STRING_LENGTH400000コードノード出力の最大文字列長。無制限の文字列生成によるメモリ枯渇を防止します。
CODE_MAX_DEPTH5出力データ構造の最大ネスト深度。
CODE_MAX_PRECISION20出力の浮動小数点数の最大小数桁数。
CODE_MAX_STRING_ARRAY_LENGTH30文字列配列出力の最大要素数。
CODE_MAX_OBJECT_ARRAY_LENGTH30オブジェクト配列出力の最大要素数。
CODE_MAX_NUMBER_ARRAY_LENGTH1000数値配列出力の最大要素数。
TEMPLATE_TRANSFORM_MAX_LENGTH400000テンプレート変換ノード出力の最大文字数。

ワークフローランタイム#

変数デフォルト値説明
WORKFLOW_MAX_EXECUTION_STEPS500ワークフロー実行ごとの最大ノード実行回数。超過するとワークフローが終了されます。
WORKFLOW_MAX_EXECUTION_TIME3600ワークフロー実行ごとの最大実行時間(秒)。超過するとワークフローが終了されます。

APP_MAX_EXECUTION_TIME と対になる外側の制限です(両方ともデフォルトは 1 時間)。両方を一緒に増やしてください。Agent を利用する場合は、Agent の実行期限(DIFY_AGENT_RUN_TIMEOUT_SECONDS)以上に保ちます。
WORKFLOW_CALL_MAX_DEPTH5ネストされたワークフロー呼び出しの最大深度。無限再帰を防止します。
MAX_VARIABLE_SIZE204800単一のワークフロー変数の最大サイズ(バイト、200 KB)。
WORKFLOW_FILE_UPLOAD_LIMIT101 つのファイルアップロードフィールド(ユーザー入力ノードのファイル変数など)における最大ファイル数設定の上限です。ノードパネルの最大ファイル数スライダーはこの値で制限されます。フィールドごとの設定をより大きくするには、この値を上げます。
WORKFLOW_NODE_EXECUTION_STORAGErdbmsワークフローノード実行レコードの保存先。rdbmsはすべてをデータベースに保存します。hybrid は新しいデータをオブジェクトストレージに保存し、両方から読み取ります。
DSL_EXPORT_ENCRYPT_DATASET_IDtrueDSL ファイルエクスポート時にデータセット ID を暗号化。クロス環境インポートを容易にするためにプレーン ID をエクスポートする場合は false に設定してください。

ワークフローストレージリポジトリ#

ワークフロー実行データを処理するバックエンド実装を選択します。デフォルトの SQLAlchemy リポジトリはすべてをデータベースに保存します。代替実装(例:Celery、Logstore)は異なるストレージ戦略に使用できます。

変数デフォルト値説明
CORE_WORKFLOW_EXECUTION_REPOSITORYcore.repositories.sqlalchemy_workflow_execution_repository.SQLAlchemyWorkflowExecutionRepositoryワークフロー実行レコードのリポジトリ実装。
CORE_WORKFLOW_NODE_EXECUTION_REPOSITORYcore.repositories.sqlalchemy_workflow_node_execution_repository.SQLAlchemyWorkflowNodeExecutionRepositoryワークフローノード実行レコードのリポジトリ実装。
API_WORKFLOW_RUN_REPOSITORYrepositories.sqlalchemy_api_workflow_run_repository.DifyAPISQLAlchemyWorkflowRunRepositoryワークフロー実行 API 操作のサービスレイヤーリポジトリ。
API_WORKFLOW_NODE_EXECUTION_REPOSITORYrepositories.sqlalchemy_api_workflow_node_execution_repository.DifyAPISQLAlchemyWorkflowNodeExecutionRepositoryワークフローノード実行 API 操作のサービスレイヤーリポジトリ。
LOOP_NODE_MAX_COUNT100ループノードの最大反復回数。無限ループを防止します。
MAX_PARALLEL_LIMIT10ワークフロー内の最大並列ブランチ数。

GraphEngine ワーカープール#

変数デフォルト値説明
GRAPH_ENGINE_MIN_WORKERS3GraphEngine インスタンスごとの最小ワーカー数。
GRAPH_ENGINE_MAX_WORKERS10GraphEngine インスタンスごとの最大ワーカー数。
GRAPH_ENGINE_SCALE_UP_THRESHOLD0空きワーカーを待つタスクをいくつまで許容するか。超えると GRAPH_ENGINE_MAX_WORKERS を上限にワーカーが追加されます。

デフォルトの 0 では、待ちタスクが発生した時点で即座に追加されます。値を上げると、短い滞留を許容してからスケールアップします。
GRAPH_ENGINE_SCALE_DOWN_IDLE_TIME5.0余剰ワーカーが削除されるまでのアイドル時間(秒)。

ワークフローログクリーンアップ#

変数デフォルト値説明
WORKFLOW_LOG_CLEANUP_ENABLEDfalse毎日午前 2:00 にワークフロー実行ログの自動クリーンアップを有効化。
WORKFLOW_LOG_RETENTION_DAYS30クリーンアップ前にワークフローログを保持する日数。
WORKFLOW_LOG_CLEANUP_BATCH_SIZE100クリーンアップバッチごとに処理するログエントリ数。システムパフォーマンスに基づいて調整してください。
WORKFLOW_LOG_CLEANUP_SPECIFIC_WORKFLOW_IDS(空)クリーンアップを制限するワークフロー ID のカンマ区切りリスト。空の場合、すべてのワークフローログがクリーンアップされます。

HTTP リクエストノード#

ワークフローで外部 API を呼び出すために使用される HTTP リクエストノードの設定です。

変数デフォルト値説明
HTTP_REQUEST_NODE_MAX_TEXT_SIZE1048576テキストレスポンスの最大サイズ(バイト、1 MB)。これを超えるレスポンスは切り詰められます。
HTTP_REQUEST_NODE_MAX_BINARY_SIZE10485760バイナリレスポンスの最大サイズ(バイト、10 MB)。
HTTP_REQUEST_NODE_SSL_VERIFYtrueSSL 証明書を検証。自己署名証明書でのテスト時に無効化します。
HTTP_REQUEST_MAX_CONNECT_TIMEOUT10ワークフローエディターでユーザーが設定できる最大接続タイムアウト(秒)。ノードごとのタイムアウトはこれを超えられません。
HTTP_REQUEST_MAX_READ_TIMEOUT600読み取りタイムアウトの上限(秒)。
HTTP_REQUEST_MAX_WRITE_TIMEOUT600書き込みタイムアウトの上限(秒)。

Webhook#

変数デフォルト値説明
WEBHOOK_REQUEST_BODY_MAX_SIZE10485760Webhook ペイロードの最大サイズ(バイト、10 MB)。これを超えるペイロードは 413 エラーで拒否されます。

SSRF 保護#

Dify からのすべてのアウトバウンド HTTP リクエスト(HTTP ノード、画像ダウンロードなど)は、プロキシを経由します。このプロキシは内部/プライベート IP 範囲へのリクエストをブロックし、Server-Side Request Forgery(SSRF)攻撃を防止します。

変数デフォルト値説明
SSRF_PROXY_HTTP_URLhttp://ssrf_proxy:3128HTTP リクエスト用 SSRF プロキシ URL。
SSRF_PROXY_HTTPS_URLhttp://ssrf_proxy:3128HTTPS リクエスト用 SSRF プロキシ URL。
SSRF_POOL_MAX_CONNECTIONS100SSRF HTTP クライアントプール内の最大同時接続数。
SSRF_POOL_MAX_KEEPALIVE_CONNECTIONS20SSRF プールで維持する最大アイドル接続数。
SSRF_POOL_KEEPALIVE_EXPIRY5.0アイドルな SSRF 接続が閉じられるまでの秒数。
RESPECT_XFORWARD_HEADERS_ENABLEDfalseリバースプロキシからの X-Forwarded-For/Proto/Port ヘッダーを信頼。単一の信頼されたリバースプロキシの背後でのみ有効化してください。それ以外では IP スプーフィングが可能になります。

エージェント設定#

変数デフォルト値説明
MAX_TOOLS_NUM10エージェントが同時に使用できる最大ツール数。
MAX_ITERATIONS_NUM99エージェント実行ごとの最大推論イテレーション数。無限エージェントループを防止します。

Web フロントエンドサービス#

これらの変数は Next.js Web フロントエンドコンテナのみで使用されます。Python バックエンドには影響しません。

変数デフォルト値説明
TEXT_GENERATION_TIMEOUT_MS60000ストリーミングテキスト生成 UI のフロントエンドタイムアウト。ストリームがこの時間以上停止した場合、UI はレンダリングを一時停止します。
ALLOW_INLINE_STYLESfalseユーザー生成の Markdown コンテンツでインライン style 属性と <style> ブロックの使用を許可します。セキュリティ上の理由(インラインスタイルはフィッシングに悪用される可能性があります)から、デフォルトでは無効です。信頼できるソースからのリッチなスタイリングが必要な場合にのみ有効化してください。
ALLOW_UNSAFE_DATA_SCHEMEfalsedata: スキームの URL レンダリングを許可。セキュリティのためデフォルトでは無効です。
MAX_TREE_DEPTH501 つの実行パスの最大ノード数。上限を超えるワークフローは公開できません。変更は新たに公開するワークフローにのみ適用されます。
MARKDOWN_FORM_FIELD_NAME_EXTRA_CHARS(空)チャット応答内の Markdown からアプリがレンダリングするフォームで、フィールドの name 属性に追加で許可する文字。

デフォルトでは、フィールド名は文字で始まり、文字・数字・アンダースコア・ハイフンのみ使用できます。それ以外の文字を名前に含むフィールドはレンダリングされません。

追加する文字は 1 つの文字列として設定します。半角と全角のどちらも使用できます。例:()!?
MARKDOWN_FORM_FIELD_NAME_MAX_LENGTH128チャット応答内の Markdown からアプリがレンダリングするフォームで、フィールドの name 属性に許可する最大長。これより長い名前のフィールドはレンダリングされません。名前に使える文字は MARKDOWN_FORM_FIELD_NAME_EXTRA_CHARS で決まり、この変数は長さを制限します。

生成されたフィールド名が上限を超え、レンダリングされたフォームにフィールドが欠ける場合は、この値を上げてください。正の整数を指定します。

NEXT_PUBLIC_ENABLE_FEATURE_PREVIEW#

デフォルト値:true

Go to Anything コマンドパレットの /create と /refine コマンドを有効にします。これらは自然言語の説明から Workflow や Chatflow アプリを生成・修正します。false に設定すると非表示になります。

新しい Agent#

新しい Agent は、Docker Compose デプロイで追加サービス(Agent バックエンド、サンドボックス、サンドボックス専用の外向きプロキシ)として動作します。いずれも docker compose up で自動的に起動します。この機能はデフォルトで有効で、設定の大部分は既存の Compose の値から導出されるため、通常は以下の変数だけを確認すれば十分です。

DIFY_AGENT_SERVER_SECRET_KEY#

デフォルト値:(.env.example に開発用キーを設定済み。本番環境では必ず置き換えてください)

Agent バックエンドが内部トークンの鍵を導出するためのルートシークレットです。サンドボックス内の Agent がバックエンドを呼び出す際のトークンもここから導出されます。

デフォルトは公開された開発用キーのため、デプロイはそのまま起動しますが、このキーを知っていれば誰でもトークンを偽造できます。本番環境で使用する前に置き換えてください。

値はパディングなしの base64url テキストで、デコードするとちょうど 32 バイトになる必要があります。値が不正な場合、Agent バックエンドは起動しません。次のコマンドで生成できます:

DIFY_AGENT_API_TOKEN#

デフォルト値:(.env.example に開発用トークンを設定済み。本番環境では必ず置き換えてください)

Dify API が Agent バックエンドの実行 API を呼び出す際に提示する Bearer トークンです。Compose は同じ値を両方のサービスに渡すため、一度設定するだけで一致が保たれます。

デフォルトは公開された開発用トークンのため、デプロイはそのまま起動します。ただし、Agent バックエンドに到達でき、トークンを知っていれば誰でも実行を開始できます。本番環境で使用する前に、独自のランダムな値に置き換えてください。

NEXT_PUBLIC_ENABLE_AGENT_V2#

デフォルト値:true

新しい Agent を Web UI に表示します。メインナビゲーションの Agents 項目と、ワークフローのノード一覧の新しい Agent ノードです。false にすると非表示になり、クラシック Agent ノードにフォールバックします。ENABLE_AGENT_V2 を置き換えるもので、こちらは引き続きフォールバックとして機能します。

UPLOAD_SKILL_FILE_SIZE_LIMIT#

デフォルト値:50

スキルパッケージ(.zip または .skill)の最大サイズを MB 単位で指定します。Agent に埋め込みスキルとしてアップロードする場合と、スキルライブラリへインポートする場合の両方に適用されます。上限を超えるパッケージはサイズエラーで拒否されます。

展開後の内容には、200 MB と 5000 ファイルという別の上限があります。スキルライブラリへインポートする場合、フォルダーも 5000 件の上限に含まれます。この環境変数では、どちらの上限も変更できません。100 より大きくする場合は、NGINX_CLIENT_MAX_BODY_SIZE も同じ値以上に設定してください。設定しないと、Nginx が 413 エラーでアップロードを拒否します。

AGENT_BACKEND_BASE_URL#

デフォルト値:http://agent_backend:5050

API が Agent バックエンドにアクセスするためのアドレスです。Docker Compose ではデフォルトのままにします。

その他の変数は、同梱のサービスを設定するか、既存の Compose 値から導出されるため、通常は変更不要です。

変数デフォルト値説明
DIFY_AGENT_REDIS_URL(空。REDIS_PASSWORD から導出)Agent バックエンドが実行状態を保存する Redis 接続。Compose のデフォルトは同梱の redis のデータベース 2。
DIFY_AGENT_REDIS_PREFIXdify-agentAgent バックエンドの Redis キーのプレフィックス。
DIFY_AGENT_SHUTDOWN_GRACE_SECONDS30Agent バックエンドの停止時に、進行中の実行の完了を待つ秒数。
DIFY_AGENT_RUN_RETENTION_SECONDS7200各 Agent 実行のレコードとイベントストリームを Redis に保持する秒数。最後の書き込みから数える(デフォルトは 2 時間)。値を下げると Redis メモリを早く解放できるが、切断後にイベントを再生できる期間も短くなる。
DIFY_AGENT_RUN_EVENT_STREAM_MAX_LENGTH5000各 Agent 実行の Redis ストリームに保持するイベント数の上限(概算)。値を下げると、1 回の実行が使う Redis メモリを減らせる。

上限に達すると、新しいイベントの書き込み時に古いイベントから削除する。削除したイベントは切断後に再生できない。
DIFY_AGENT_STREAM_TEXT_DELTA_COALESCING_ENABLEDtrueモデルが連続して出力するテキスト差分をまとめて、Redis に書き込み、配信する。有効のままにすると、Redis への書き込み回数とイベント数を減らせる。

差分を個別に配信するには false に設定する。ツール呼び出しなど、テキスト以外のイベントの内容と順序は変わらない。
DIFY_AGENT_STREAM_TEXT_DELTA_FLUSH_INTERVAL_MS100まとめたテキスト差分を配信する間隔の目安(ミリ秒)。値を下げるとテキストの更新頻度が上がる。上げると、1 回の配信量が増え、配信回数が減る。

厳密な時間制限ではない。DIFY_AGENT_STREAM_TEXT_DELTA_MAX_CHARS に達すると早めに配信する。最小値は 1。結合を無効にするには DIFY_AGENT_STREAM_TEXT_DELTA_COALESCING_ENABLED を false にする。
DIFY_AGENT_STREAM_TEXT_DELTA_MAX_CHARS4096まとめたテキスト差分を、フラッシュ間隔を待たずに配信する文字数のしきい値。値を下げると、小さなまとまりで早めに配信できる。

差分は分割せずに追加するため、文字数がこの値を超える場合がある。最小値は 1。
DIFY_AGENT_RUN_TIMEOUT_SECONDS3600Agent 実行 1 回のモデルとツール処理に適用される制限時間。超過した実行は agent_run_limit_exceeded で失敗する。旧 AGENT_BACKEND_RUN_TIMEOUT_SECONDS を置き換える。

API 側の APP_MAX_EXECUTION_TIME と WORKFLOW_MAX_EXECUTION_TIME(デフォルト 3600)をこの値より低く設定すると、実行が先に停止される。

e2b バックエンドではサンドボックス側の DIFY_AGENT_E2B_ACTIVE_TIMEOUT_SECONDS(上限 3600)も適用されるため、1 時間を超える値が効くのは local バックエンドのみ。
AGENT_BACKEND_STREAM_READ_TIMEOUT_SECONDS30Agent バックエンドへの SSE 接続 1 本あたりの読み取りタイムアウト。
AGENT_BACKEND_STREAM_MAX_RECONNECTS3ストリーム切断時、実行を失敗と判定するまでに API が再接続を試みる回数。
DIFY_AGENT_PLUGIN_DAEMON_URL(空。PLUGIN_DAEMON_URL から導出)Agent バックエンドがツール呼び出しに使うプラグインデーモンのアドレス。
DIFY_AGENT_PLUGIN_DAEMON_API_KEY(空。PLUGIN_DAEMON_KEY から導出)プラグインデーモンの認証情報。
DIFY_AGENT_OUTBOUND_HTTP_CONNECT_TIMEOUT10Agent サービスの外向き HTTP 呼び出し(ツールやプラグインの通信など)の接続タイムアウト(秒)。
DIFY_AGENT_OUTBOUND_HTTP_READ_TIMEOUT600読み取りタイムアウト(秒)。遅いツール応答や大きなダウンロードが完了できるように、デフォルトは長めに設定されている。
DIFY_AGENT_OUTBOUND_HTTP_WRITE_TIMEOUT30外向きリクエストの書き込みタイムアウト(秒)。
DIFY_AGENT_OUTBOUND_HTTP_POOL_TIMEOUT10接続プールの空き接続を待つ時間(秒)。
DIFY_AGENT_OUTBOUND_HTTP_MAX_CONNECTIONS100Agent サービスの外向き HTTP の接続プールサイズ。
DIFY_AGENT_OUTBOUND_HTTP_MAX_KEEPALIVE_CONNECTIONS20再利用のために保持するアイドル接続数。
DIFY_AGENT_OUTBOUND_HTTP_KEEPALIVE_EXPIRY30アイドル接続を閉じるまで保持する秒数。
DIFY_AGENT_INNER_API_URL(空。PLUGIN_DIFY_INNER_API_URL から導出)Agent バックエンドの内部呼び出し用 Dify API アドレス。
DIFY_AGENT_INNER_API_KEY(空。PLUGIN_DIFY_INNER_API_KEY から導出)API サービスの INNER_API_KEY_FOR_PLUGIN と一致させる(INNER_API_KEY ではない)。
DIFY_AGENT_LOCAL_SANDBOX_ENDPOINThttp://local_sandbox:5004同梱のサンドボックスサービスのアドレス。旧 DIFY_AGENT_SHELLCTL_ENTRYPOINT を置き換える。旧名も互換エイリアスとして引き続き使える。
DIFY_AGENT_LOCAL_SANDBOX_AUTH_TOKEN(空)Agent バックエンドからサンドボックスへの呼び出しを保護する任意の Bearer トークン。Compose は同じ値を両サービスに渡す。

旧 DIFY_AGENT_SHELLCTL_AUTH_TOKEN を置き換える。旧名も互換エイリアスとして引き続き使える。
EXPOSE_LOCAL_SANDBOX_PORT5004ソースコードからのデプロイ で使うミドルウェアスタックが Agent サンドボックスを公開するホスト側のポート。ソースから起動した Agent バックエンドは http://localhost:5004 でサンドボックスに到達できる。設定はそのスタックの middleware.env で行う。変更した場合は、Agent バックエンドの .env にある DIFY_AGENT_LOCAL_SANDBOX_ENDPOINT を新しいポートに合わせる。

ミドルウェアスタック専用。フル構成の Compose スタックでは、サンドボックスは内部ネットワークに留まる。
DIFY_AGENT_STUB_API_BASE_URLhttp://agent_backend:5050/agent-stubサンドボックス内の Agent が Agent バックエンドを呼び出すためのアドレス。
DIFY_AGENT_SANDBOX_FILES_BASE_URLhttp://api:5001サンドボックス内の Agent がファイル転送に使う Dify API アドレス。Docker Compose ではデフォルトのまま使う。リモートサンドボックスバックエンドでは、公開されている Dify アドレスを指定する。
AGENT_BACKEND_BINDING_FILE_DOWNLOAD_TIMEOUT_SECONDS240API が Agent のサンドボックスからファイルを取得する際の待ち時間。超過すると転送は失敗する。Agent 側の DIFY_AGENT_BINDING_FILE_DOWNLOAD_COMMAND_TIMEOUT_SECONDS より高く保つこと。
AGENT_BACKEND_HOME_SNAPSHOT_TIMEOUT_SECONDS45home snapshot の転送を伴う Agent バックエンド呼び出し(スナップショットの取得・削除、スナップショットを復元する実行の開始)を API が待つ時間。

home 環境が大きい Agent でビルドの適用や実行開始が失敗する場合は、値を大きくしてください。
DIFY_AGENT_BINDING_FILE_DOWNLOAD_COMMAND_TIMEOUT_SECONDS210そのファイルを出力するサンドボックスコマンドの実行時間の上限。デフォルトは API 側のタイムアウトより低く、Agent 自身のエラーが先に表面化するようにしている。
DIFY_AGENT_STUB_UPLOAD_FILE_SIZE_LIMIT50サンドボックス内の Agent が Dify にアップロードする 1 ファイルの上限サイズ(MiB)。返信のために生成したファイルなどが対象。
SHELLCTL_ENABLE_PATH_ISOLATIONtrueカーネルレベルの Landlock でサンドボックスが読み書きできるパスを制限する。Linux 5.13 以降が必要。未対応のカーネルでは警告を記録し、分離なしで実行される。docker/envs/core-services/local-sandbox.env で設定する。.env の値はサンドボックスコンテナには渡されない。
DIFY_AGENT_SHELL_REDACT_PATTERNS(空)シェル出力を Agent が読む前にマスクする正規表現の JSON 配列。API キーなどの機密を保護する。Agent の内部トークンは常にマスクされる。

DIFY_AGENT_RUNTIME_BACKEND#

デフォルト値:local

Agent のサンドボックスをどこで実行するかを選択します。デフォルトの local は同梱のサンドボックスコンテナを使います。e2b に設定すると、各 Agent のサンドボックスを E2B のクラウド VM で実行でき、同梱コンテナより強い分離が得られます。

e2b バックエンドには専用の変数グループがあり、docker/docker-compose.e2b.yaml オーバーレイが Compose 構成を調整します:

変数デフォルト説明
DIFY_AGENT_E2B_API_KEY(空;E2B_API_KEY/E2B_API_TOKEN にフォールバック)E2B アカウントキー。e2b バックエンドでは必須。
DIFY_AGENT_E2B_TEMPLATEdifys-default-team/dify-agent-local-sandboxAgent が実行される E2B サンドボックステンプレート。
EXPOSE_AGENT_BACKEND_PORT15050docker-compose.e2b.yaml オーバーレイが Agent バックエンド(コンテナポート 5050)を公開するホスト側のポート。ホスト側で 15050 が使用中の場合は別のポートに変更する。
DIFY_AGENT_E2B_ACTIVE_TIMEOUT_SECONDS36001 つの E2B サンドボックスがアクティブでいられる時間。Agent の 1 回の実行全体に及ぶ。3600 が上限で、それより大きい値は拒否される。

DIFY_AGENT_RUN_TIMEOUT_SECONDS 以上に設定すること。サンドボックスのアクティブ時間が実行の許容時間より短いと、実行は制限内であってもサンドボックスを失う。
DIFY_AGENT_E2B_SHELLCTL_PORT5004E2B VM 内でサンドボックス制御サービスが待ち受けるポート。

データベースサービス#

Docker Compose でデータベースと Redis のコンテナを直接設定します。「ミドルウェアスタック」と記した行は、ソースコードからのデプロイ で起動するスタックにのみ適用され、そのスタックの middleware.env で設定します。フル構成の Compose スタックでは、これらのサービスは内部ネットワークに留まります。

変数デフォルト値説明
PGDATA/var/lib/postgresql/data/pgdataコンテナ内の PostgreSQL データディレクトリ。
MYSQL_HOST_VOLUME./volumes/mysql/dataMySQL データボリュームとしてマウントされるホストパス。
PGDATA_HOST_VOLUME./volumes/db/dataPostgreSQL データボリュームとしてマウントされるホストパス。ミドルウェアスタック。フル構成の Compose スタックは ./volumes/db/data を直接マウントする。
REDIS_HOST_VOLUME./volumes/redis/dataRedis データボリュームとしてマウントされるホストパス。ミドルウェアスタック。
EXPOSE_POSTGRES_PORT5432ミドルウェアスタックが PostgreSQL を公開するホスト側のポート。
EXPOSE_MYSQL_PORT3306ミドルウェアスタックが MySQL を公開するホスト側のポート。
EXPOSE_REDIS_PORT6379ミドルウェアスタックが Redis を公開するホスト側のポート。

サンドボックスサービス#

サンドボックスは、コードノード(Python、JavaScript、Jinja2)を実行するための隔離されたサービスです。セキュリティのためにネットワークアクセスを無効化できます。

変数デフォルト値説明
SANDBOX_API_KEYdify-sandboxサンドボックス認証用 API キー。API サービスの CODE_EXECUTION_API_KEY と一致する必要があります。
SANDBOX_GIN_MODEreleaseサンドボックスサービスモード:releaseまたは debug。
SANDBOX_WORKER_TIMEOUT15単一コード実行の最大実行時間(秒)。
SANDBOX_ENABLE_NETWORKtrueコードからのアウトバウンド HTTP リクエストを許可。コードノードが外部サービスにアクセスすることを防止するには無効化してください。
SANDBOX_HTTP_PROXYhttp://ssrf_proxy:3128ネットワーク有効時の SSRF 保護用 HTTP プロキシ。
SANDBOX_HTTPS_PROXYhttp://ssrf_proxy:3128SSRF 保護用 HTTPS プロキシ。
SANDBOX_PORT8194サンドボックスサービスのポート。

Nginx リバースプロキシ#

変数デフォルト値説明
NGINX_SERVER_NAME_Nginx サーバー名。_ は任意のホスト名に一致します。
NGINX_HTTPS_ENABLEDfalseHTTPS を有効化。trueの場合、SSL 証明書と鍵を ./nginx/ssl/ に配置してください。
NGINX_PORT80HTTP ポート。
NGINX_SSL_PORT443HTTPS ポート(NGINX_HTTPS_ENABLED=true の場合のみ使用)。
NGINX_SSL_CERT_FILENAMEdify.crt./nginx/ssl/ 内の SSL 証明書ファイル名。
NGINX_SSL_CERT_KEY_FILENAMEdify.key./nginx/ssl/ 内の SSL 秘密鍵ファイル名。
NGINX_SSL_PROTOCOLSTLSv1.2 TLSv1.3許可される TLS プロトコルバージョン。
NGINX_WORKER_PROCESSESautoNginx ワーカープロセス数。auto は CPU コア数に一致します。
NGINX_CLIENT_MAX_BODY_SIZE100M最大リクエストボディサイズ。プロキシレベルのファイルアップロード制限に影響します。
NGINX_KEEPALIVE_TIMEOUT65キープアライブタイムアウト(秒)。
NGINX_PROXY_READ_TIMEOUT3600sプロキシ読み取りタイムアウト。長時間の SSE ストリームをサポートするため高く設定(1 時間)されています。
NGINX_PROXY_SEND_TIMEOUT3600sプロキシ送信タイムアウト。
NGINX_ENABLE_CERTBOT_CHALLENGEfalse/.well-known/acme-challenge/ で Let’s Encrypt ACME チャレンジリクエストを受け入れます。自動証明書更新のために有効化してください。
NGINX_SOCKET_IO_UPSTREAMapi_websocket:5001Nginx が /socket.io/ トラフィックを転送する上流(upstream)です。デフォルトでは collaboration プロファイルで起動する専用の api_websocket コンテナを指します。Docker Compose の外で WebSocket サービスを実行する場合のみ変更してください。
Note

HTTPS を有効化した後、 共通変数 の URL 変数(例:CONSOLE_API_URL、CONSOLE_WEB_URL)も https:// を使用するように更新してください。

Certbot 設定#

変数デフォルト値説明
CERTBOT_EMAIL(空)Let’s Encrypt の証明書通知に必要なメールアドレス。
CERTBOT_DOMAIN(空)SSL 証明書のドメイン名。
CERTBOT_OPTIONS(空)追加の certbot CLI オプション(例:--force-renewal、--dry-run)。

SSRF プロキシ#

内部/プライベートネットワークへのリクエストをブロックする Squid ベースの SSRF プロキシコンテナの設定です。

変数デフォルト値説明
SSRF_HTTP_PORT3128プロキシのリッスンポート。
EXPOSE_SSRF_PROXY_PORT3128ソースコードからのデプロイ で使うミドルウェアスタックがプロキシの SSRF_HTTP_PORT を公開するホスト側のポート。そのスタックの middleware.env で設定する。フル構成の Compose スタックではプロキシは内部ネットワークに留まる。
EXPOSE_SANDBOX_PORT8194ミドルウェアスタックがプロキシのサンドボックス用ポート(SSRF_SANDBOX_PROXY_PORT)を公開するホスト側のポート。ソースから起動したコードはプロキシ経由でサンドボックスに到達する。
SSRF_COREDUMP_DIR/var/spool/squidコアダンプディレクトリ。
SSRF_SANDBOX_PROXY_PORT8194SSRF プロキシがサンドボックスサービスへの送信トラフィックをリバースプロキシするためにリッスンするポート。
SSRF_SANDBOX_PROXY_HOSTsandboxSSRF プロキシの転送先となるサンドボックスサービスのホスト名。
SSRF_PROXY_ALLOW_PRIVATE_IPS(空)プロキシ経由を許可する非公開 IP または CIDR 範囲のリスト(カンマまたはスペース区切り)。プライベートネットワークへのデフォルトのブロックを上書きします。HTTP またはツールのリクエストが特定の内部ホストへ到達する必要がある場合に使用します。
SSRF_PROXY_ALLOW_PRIVATE_DOMAINS(空)プロキシ経由を許可する内部ドメインのリスト(カンマまたはスペース区切り)。プライベートネットワークへのデフォルトのブロックを上書きします。
SSRF_DEFAULT_TIME_OUT5プロキシされたリクエストのデフォルト全体タイムアウト(秒)。
SSRF_DEFAULT_CONNECT_TIME_OUT5デフォルト接続タイムアウト(秒)。
SSRF_DEFAULT_READ_TIME_OUT5デフォルト読み取りタイムアウト(秒)。
SSRF_DEFAULT_WRITE_TIME_OUT5デフォルト書き込みタイムアウト(秒)。

Docker Compose#

変数デフォルト値説明
COMPOSE_PROFILES${VECTOR_STORE:-weaviate},${DB_TYPE:-postgresql},collaboration起動するサービスコンテナを選びます。デフォルトでは、ベクトルストア、データベース、collaboration プロファイルを起動します。DB_TYPE=mysql なら MySQL を使います。collaboration を削除すると、api_websocket コンテナを起動しません。
EXPOSE_NGINX_PORT80Nginx HTTP にマッピングされるホストポート。
EXPOSE_NGINX_SSL_PORT443Nginx HTTPS にマッピングされるホストポート。

モデルプロバイダーとツールの表示順設定#

アプリインターフェースで利用可能なツールとモデルプロバイダーおよびその表示順をカスタマイズします。カンマ区切りの値を使用し、項目間にスペースを入れないでください。

変数デフォルト値説明
POSITION_TOOL_PINS(空)特定のツールをリストの先頭に固定。例:bing,google。
POSITION_TOOL_INCLUDES(空)リストされたツールのみ表示。未設定の場合、すべてのツールが利用可能です。
POSITION_TOOL_EXCLUDES(空)特定のツールを非表示(固定されたツールには影響しません)。
POSITION_PROVIDER_PINS(空)特定のモデルプロバイダーを先頭に固定。例:openai,anthropic。
POSITION_PROVIDER_INCLUDES(空)リストされたプロバイダーのみ表示。未設定の場合、すべてのプロバイダーが利用可能です。
POSITION_PROVIDER_EXCLUDES(空)特定のプロバイダーを非表示(固定されたプロバイダーには影響しません)。

プラグインデーモン設定#

プラグインデーモンは、プラグインのライフサイクル(インストール、実行、アップグレード)を管理する独立したサービスです。API は HTTP 経由で通信します。

変数デフォルト値説明
PLUGIN_DAEMON_URLhttp://plugin_daemon:5002プラグインデーモンサービス URL。
PLUGIN_DAEMON_KEY(自動生成)プラグインデーモンの認証キー。
PLUGIN_DAEMON_PORT5002プラグインデーモンのリッスンポート。
DB_SSL_MODEdisableプラグインデーモンが PostgreSQL に接続する際の sslmode。データベースが TLS を必須とする場合は require にする。.env.example には項目がない。フル構成の Compose スタックでは docker/.env、ミドルウェアスタックでは middleware.env で設定する。
PLUGIN_DAEMON_TIMEOUT600.0すべてのプラグインデーモンリクエスト(インストール、実行、リスト表示)のタイムアウト(秒)。
PLUGIN_MAX_PACKAGE_SIZE52428800プラグインパッケージの最大サイズ(バイト、50 MB)。マーケットプレイスダウンロード時に検証されます。
PLUGIN_MAX_FILE_SIZE52428800プラグインが Dify に返す単一ファイルの最大サイズ(バイト、50 MB)。ツールプラグインが生成した画像やドキュメントの出力などが対象です。上限を超えるファイルは「file is too large」エラーで呼び出しが失敗します。
PLUGIN_MODEL_SCHEMA_CACHE_TTL3600プラグインモデルスキーマのキャッシュ期間(秒)。繰り返しの参照を削減します。
PLUGIN_MODEL_PROVIDERS_CACHE_ENABLEDtrue各テナントのプラグインモデルプロバイダー一覧を Redis にキャッシュするかどうか。プラグインを外部システムからインストールしていて、テナントのプラグイン変更時にこのデプロイのキャッシュを無効化できない場合は無効にします。
PLUGIN_MODEL_PROVIDERS_CACHE_TTL86400各テナントのプラグインモデルプロバイダー一覧を Redis にキャッシュする期間(秒)。デフォルトは 24 時間。テナントがプラグインをインストール、アンインストール、またはアップグレードすると、Dify はこのキャッシュを無効化します。
PLUGIN_DIFY_INNER_API_KEY(自動生成)プラグインデーモンが Dify API にコールバックする際に使用する API キー。プラグインデーモンサービス設定の DIFY_INNER_API_KEY と一致する必要があります。
INNER_API_KEY_FOR_PLUGIN(env サンプルにデフォルト値あり。本番では必ず変更)同じシークレットの API サービス側の直接名(docker/envs/core-services/ 由来)。Compose 構成では PLUGIN_DIFY_INNER_API_KEY が両側に反映されます。
API はプラグインからのコールバック(モデル呼び出し、ツール呼び出し、ファイル転送)ごとにこのキーを検証します。不一致だとこれらの呼び出しは失敗しますが、プラグインのインストールは動作します。
デフォルト値は Dify リポジトリで公開されており、コールバック API の唯一の認証手段のため、必ず変更してください。
PLUGIN_DIFY_INNER_API_URLhttp://api:5001プラグインデーモンがコールバックする内部 API URL。
PLUGIN_DEBUGGING_HOST0.0.0.0プラグインリモートデバッグ接続のホスト。
PLUGIN_DEBUGGING_PORT5003プラグインリモートデバッグ接続のポート。
PLUGIN_REMOTE_INSTALL_HOSTlocalhostコンソールがプラグイン開発者に提示するリモートデバッグ接続先。表示専用で、デーモンの待ち受けには影響しません。
開発者が到達できるホスト名を設定してください(Compose 構成では EXPOSE_PLUGIN_DEBUGGING_HOST)。デフォルトの localhost は Docker ホスト上で開発する場合のみ有効です。
PLUGIN_REMOTE_INSTALL_PORT5003提示されるデバッグ接続先のポート部分。
デーモンが公開するデバッグポート(EXPOSE_PLUGIN_DEBUGGING_PORT)と一致している必要があります。Compose 構成では同じ変数から両方が設定されます。
MARKETPLACE_ENABLEDtrueDify Marketplace のプラグイン機能を有効または無効にします。無効にすると、Marketplace プラグインの閲覧・インストール画面への導線が非表示になります。API は Marketplace からのプラグインのインストールとアップグレードを拒否します。定期アップグレードチェック(ENABLE_CHECK_UPGRADABLE_PLUGIN_TASK)も停止します。

テンプレートのインポート処理自体には影響しません。ただし、インポートしたテンプレートが未インストールの Marketplace プラグインに依存する場合があります。Marketplace が無効な間は、その依存プラグインをインストールできません。インストール済みのプラグインはそのまま動作します。インストールポリシーで許可されている場合は、GitHub やローカルパッケージからも引き続きインストールできます。
MARKETPLACE_API_URLhttps://marketplace.dify.aiプラグインとテンプレートの閲覧・ダウンロード、プラグインのアップグレード確認に使う Marketplace API エンドポイント。

Dify API サービス、バックグラウンドワーカー、Web サービス、ユーザーのブラウザでこの URL を使用します。各実行環境からアクセスできる必要があります。
MARKETPLACE_URL(空。Compose 構成では https://marketplace.dify.ai にフォールバック)Marketplace リンクのベース URL。プラグイン詳細ページや「統合」ページの Marketplace 入口に使用します。Dify は Creator Center のガイドリンク生成にもこの値を使用します。

MARKETPLACE_API_URL とは用途が異なり、後者は Marketplace のデータとパッケージを提供する API エンドポイントです。
FORCE_VERIFYING_SIGNATUREtrueプラグインインストール前に有効な署名を要求。改ざんまたは未署名のパッケージのインストールを防止します。
PLUGIN_MAX_EXECUTION_TIMEOUT600プラグイン実行タイムアウト(秒、プラグインデーモン側)。API 側の PLUGIN_DAEMON_TIMEOUT と一致させる必要があります。
PIP_MIRROR_URL(空)プラグインデーモンがプラグインの依存関係をインストールする際に使用するカスタム PyPI ミラー URL。高速インストールやエアギャップ環境に有用です。

Creator Center 設定#

Creator Center(creators.dify.ai)は、Dify アプリをテンプレートとして提出する窓口です。提出されたテンプレートはレビューを経て Dify マーケットプレイスに掲載されます。Dify コンソールから Creator Center を開くと、新しいブラウザタブに表示されます。

コンソールの マーケットプレイスに公開 アクションは、アプリの DSL(YAML 形式のアプリ定義)を Creator Center にアップロードします。ユーザーは Creator Center で提出を完了します。手順は アプリをマーケットプレイスに公開 を参照してください。

変数デフォルト値説明
CREATORS_PLATFORM_FEATURES_ENABLEDtrueアプリの「公開する」パネルに マーケットプレイスに公開 アクションを表示するかどうかを制御します。false に設定するとアクションが非表示になり、対応するコンソール API は 403 を返します。テンプレートを外部に提出する一発経路をユーザーに提供したくないデプロイで有用です。
CREATORS_PLATFORM_API_URLhttps://creators.dify.aiCreator Center サービスのベース URL。マーケットプレイスに公開 は、API サービスからこのアドレスへアプリの DSL をアップロードします。ユーザーのブラウザも同じアドレスにアクセスして提出を完了するため、どちらからも到達できる必要があります。
CREATORS_PLATFORM_OAUTH_CLIENT_ID(空)Creator Center へのパスワードレス SSO に使用する OAuth クライアント ID。セルフホスト環境では空のままにしてください。空でも公開できますが、ログインしていないユーザーは Creator Center に手動でログインする必要があります。デプロイの OAuth サーバーに未登録の ID を設定すると、マーケットプレイスに公開 が失敗します。

OTLP / OpenTelemetry 設定#

OpenTelemetry は分散トレーシングとメトリクス収集を提供します。有効時、Dify は Flask を計装し、テレメトリデータを OTLP コレクターにエクスポートします。

変数デフォルト値説明
ENABLE_OTELfalseOpenTelemetry 計装のマスタースイッチ。
OTLP_TRACE_ENDPOINT(空)専用トレースエンドポイント URL。未設定の場合、{OTLP_BASE_ENDPOINT}/v1/traces にフォールバックします。
OTLP_METRIC_ENDPOINT(空)専用メトリクスエンドポイント URL。未設定の場合、{OTLP_BASE_ENDPOINT}/v1/metrics にフォールバックします。
OTLP_BASE_ENDPOINThttp://localhost:4318ベース OTLP コレクター URL。特定のトレース/メトリクスエンドポイントが設定されていない場合のフォールバックとして使用されます。
OTLP_API_KEY(空)OTLP 認証用 API キー。Authorization: Bearer ヘッダーとして送信されます。
OTEL_EXPORTER_TYPEotlpエクスポータータイプ。otlp はコレクターにエクスポートします。その他の値はコンソールエクスポーター(デバッグ用)を使用します。
OTEL_EXPORTER_OTLP_PROTOCOL(空)OTLP エクスポートのプロトコル。grpc は gRPC エクスポーターを使用します。それ以外は HTTP を使用します。
OTEL_SAMPLING_RATE0.1トレースするリクエストの割合(0.1 = 10%)。高トラフィックの本番環境ではオーバーヘッドを削減するために値を小さくします。
OTEL_BATCH_EXPORT_SCHEDULE_DELAY5000バッチエクスポート間の遅延(ミリ秒)。
OTEL_MAX_QUEUE_SIZE2048ドロップ前のキューに入れられる最大スパン数。
OTEL_MAX_EXPORT_BATCH_SIZE512エクスポートバッチごとの最大スパン数。
OTEL_METRIC_EXPORT_INTERVAL60000メトリクスエクスポート間隔(ミリ秒)。
OTEL_BATCH_EXPORT_TIMEOUT10000バッチスパンエクスポートのタイムアウト(ミリ秒)。
OTEL_METRIC_EXPORT_TIMEOUT30000メトリクスエクスポートのタイムアウト(ミリ秒)。

その他#

変数デフォルト値説明
CSP_WHITELIST(空)Content Security Policy ヘッダーで許可する追加ドメイン。
NEXT_TELEMETRY_DISABLED01 にすると Next.js の匿名テレメトリを無効にする。Compose スタックではデフォルトで有効のまま。
ALLOW_EMBEDfalseDify ページの iframe 埋め込みを許可。falseの場合、クリックジャッキングを防止するため X-Frame-Options: DENY を設定します。
SWAGGER_UI_ENABLEDfalseSWAGGER_UI_PATH で Swagger UI を公開し、API ドキュメントをブラウジングできるようにします。Swagger エンドポイントは認証をバイパスします。
SWAGGER_UI_PATH/swagger-ui.htmlSwagger UI の URL パス。
MAX_SUBMIT_COUNT100並列ワークフローノード実行に使用されるスレッドプール内の最大同時タスク送信数。
TENANT_ISOLATED_TASK_CONCURRENCY1テナントごとに同時処理されるドキュメントインデックスまたは RAG パイプラインタスク数。高速なインデックス作成のために増加できますが、データベース負荷が増加します。
DIFY_ENV_NACOS_REQUEST_TIMEOUT10.0Nacos 設定サーバーへの HTTP リクエストのタイムアウト(秒)。
DIFY_ENV_NACOS_CONNECT_TIMEOUT3.0Nacos 設定サーバーへの接続確立のタイムアウト(秒)。

定期タスク設定#

Dify は Celery Beat を使用して、設定可能なスケジュールでバックグラウンドメンテナンスタスクを実行します。

変数デフォルト値説明
ENABLE_CLEAN_EMBEDDING_CACHE_TASKfalse毎日午前 2:00 に期限切れのエンベディングキャッシュレコードをデータベースから削除します。データベースサイズを管理します。
ENABLE_CLEAN_UNUSED_DATASETS_TASKfalse保持期間内にアクティビティがなかったナレッジベースのドキュメントを無効化します。毎日午前 3:00 に実行されます。
ENABLE_CLEAN_MESSAGESfalse毎日午前 4:00 に SANDBOX_EXPIRED_RECORDS_RETENTION_DAYS の保持期間を超えた会話メッセージを削除します。
ENABLE_MAIL_CLEAN_DOCUMENT_NOTIFY_TASKfalseクリーンアップタスクによりドキュメントが自動無効化されたナレッジベースのリストをワークスペースオーナーにメールで送信します。毎週月曜日午前 10:00 に実行されます。
ENABLE_DATASETS_QUEUE_MONITORfalseRedis 内のデータセット処理キューのバックログを監視します。キューがしきい値を超えるとメールアラートを送信します。
QUEUE_MONITOR_INTERVAL30キューを確認する頻度(分)。
QUEUE_MONITOR_THRESHOLD200アラートメールをトリガーするキューサイズ。
QUEUE_MONITOR_ALERT_EMAILS(空)キューアラートを受信するメールアドレス(カンマ区切り)。
ENABLE_CHECK_UPGRADABLE_PLUGIN_TASKtrue15 分ごとにマーケットプレイスで新しいプラグインバージョンを確認します。各テナントの自動アップグレードスケジュールに基づいてアップグレードタスクをディスパッチします。
ENABLE_WORKFLOW_SCHEDULE_POLLER_TASKtrueスケジュールされたワークフロー実行を確認してトリガーするワークフロースケジュールポーラーを有効化。
WORKFLOW_SCHEDULE_POLLER_INTERVAL1期日のスケジュール済みワークフローを確認する頻度(分)。
WORKFLOW_SCHEDULE_POLLER_BATCH_SIZE100ポーリングサイクルごとに取得する最大期日スケジュール数。
WORKFLOW_SCHEDULE_MAX_DISPATCH_PER_TICK0サーキットブレーカー:ティックごとにディスパッチされる最大スケジュール数。0 は無制限を意味します。
ENABLE_WORKFLOW_RUN_CLEANUP_TASKfalseワークフロー実行レコードの自動クリーンアップを有効化。
ENABLE_CREATE_TIDB_SERVERLESS_TASKfalseベクトルデータベースプーリング用に TiDB Serverless クラスターを事前作成。
ENABLE_UPDATE_TIDB_SERVERLESS_STATUS_TASKfalseTiDB Serverless クラスターのステータスを定期的に更新。
ENABLE_HUMAN_INPUT_TIMEOUT_TASKtrue期限切れの人間の入力フォームを確認し、タイムアウトしたワークフローを再開または停止します。
HUMAN_INPUT_TIMEOUT_TASK_INTERVAL1期限切れの人間の入力フォームを確認する頻度(分)。
ENABLE_CONVERSATION_CLEANUP_TASKtrue会話削除のセーフティネット。削除された会話は即座に見えなくなり、メッセージと会話中にツールが生成したファイルはバックグラウンドジョブが削除します。エンドユーザーがアップロードしたファイルは保持されます。

このタスクは、クリーンアップが実行されなかった会話を定期的に再処理し、データの残留を防ぎます。
CONVERSATION_CLEANUP_TASK_INTERVAL5タスクの実行頻度(分)。
CONVERSATION_CLEANUP_BATCH_SIZE1001 回のスイープで再処理する会話の最大数。

レコード保持とクリーンアップ#

古いメッセージとワークフロー実行レコードの定期クリーンアップを制御します。保持期間を超えたレコードはバッチ単位で削除されます。

変数デフォルト値説明
SANDBOX_EXPIRED_RECORDS_RETENTION_DAYS30この日数を超えたレコードが削除対象になります。
SANDBOX_EXPIRED_RECORDS_CLEAN_BATCH_SIZE1000クリーンアップバッチごとに処理されるレコード数。
SANDBOX_EXPIRED_RECORDS_CLEAN_BATCH_MAX_INTERVAL200データベース負荷を軽減するためのクリーンアップバッチ間の最大ランダム遅延(ミリ秒)。
SANDBOX_EXPIRED_RECORDS_CLEAN_TASK_LOCK_TTL90000同時クリーンアップタスク実行を防止する Redis ロック TTL(秒、約 25 時間)。

Aliyun SLS ログストア設定#

データベースの代わりにワークフロー実行ログを外部に保存するための Aliyun Simple Log Service とのオプション統合。ログストア実装を使用するようにリポジトリ設定変数を設定して有効化します。

変数デフォルト値説明
ALIYUN_SLS_ACCESS_KEY_ID(空)SLS 認証用 Aliyun access key ID。
ALIYUN_SLS_ACCESS_KEY_SECRET(空)SLS 認証用 Aliyun access key secret。
ALIYUN_SLS_ENDPOINT(空)SLS サービスエンドポイント URL(例:cn-hangzhou.log.aliyuncs.com)。
ALIYUN_SLS_REGION(空)Aliyun リージョン(例:cn-hangzhou)。
ALIYUN_SLS_PROJECT_NAME(空)ワークフローログ保存用 SLS プロジェクト名。
ALIYUN_SLS_LOGSTORE_TTL365SLS ログストアのデータ保持期間(日)。永久保存には 3650 を使用してください。
LOGSTORE_DUAL_WRITE_ENABLEDfalseワークフローデータを SLS と PostgreSQL の両方に同時書き込み。SLS への移行時に有用です。
LOGSTORE_DUAL_READ_ENABLEDtrueSLS が結果を返さない場合に PostgreSQL にフォールバック。履歴データがデータベースにのみ存在する移行時に有用です。
LOGSTORE_ENABLE_PUT_GRAPH_FIELDtrueSLS ログに完全なワークフローグラフ定義を含めます。大きなグラフデータを省略してストレージを削減するには false に設定してください。

イベントバス設定#

API と Celery ワーカー間の Redis ベースのイベント転送です。

変数デフォルト値説明
EVENT_BUS_REDIS_URL(空)イベントストリーミング用 Redis 接続 URL。空の場合、メイン Redis 接続設定を使用します。
EVENT_BUS_REDIS_CHANNEL_TYPEpubsubトランスポートタイプ。pubsub は at-most-once 配信、sharded はシャード Pub/Sub、streams は Redis Streams(at-least-once 配信)です。
EVENT_BUS_REDIS_USE_CLUSTERSfalseイベントバスの Redis Cluster モードを有効化。大規模デプロイメントに推奨されます。

ベクトルデータベースサービス設定#

ベクトルデータベースコンテナ自体の設定です(Dify クライアント接続ではありません)。選択した VECTOR_STORE の変数のみが関連します。

Weaviate サービス
変数デフォルト値説明
WEAVIATE_PERSISTENCE_DATA_PATH/var/lib/weaviateコンテナ内のデータ永続化ディレクトリ。
WEAVIATE_QUERY_DEFAULTS_LIMIT25デフォルトのクエリ結果制限。
WEAVIATE_AUTHENTICATION_ANONYMOUS_ACCESS_ENABLEDtrue匿名アクセスを許可。
WEAVIATE_DEFAULT_VECTORIZER_MODULEnoneデフォルトのベクトライザーモジュール。
WEAVIATE_CLUSTER_HOSTNAMEnode1クラスターノードのホスト名。
WEAVIATE_AUTHENTICATION_APIKEY_ENABLEDtrueAPI キー認証を有効化。
WEAVIATE_AUTHENTICATION_APIKEY_ALLOWED_KEYS(自動生成)許可される API キー。クライアント設定の WEAVIATE_API_KEY と一致する必要があります。
WEAVIATE_AUTHENTICATION_APIKEY_USERShello@dify.aiAPI キーに関連付けられたユーザー。
WEAVIATE_AUTHORIZATION_ADMINLIST_ENABLEDtrue管理者リスト認可を有効化。
WEAVIATE_AUTHORIZATION_ADMINLIST_USERShello@dify.ai管理者ユーザー。
WEAVIATE_DISABLE_TELEMETRYfalseWeaviate テレメトリを無効化。
WEAVIATE_ENABLE_TOKENIZER_GSEfalseGSE トークナイザーを有効化(中国語)。
WEAVIATE_ENABLE_TOKENIZER_KAGOME_JAfalseKagome トークナイザーを有効化(日本語)。
WEAVIATE_ENABLE_TOKENIZER_KAGOME_KRfalseKagome トークナイザーを有効化(韓国語)。
WEAVIATE_HOST_VOLUME./volumes/weaviateWeaviate データボリュームとしてマウントされるホストパス。ミドルウェアスタック(ソースコードからのデプロイ)。そのスタックの middleware.env で設定する。フル構成の Compose スタックは ./volumes/weaviate を直接マウントする。
EXPOSE_WEAVIATE_PORT8080ソースコードからのデプロイ で使うミドルウェアスタックが Weaviate REST API を公開するホスト側のポート。ソースから起動した Dify は http://localhost:8080 で到達できる。

ホスト側で 8080 が使用中の場合は別のポートに変更し、WEAVIATE_ENDPOINT を新しいポートに合わせる。ミドルウェアスタック専用。フル構成の Compose スタックでは Weaviate は内部ネットワークに留まる。
EXPOSE_WEAVIATE_GRPC_PORT50051ミドルウェアスタックが Weaviate gRPC を公開するホスト側のポート。grpc://localhost:50051 で到達できる。

変更した場合は WEAVIATE_GRPC_ENDPOINT を新しいポートに合わせる。
Milvus サービス(ETCD + MinIO)
変数デフォルト値説明
ETCD_AUTO_COMPACTION_MODErevisionETCD 自動コンパクションモード。
ETCD_AUTO_COMPACTION_RETENTION1000リビジョン数での自動コンパクション保持。
ETCD_QUOTA_BACKEND_BYTES4294967296バックエンドクォータ(バイト、4 GB)。
ETCD_SNAPSHOT_COUNT50000スナップショットをトリガーする変更数。
ETCD_ENDPOINTSetcd:2379ETCD サービスエンドポイント。
MINIO_ACCESS_KEYminioadminMinIO access key。
MINIO_SECRET_KEYminioadminMinIO secret key。
MINIO_ADDRESSminio:9000MinIO サービスアドレス。
MILVUS_AUTHORIZATION_ENABLEDtrueMilvus セキュリティ認可を有効化。
OpenSearch サービス
変数デフォルト値説明
OPENSEARCH_DISCOVERY_TYPEsingle-nodeクラスター形成のディスカバリタイプ。
OPENSEARCH_BOOTSTRAP_MEMORY_LOCKtrue起動時にメモリをロックしてスワッピングを防止。
OPENSEARCH_JAVA_OPTS_MIN512m最小 JVM ヒープサイズ。
OPENSEARCH_JAVA_OPTS_MAX1024m最大 JVM ヒープサイズ。
OPENSEARCH_INITIAL_ADMIN_PASSWORDQazwsxedc!@#123OpenSearch サービスの初期管理者パスワード。
OPENSEARCH_MEMLOCK_SOFT-1ソフトメモリロック制限(-1 は無制限)。
OPENSEARCH_MEMLOCK_HARD-1ハードメモリロック制限(-1 は無制限)。
OPENSEARCH_NOFILE_SOFT65536ソフトファイルディスクリプタ制限。
OPENSEARCH_NOFILE_HARD65536ハードファイルディスクリプタ制限。
PGVector / PGVecto.RS サービス
変数デフォルト値説明
PGVECTOR_PGUSERpostgresPGVector コンテナの PostgreSQL ユーザー。
PGVECTOR_POSTGRES_PASSWORD(自動生成)PGVector コンテナの PostgreSQL パスワード。
PGVECTOR_POSTGRES_DBdifyPGVector コンテナ内のデータベース名。
PGVECTOR_PGDATA/var/lib/postgresql/data/pgdataコンテナ内のデータディレクトリ。
PGVECTOR_PG_BIGM_VERSION1.2-20240606pg_bigm 拡張のバージョン。
Oracle / Chroma / Elasticsearch サービス
変数デフォルト値説明
ORACLE_PWDDify123456コンテナの Oracle データベースパスワード。
ORACLE_CHARACTERSETAL32UTF8Oracle 文字セット。
CHROMA_SERVER_AUTHN_CREDENTIALS(自動生成)Chroma サーバーコンテナの認証資格情報。
CHROMA_SERVER_AUTHN_PROVIDERchromadb.auth.token_authn.TokenAuthenticationServerProviderChroma サーバーの認証プロバイダー。
CHROMA_IS_PERSISTENTTRUEChroma の永続ストレージを有効化。
KIBANA_PORT5601Kibana ポート(Elasticsearch UI)。
IRIS / その他のサービス
変数デフォルト値説明
IRIS_WEB_SERVER_PORT52773IRIS Web サーバー管理ポート。
IRIS_TIMEZONEUTCIRIS コンテナのタイムゾーン。
DB_PLUGIN_DATABASEdify_pluginプラグインデータ用の別データベース名。

プラグインデーモンストレージ設定#

プラグインデーモンは異なるストレージバックエンドにプラグインパッケージを保存できます。PLUGIN_STORAGE_TYPE に一致するプロバイダーのみを設定してください。

変数デフォルト値説明
PLUGIN_STORAGE_TYPElocalプラグインストレージバックエンド:local、aws_s3、tencent_cos、azure_blob、aliyun_oss、volcengine_tos。
PLUGIN_STORAGE_LOCAL_ROOT/app/storageローカルプラグインストレージのルートディレクトリ。
PLUGIN_WORKING_PATH/app/storage/cwdプラグイン実行の作業ディレクトリ。
PLUGIN_INSTALLED_PATHpluginインストール済みプラグインのサブディレクトリ。
PLUGIN_PACKAGE_CACHE_PATHplugin_packagesキャッシュされたプラグインパッケージのサブディレクトリ。
PLUGIN_MEDIA_CACHE_PATHassetsキャッシュされたメディアアセットのサブディレクトリ。
PLUGIN_STORAGE_OSS_BUCKET(空)オブジェクトストレージバケット名(S3/COS/OSS/TOS プロバイダー間で共有)。
PLUGIN_PPROF_ENABLEDfalseプラグインデーモンの Go pprof プロファイリングを有効化。
PLUGIN_PYTHON_ENV_INIT_TIMEOUT120プラグインの Python 環境初期化のタイムアウト(秒)。
PLUGIN_STDIO_BUFFER_SIZE1024プラグイン stdio 通信のバッファサイズ(バイト)。
PLUGIN_STDIO_MAX_BUFFER_SIZE5242880プラグイン stdio 通信の最大バッファサイズ(バイト、5 MB)。
ENDPOINT_URL_TEMPLATEhttp://localhost/e/{hook_id}プラグインエンドポイントの URL テンプレート。{hook_id} は実際のフック ID に置き換えられます。
EXPOSE_PLUGIN_DAEMON_PORT5002プラグインデーモンにマッピングされるホストポート。
EXPOSE_PLUGIN_DEBUGGING_HOSTlocalhostプラグインリモートデバッグのホスト。
EXPOSE_PLUGIN_DEBUGGING_PORT5003プラグインリモートデバッグのホストポート。
プラグイン S3 ストレージ
変数デフォルト値説明
PLUGIN_S3_USE_AWSfalseAWS S3 を使用(S3 互換サービスとの対比)。
PLUGIN_S3_USE_AWS_MANAGED_IAMfalse明示的な資格情報の代わりに IAM ロールを使用。
PLUGIN_S3_ENDPOINT(空)S3 エンドポイント URL。
PLUGIN_S3_USE_PATH_STYLEfalse仮想ホスト型の代わりにパス型 URL を使用。
PLUGIN_AWS_ACCESS_KEY(空)AWS access key。
PLUGIN_AWS_SECRET_KEY(空)AWS secret key。
PLUGIN_AWS_REGION(空)AWS リージョン。
プラグイン Azure Blob ストレージ
変数デフォルト値説明
PLUGIN_AZURE_BLOB_STORAGE_CONTAINER_NAME(空)Azure Blob コンテナ名。
PLUGIN_AZURE_BLOB_STORAGE_CONNECTION_STRING(空)Azure Blob 接続文字列。
プラグイン Tencent COS ストレージ
変数デフォルト値説明
PLUGIN_TENCENT_COS_SECRET_KEY(空)Tencent COS secret key。
PLUGIN_TENCENT_COS_SECRET_ID(空)Tencent COS secret ID。
PLUGIN_TENCENT_COS_REGION(空)Tencent COS リージョン。
プラグイン Aliyun OSS ストレージ
変数デフォルト値説明
PLUGIN_ALIYUN_OSS_REGION(空)Aliyun OSS リージョン。
PLUGIN_ALIYUN_OSS_ENDPOINT(空)Aliyun OSS エンドポイント。
PLUGIN_ALIYUN_OSS_ACCESS_KEY_ID(空)Aliyun OSS access key ID。
PLUGIN_ALIYUN_OSS_ACCESS_KEY_SECRET(空)Aliyun OSS access key secret。
PLUGIN_ALIYUN_OSS_AUTH_VERSIONv4Aliyun OSS 認証バージョン。
PLUGIN_ALIYUN_OSS_PATH(空)Aliyun OSS パスプレフィックス。
プラグイン Volcengine TOS ストレージ
変数デフォルト値説明
PLUGIN_VOLCENGINE_TOS_ENDPOINT(空)Volcengine TOS エンドポイント。
PLUGIN_VOLCENGINE_TOS_ACCESS_KEY(空)Volcengine TOS access key。
PLUGIN_VOLCENGINE_TOS_SECRET_KEY(空)Volcengine TOS secret key。
PLUGIN_VOLCENGINE_TOS_REGION(空)Volcengine TOS リージョン。