Skip to main content
Dify Enterprise は Helm でデプロイします。ほとんどの変数は values.yaml ファイルで設定します。Helm チャートは固定された変数のセットを API、web、worker、enterprise の各 ConfigMap に書き込み(デフォルト値は values.yaml から取得します)、それ以外の Dify アプリケーションの変数は各サービスの extraEnv フィールドを通じて公開します。
ここに記載されている変数は参考用です。Dify アプリケーションは Helm チャートが直接設定するよりもはるかに多くの変数を読み取ります。アプリケーションレベルの完全な一覧は、アップストリームの .env.example を参照してください。values.yaml で設定されていない変数は、extraEnv を通じて追加できます(よくある質問 を参照)。values.yaml に見つからない変数は、extraEnv で設定してください。
(Helm default) と記載されているデフォルト値は、チャートが values.yaml から ConfigMap に書き込む値です。それ以外のデフォルト値は Dify アプリケーション組み込みのデフォルトで、変数が extraEnv で設定されていない場合に適用されます。

共通の変数

これらの URL 変数は、Dify の各サービスのパブリックアドレスを設定します。Helm チャートは values.yaml のドメイン設定(global.consoleApiDomain、global.consoleWebDomain など)からこれらを導出するため、通常は変数を直接設定するのではなくドメインを設定します。

CONSOLE_API_URL

Default: global.consoleApiDomain から導出 Dify バックエンド API のパブリック URL です。OAuth 認可コールバック(GitHub、Google ログイン)、Notion 連携、OAuth を必要とするプラグインのコールバックを構築するために使用されます。また、セキュア(HTTPS 専用)クッキーを使用するかどうかも決定します。 例:https://api.console.dify.ai

CONSOLE_WEB_URL

Default: global.consoleWebDomain から導出 Dify コンソールフロントエンドのパブリック URL です。すべてのシステムメール(招待、パスワードリセット、通知)内のリンクの構築と、OAuth ログイン後にユーザーをコンソールへリダイレクトするために使用されます。また、CONSOLE_CORS_ALLOW_ORIGINS が設定されていない場合は、CORS で許可されるデフォルトのオリジンとしても機能します。 例:https://console.dify.ai

SERVICE_API_URL

Default: global.serviceApiDomain から導出 Dify コンソールで開発者に表示される API ベース URL です。Dify API を呼び出すためにコードへコピーする URL を指します。サーバーが複数のアドレスから到達可能な場合に、一貫した URL を提供するためこれを設定します。 例:https://api.dify.ai

APP_API_URL

Default: global.appApiDomain から導出 WebApp フロントエンド(公開済みアプリ)向けのバックエンド API URL です。この変数は Python バックエンドではなく、web フロントエンドのコンテナで使用されます。 例:https://api.app.dify.ai

APP_WEB_URL

Default: global.appWebDomain から導出 公開済み WebApp にアクセスできるパブリック URL です。ワークフローの Human Input ノードに必須です。メール通知内のフォームリンクは {APP_WEB_URL}/form/{token} として構築されます。空の場合、Human Input のメール配信に有効なフォームリンクが含まれません。 例:https://app.dify.ai

TRIGGER_URL

Default: global.triggerDomain から導出 Webhook トリガーおよび統合トリガーのエンドポイント向けの公開アクセス可能な URL です。外部システムはこのアドレスを使ってワークフローを呼び出します。Dify は {TRIGGER_URL}/triggers/webhook/{id} のようなトリガーコールバック URL を構築し、コンソールに表示します。トリガーを動作させるには、外部システムが到達できるパブリックドメインまたは IP を指す必要があります。

FILES_URL

Default: global.filesDomain から導出 ファイルプレビューおよびダウンロードリンクのベース URL です。Dify はすべてのファイル(アップロードされたドキュメント、ツール出力、ワークスペースロゴ)に対して署名付きの有効期限付き URL を生成し、フロントエンドおよびマルチモーダルモデルに提供します。偽造を防ぐため、ファイル URL は署名され有効期限を持ちます(FILES_ACCESS_TIMEOUT を参照)。 例:https://upload.example.com

INTERNAL_FILES_URL

Default: (空。FILES_URL にフォールバック) クラスター内部のサービス間通信(たとえばプラグインデーモンやドキュメント抽出器など)で使用されるファイルアクセス URL です。内部サービスは、Ingress やパブリックドメイン経由でルーティングされる外部の FILES_URL に到達できない場合があります。内部サービスが外部 URL に到達できない場合は、extraEnv を通じて設定してください。 例:http://dify-api-svc:5001

FILES_ACCESS_TIMEOUT

Default: 300(5 分) 署名付きファイル URL が有効である期間(秒単位)です。この時間を過ぎると URL は拒否され、ファイルを再リクエストする必要があります。長時間実行されるプロセスでは大きくし、よりセキュリティを高めたい場合は小さくします。

サーバー設定

ロギング

一般設定

SECRET_KEY

Default: チャートが設定(デプロイのシークレット設定を参照) セッションクッキーの署名、JWT 認証トークン、ファイル URL の署名(HMAC-SHA256)、サードパーティ OAuth 認証情報の暗号化(AES-256)に使用されます。Helm チャートはこれをシークレット経由で管理します。
デプロイ後にこのキーを変更すると、すべてのユーザーが即座にログアウトされ、すべてのファイル URL が無効になり、OAuth を使用するプラグイン連携が破損します。暗号化された認証情報が復元できなくなるためです。

KEY_PROVIDER_TYPE

デフォルト:local モデルプロバイダーやツールのシークレットなど、ワークスペースの認証情報を暗号化する鍵の保存先を選びます。
  • local:各ワークスペースの RSA 秘密鍵を、STORAGE_TYPE で指定したストレージに保存します。
  • azure-keyvault:ワークスペースの RSA 鍵を Azure Key Vault に保存します。秘密鍵は Key Vault 内に保持され、認証には Azure の DefaultAzureCredential を使用します。
認証情報を作成する前に、鍵のプロバイダーを選んでください。稼働中の環境でプロバイダーを変更すると、新しいプロバイダーでは既存の認証情報を読み取れなくなります。認証情報は自動移行されません。
Dify アプリケーションの各サービスと plugin_manager で、KEY_PROVIDER_TYPE を統一してください。Azure を使用する場合は AZURE_KEYVAULT_VAULT_URL も統一します。api.extraEnv、worker.extraEnv、workerBeat.extraEnv、plugin_manager.extraEnv で設定します。additionalWorkers の各 worker にも、それぞれの extraEnv でこれらの変数を設定してください。worker.extraEnv の設定は引き継がれません。 azure-keyvault を使用する場合は、次の変数を設定します。

トークンとリクエストの上限

Worker 設定

Helm チャートは worker 数を環境変数ではなく values.yaml で管理します。serverWorkerAmount は API の Gunicorn worker を制御し、celeryWorkerAmount は worker デプロイごとの Celery worker を制御します。これらは values.yaml で設定してください。

API Tool 設定

データベース設定

Helm チャートはメインのデータベース接続(ホスト、ポート、認証情報、データベース名)を個別の DB_* 変数ではなく、values.yaml と共有データベース ConfigMap を通じて設定します。以下の変数はアプリケーションの接続プールを調整するもので、extraEnv を通じて設定できます。

Redis 設定

Helm チャートは Redis 接続を values.yaml(共有 Redis 設定)を通じて設定します。アプリケーションはスタンドアロン、Sentinel、Cluster の各モードをサポートします。以下の変数はアプリケーションレベルの調整項目です。Helm デプロイではチャートの Redis 設定を優先し、調整には extraEnv を使用してください。

Redis SSL 設定

REDIS_USE_SSL=true の場合にのみ適用されます。

Redis 接続のリトライ設定

Celery 設定

Helm チャートは Celery ブローカー接続を values.yaml と共有 Celery シークレットを通じて管理します。以下の変数はアプリケーションレベルの調整項目です。

CORS 設定

フロントエンドのクロスドメインアクセスポリシーを制御します。チャートは values.yaml で設定された場合にのみこれらを書き込みます。

ファイルストレージ設定

Dify がアップロードファイル、データセットドキュメント、暗号化キーを保存する場所を設定します。各ストレージタイプには独自の認証情報変数があります。使用するものだけを設定してください。Helm デプロイでは、チャートがすでに公開していない限り、extraEnv を通じて設定します。

STORAGE_TYPE

Default: opendal ファイルストレージのバックエンドを選択します。サポートされる値:opendal、s3、azure-blob、aliyun-oss、google-storage、huawei-obs、volcengine-tos、tencent-cos、baidu-obs、oci-storage、supabase、clickzetta-volume、local(非推奨。内部的にはファイルシステムスキームの OpenDAL を使用)。
Apache OpenDAL を使用するデフォルトのストレージバックエンドです。OpenDAL は多くのストレージサービスをサポートする統一インターフェースを提供します。Dify は OPENDAL_<SCHEME>_* に一致する環境変数を自動的にスキャンし、OpenDAL に渡します。たとえば OPENDAL_SCHEME=s3 の場合、OPENDAL_S3_ACCESS_KEY_ID、OPENDAL_S3_SECRET_ACCESS_KEY などを設定します。利用可能なすべてのスキームとその設定オプションについては、OpenDAL services ドキュメント を参照してください。
ClickZetta Volume は、Vector Database セクションで設定した CLICKZETTA_* 接続パラメータを再利用します。

アーカイブストレージ

ワークフロー実行ログをアーカイブするための、S3 互換の別ストレージです。保持期間より古いワークフロー実行を JSONL 形式でアーカイブするために使用されます。

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

ナレッジベースの埋め込み保存と類似度検索に使用するベクトルデータベースを設定します。各プロバイダーには独自の認証情報変数のセットがあります。使用するものだけを設定してください。

VECTOR_STORE

Default: weaviate ベクトルデータベースのバックエンドを選択します。データセットにすでにインデックスがある場合は、データセットに保存されたタイプがこの設定より優先されます。 サポートされる値: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。
seekdb は OceanBase のライト版で、同じ接続設定を共有します。

ナレッジ設定

注釈のインポート

モデル設定

マルチモーダル設定

Sentry 設定

Sentry はエラートラッキングとパフォーマンス監視を提供します。Helm デプロイでは、values.yaml(api.sentry、worker.sentry、web.sentry)でサービスごとに Sentry を有効にします。

Notion 連携設定

Dify をナレッジベースのデータソースとして Notion に接続します。連携の認証情報は https://www.notion.so/my-integrations で取得します。

メール設定

Dify はアカウント招待、パスワードリセット、ログインコード、Human Input ノードの通知のためにメールを送信します。サポートされる 3 つのプロバイダーのいずれかを設定します。メールリンクには CONSOLE_WEB_URL の設定が必要です(Common Variables を参照)。
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)。
詳細は SendGrid のドキュメント を参照してください。

その他の設定

インデックス作成

トークンと招待

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

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

サンドボックスは、Python、JavaScript、Jinja2 のコードノードを分離して実行する別のサービスです。チャートは CODE_EXECUTION_ENDPOINT をクラスター内のサンドボックスサービスに自動的に設定します。

ワークフローランタイム

ワークフローのトレース

これらは API とワーカーのワークフロートレース連携用の設定です。OpenTelemetry の計装とは独立しています。 統一トレースが有効な場合、OPS_TRACE_PARENT_CONTEXT_TTL_SECONDS は OPS_TRACE_RETRYABLE_DISPATCH_MAX_RETRIES と OPS_TRACE_RETRYABLE_DISPATCH_DELAY_SECONDS の積以上にしてください。この値を下回ると、アプリケーションの設定検証に失敗します。 再試行間隔のデフォルトは 5 秒で、extraEnv で変更できます。再試行回数と間隔がデフォルト値の場合、親コンテキストの保持期間は最低 780 × 5 = 3900 秒です。

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

これらは、ワークフロー実行データを処理するバックエンド実装を選択します。デフォルトの SQLAlchemy リポジトリはすべてをデータベースに保存します。

GraphEngine ワーカープール

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

チャートは workerBeat.enableWorkflowLogCleanup を通じてこれを有効にし、beat ConfigMap に WORKFLOW_LOG_CLEANUP_ENABLED を設定します。残りの変数はチャートでは設定されません。worker および beat サービスの extraEnv を通じて設定してください。

HTTP Request ノード

これらは、ワークフローで外部 API を呼び出すために使用される HTTP Request ノードを設定します。

Webhook

SSRF 保護

Dify からのすべての外向き HTTP リクエスト(HTTP ノード、画像ダウンロードなど)は、内部/プライベート IP 範囲へのリクエストをブロックするプロキシ経由でルーティングされ、サーバーサイドリクエストフォージェリ(SSRF)攻撃を防ぎます。SSRF プロキシが有効な場合、チャートは SSRF_PROXY_HTTP_URL と SSRF_PROXY_HTTPS_URL を自動的に設定します。 Helm では、values.yaml で SSRF プロキシのポリシーを設定します。
  • コード実行ノードのサンドボックスには ssrfProxy.squidConf を使います。同じプロキシを経由する API や worker のリクエストにも、このポリシーが適用されます。
  • Sandbox Gateway が管理する Agent のサンドボックスには、別のポリシーを使います。sandboxGateway.ssrfProxy.squidConf で設定します。
上記の Docker Compose 用許可リスト変数を ssrfProxy.extraEnv に追加しても、プロキシのポリシーは変わりません。

Agent 設定

UPLOAD_SKILL_FILE_SIZE_LIMIT

Default: 50 スキルライブラリにインポートするか、埋め込みスキルとして Agent にアップロードする .zip または .skill パッケージの最大サイズ(MiB)です。api.limits.uploadSkillFileSize で設定します。

Dify CLI とプログラム API

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

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

エンタープライズ固有の設定

これらの変数は Dify Enterprise にのみ適用されます。enterprise.enabled が true の場合、Helm チャートはこれらを API および worker の ConfigMap に設定します。
Dify Enterprise 3.13.0 では、ENTERPRISE_ENABLED 変数が DEPLOYMENT_EDITION(ENTERPRISE または COMMUNITY)に置き換えられました。チャートは新しい変数を自動的に設定します。アップグレード時には、ENTERPRISE_ENABLED を参照している extraEnv エントリ、カスタムオーバーレイ、自動化スクリプトを更新してください。

デプロイ環境(App Runner)

以下の変数で デプロイ環境 を設定します。デプロイ環境は、エンタープライズ ダッシュボードの 環境 で作成する、アプリのデプロイ先です。 Enterprise サービスは Kubernetes 上に App Runner ワークロードを作成し、各環境のアプリをそこで実行します。共有 モードの環境では、1 つのワークロードですべてのアプリを実行します。分離 モードでは、アプリごとに専用のワークロードを作成します。 Helm チャートは、これらの変数を enterprise の ConfigMap と Secret に書き込みます。これらの変数は、スタジオでの実行や、公開した内容を提供する組み込み環境には影響しません。どちらも API と worker で動作し、このページのほかの変数に従います。 enterprise.appRunner.controlSigningKey と enterprise.webappPassportSigningKey には、プレースホルダー #REPLACE_ME# が入っています。インストールまたはアップグレードの前に、独自のシークレット値に置き換えてください。ExternalSecret を使用する場合は、global.externalSecret.remoteKey で指定したリモートシークレット(デフォルトは dify)に両方を追加してください。プロパティ名は enterprise.appRunner.controlSigningKey と enterprise.webappPassportSigningKey です。
実行時間の上限を決める設定は 2 つあり、対象となる実行がそれぞれ異なります。
  • デプロイ環境での実行:enterprise.workflowMaxExecutionTimeSeconds。デフォルトは 1200 秒(20 分)です。
  • スタジオと組み込み環境での実行:api.workflowMaxExecutionTimeSeconds。デフォルトは 3600 秒(60 分)です。
どちらも WORKFLOW_MAX_EXECUTION_TIME という変数になりますが、書き込まれる ConfigMap は別です。一方を変更しても、もう一方は変わりません。デフォルト値が異なるため、スタジオでは最後まで実行できたワークフローでも、デプロイ後に途中で停止することがあります。実行時間の長いワークフローは、デプロイ環境でテストしてから利用してください。
以下の変数は Helm チャートが生成するため、設定は不要です。

App Runner テレメトリ

Helm チャートは、global.otel.enabled と enterpriseCollector.enabled が両方とも true の場合にのみ、以下の変数を設定します。どちらもデフォルトで true です。一方でも無効にすると、App Runner ワークロードはテレメトリを送信しません。

エンタープライズテレメトリ

エンタープライズの監査とトレース用の OpenTelemetry エクスポートです。enterprise.enabled と global.otel.enabled の両方が true の場合、チャートはこれらを有効にし、エンドポイントをクラスター内のエンタープライズコレクターに接続します。

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

アプリインターフェースで利用可能なツールとモデルプロバイダー、およびそれらの表示順序をカスタマイズします。項目間にスペースを入れず、カンマ区切りの値を使用します。チャートは values.yaml の api.positionTool と api.positionProvider からこれらを書き込みます。

プラグインデーモン設定

プラグインデーモンは、プラグインのライフサイクル(インストール、実行、アップグレード)を管理する別のサービスです。プラグインデーモンが有効な場合、チャートはデーモンの URL、キー、マーケットプレイス設定を自動的に設定します。

Agent Backend 設定

以下の変数は、Agent 機能を支える agent-backend サービスに設定されます。デプロイ手順の全体は Agent Sandbox のデプロイ を参照してください。

Agent のスナップショットとファイル転送のタイムアウト

これらはリクエストと転送の待機時間を制御する設定です。Agent の実行時間制限とは独立しています。単位はすべて秒で、0 より大きい値を指定します。値を大きくすると、タイムアウトまでの待機時間が長くなります。 DIFY_AGENT_BINDING_FILE_DOWNLOAD_COMMAND_TIMEOUT_SECONDS は、CLI のアップロード期限である 180 秒より大きくしてください。また、AGENT_BACKEND_BINDING_FILE_DOWNLOAD_TIMEOUT_SECONDS より小さくしてください。

Agent バックエンドの HTTP クライアント

これらは、Agent バックエンドが Dify API とプラグインデーモンへの接続に使う HTTP クライアントの設定です。各クライアントは独立した接続プールを持ちます。同じクライアントを使う Agent の実行間で、そのプールを共有します。 タイムアウトを長くすると、時間のかかる処理を待てる一方、タイムアウトエラーの発生も遅くなります。接続数の上限を増やすと、空き接続の待ち時間を減らせますが、接続先サービスへの同時アクセス負荷が増えます。アイドル接続の数や保持時間を増やすと再利用しやすくなりますが、その分リソースを占有します。

OTLP / OpenTelemetry 設定

アプリケーションレベルの OpenTelemetry 計装です(上記のエンタープライズテレメトリとは別物)。有効にすると、Dify は Flask を計装し、OTLP コレクターにテレメトリをエクスポートします。

その他

スケジュールタスク設定

Dify は Celery Beat を使用して、設定可能なスケジュールでバックグラウンドのメンテナンスタスクを実行します。 会話のクリーンアップは workerBeat.conversationCleanup.enabled で有効・無効を切り替えます。実行間隔は workerBeat.conversationCleanup.intervalMinutes、バッチサイズは workerBeat.conversationCleanup.batchSize で設定します。チャートはこれらの設定を API、すべての worker、Celery Beat に適用します。

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

Aliyun SLS Logstore 設定

ワークフロー実行ログをデータベースではなく外部に保存するための、Aliyun Simple Log Service との任意の連携です。

イベントバス設定

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

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

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

よくある質問

values.yaml にない変数を設定するには?

その変数を必要とするサービス(api、worker、web)の extraEnv フィールドを通じて追加します。たとえば、API サービスに 2 つの変数を設定するには次のようにします。
同じパターンが worker.extraEnv と web.extraEnv にも当てはまります。その変数を読み取るすべてのサービスに設定してください。

HTTP_PROXY と HTTPS_PROXY を設定するには?

セキュリティ上の理由から、Dify API サービスの外向きトラフィックをプロキシ経由でルーティングする必要がある場合があります。extraEnv フィールドを使用します。