Difyの主な設定リスト(変更必須な項目も添えて)

記事タイトルとURLをコピーする

はじめに

こんにちは、久保(賢)です。

Dify(ディフィ)は、生成AIアプリを開発するためのオープンソースプラットフォームです。
最大の特徴は、GUIによる直感的な操作で、誰でも簡単にAIアプリを作れる点かと思います。

dify.ai

弊社の過去ブログ記事:

blog.serverworks.co.jp

DifyはOSSとして公開されているため、セルフホストとして自分でインフラを用意して運用することもできます。
AWSでDifyを構築して利用することで、AWSの各種マネージドサービスの恩恵を受けながら、柔軟にDifyを運用することが可能になります。

Difyは多機能な分、環境変数が多岐にわたります。
特に本番環境で重要と考えられる設定を中心に、カテゴリ別に整理したリストを作成しました。

特に [必ず変更] が付いている項目については、セキュリティ上の理由から本番環境で必ず変更することを推奨いたします。

対象読者

  • Difyをセルフホストで運用したい/運用している方
  • Difyの環境変数設定について全体像を把握したい方
  • Difyのセキュリティに関わる重要な設定を理解したい方
  • とりあえずdocker-composeで起動したが.env.exampleのままでよいのか不安な方

公式の情報

公式の環境変数についてのドキュメントはこちらですが、

This document may be outdated. Please refer to the latest configuration files: docker-compose.yaml .env.example

と記載されている通り、本記事の執筆時点では最新の情報はGitHubの以下ファイルを参照する必要があります。

また、これらのファイルでも説明されていない設定もあるため、そのような設定についてはDifyのソースコードを元に確認しています。

各種URLについての補足

Difyでは複数のURL関連の環境変数があり柔軟にカスタマイズできるようになっています。
ただわかりにくい箇所でもあるため、以下に主なURLについての整理を記載します。 これらは単一のサーバでホストする場合はすべて同じでも問題ありません。

変数名 説明
CONSOLE_WEB_URL WebブラウザでDifyの管理画面にアクセスする際のURL
CONSOLE_API_URL WebブラウザでDifyの管理画面にアクセスしている際に、フロントエンドのアプリがアクセスするバックエンドのAPI用URL
SERVICE_API_URL Difyで作成したアプリを公開した際に、APIキーでDify外からアクセスする際のURL
APP_WEB_URL Difyで作成したアプリにWebブラウザでアクセスする際のURL
APP_API_URL Difyで作成したアプリにWebブラウザでアクセスしている際に、フロントエンドのアプリがアクセスするバックエンドのAPI用URL

※本図はURL変数の役割イメージです。実運用では“単一ドメイン+パス振り分け”でも“サブドメイン分離”でも成立します。

Difyの主な設定リスト

※下表はすべての設定ではありません。
※全設定については前述した公式情報を参照ください。
※2026/2/13時点の情報に基づいています。

[必ず変更] が付いている項目については、 本番では 平文で .env ファイルに置かず、AWSであればSecrets Manager/Parameter Store 等で注入する運用を推奨します。

1) URL / セキュリティ / 実行環境関連の設定

分類 環境変数 デフォルト値 設定例 説明
URL CONSOLE_WEB_URL https://dify.example.com Console(管理画面)のフロントエンドURLです。認証コールバックの連結やCORS設定に使用されます。基本構成では以下のURL設定すべて同じ値で問題ありません(AWS公式サンプルでは全て同じALBのURLを設定)。本番環境では明示的に設定することを推奨します。
URL CONSOLE_API_URL https://dify.example.com Console APIのバックエンドURLです。フロントエンドがAPIを呼び出す際に使用されます。基本構成ではCONSOLE_WEB_URLと同じ値を設定で問題ありません。サブドメイン分離構成(例:https://api.example.com)を採用する場合に異なる値を設定します。
URL SERVICE_API_URL https://dify.example.com APIキーを利用して、Difyで作成したアプリにAPIでアクセスする際のベース URLです。基本構成では他のURL設定と同じ値で問題ありません
URL APP_WEB_URL https://dify.example.com 作成したWebアプリのフロントエンドURLです。基本構成では他のURL設定と同じ値で問題ありません
URL APP_API_URL https://dify.example.com 作成したWebアプリ用APIバックエンドURLです。基本構成では他のURL設定と同じ値で問題ありません
URL FILES_URL https://dify.example.com ファイルプレビュー・ダウンロード用の署名付きURLのベースURLです。画像プレビューURLなどは偽造防止のため署名され、デフォルトで5分後に期限切れとなります。基本構成では他のURL設定と同じ値で問題ありません
URL TRIGGER_URL https://dify.example.com ワークフローのWebhookトリガーURLを生成する際のベースURLです。外部システムからワークフローを実行する際に使用されるため、外部からアクセス可能なエンドポイントを公開する場合は、外部到達可能なURLを設定する必要があります。基本構成では他のURL設定と同じ値で問題ありません
セキュリティ(重要) SECRET_KEY 指定あり [必ず変更](例: openssl rand -base64 42 で生成) セッションCookieの署名とデータベース内の機密情報(APIキーなど)の暗号化に使用されます。.env.exampleのデフォルト値を本番で使用するのは危険です。必ず変更し、漏洩や使い回しを避けてください。
セキュリティ(重要) PLUGIN_DAEMON_KEY 指定あり [必ず変更](例: openssl rand -base64 42 で生成) プラグインデーモンとAPIサーバー間の通信認証に使用される共有キーです。.env.exampleのデフォルト値を本番で使用するのは危険です。プラグイン機能を使用する場合は必ず変更してください。SECRET_KEYとは異なる値を設定してください。
環境 DEPLOY_ENV PRODUCTION PRODUCTION デプロイ環境の種別を指定します。TESTINGに設定すると、フロントエンドに検証環境を示す色付きラベルが表示されます。本番環境ではPRODUCTIONを設定します。
起動 MIGRATION_ENABLED true true アプリケーション起動前にデータベースマイグレーションを自動実行するかを制御します。trueに設定すると、起動時にマイグレーションが完了してからアプリケーションが開始されます。通常はtrueが推奨です。
ログ LOG_LEVEL INFO INFO(調査時のみ DEBUG アプリケーションのログレベルを設定します。DEBUGINFOWARNINGERRORCRITICALから選択できます。本番環境ではINFOが基本です。DEBUGは詳細な情報を出力しますが、機密情報漏洩リスクやログ量増加によるコスト増につながる可能性があります。
開発向け DEBUG false false デバッグモードの有効/無効を設定します。trueにすると開発時のトラブルシュートに有効なため、ローカル開発では有効にすることを推奨します。本番は情報露出リスクがあるため必ずfalseにします。

2) 認証・ブラウザ周り(CORS / Cookie)の設定

分類 環境変数 デフォルト値 設定例 説明
CORS CONSOLE_CORS_ALLOW_ORIGINS * https://console.example.com(複数はカンマ) Console APIへのクロスオリジンリクエストを許可するオリジンを指定します。デフォルトは*(全オリジン許可)ですが、セキュリティのため本番環境ではConsoleの実際のオリジンに絞ることを推奨します。複数指定する場合はカンマ区切りで記載します。
CORS WEB_API_CORS_ALLOW_ORIGINS * https://app.example.com(複数はカンマ) Web APIへのクロスオリジンリクエストを許可するオリジンを指定します。公開WebAppを別オリジンで運用する場合に設定します。デフォルトは*です。
Cookie COOKIE_DOMAIN example.com(サブドメイン共有時) Cookieを共有するドメインを指定します。フロントエンドとバックエンドが異なるサブドメイン(例:console.example.comapi.example.com)で運用する場合、トップレベルドメイン(example.com)を設定すると、サブドメイン間でCookieが共有されます。
Cookie NEXT_PUBLIC_COOKIE_DOMAIN 1(サブドメイン共有時) COOKIE_DOMAINと併せて設定します。フロントエンドとバックエンドが異なるサブドメインで動作する場合、1を設定することでCookie共有が有効になります。

3) DB / Redis 関連の設定

分類 環境変数 デフォルト値 設定例 説明
DB DB_TYPE postgresql postgresql データベースの種類を指定します。postgresqlmysqloceanbaseseekdbがサポートされています。
DB DB_HOST db_postgres your-rds-endpoint データベースのホスト名またはIPアドレスです。マネージドDB(AWS RDS等)を使用する場合は最初に変更します。docker-composeの同梱構成ではdb_postgresを使用します。
DB DB_PORT 5432 5432 データベースの接続ポート番号です。PostgreSQLのデフォルトは5432、MySQLは3306です。外部DBで非標準ポートを使用している場合のみ変更します。
DB DB_USERNAME postgres dify データベースの接続ユーザー名です。本番環境ではセキュリティのため専用ユーザーを作成し、最小限の権限のみを付与することを推奨します。
DB(重要) DB_PASSWORD 指定あり [必ず変更](例: 32文字以上のランダム文字列) データベースユーザーのパスワードです。.env.exampleのデフォルト値を本番環境で使用するのは危険です。必ず強固なパスワードに変更してください。
DB DB_DATABASE dify dify 使用するデータベース名です。複数の環境(本番、ステージング等)で分離する場合は環境ごとに異なる名前を設定します。
Redis REDIS_HOST redis 外部Redisならエンドポイント / 同梱なら redis Redisのホスト名またはIPアドレスです。Redisは会話中のキャッシュとPub/Subに使用されます。マネージドRedis(AWS ElastiCache等)を使用する場合は変更します。
Redis REDIS_PORT 6379 6379 Redisの接続ポート番号です。
Redis(重要) REDIS_PASSWORD 指定あり [必ず変更](強固なパスワード or マネージドサービスの認証情報) Redisの認証パスワードです。.env.exampleのデフォルト値を本番環境で使用するのは危険です。必ず変更してください。マネージドサービスの場合は発行された認証情報を使用します。
Celery CELERY_BROKER_URL redis://:************@redis:6379/1 例: redis://:***@redis:6379/1 Celeryのメッセージブローカー接続URLです。形式はredis://:<パスワード>@<ホスト>:<ポート>/です。DB番号1を使用することで、メインのアプリ用Redis(DB番号0)とタスクキューを分離し、データの衝突を回避しています。

4) ファイルストレージ関連の設定

デフォルト(opendalを利用する場合)

分類 環境変数 デフォルト値 設定例 説明
ストレージ STORAGE_TYPE opendal opendal / s3 / azure-blob / etc ユーザーがアップロードしたファイルや秘密鍵などを保存するオブジェクトストレージのバックエンド種別を選択します。デフォルトはopendalで、OPENDAL_SCHEMEでストレージ方式を指定します。本番環境では各クラウドのストレージサービス(S3、Azure Blob、Google Cloud Storage等)の使用を推奨します。
OpenDAL OPENDAL_SCHEME fs fs OpenDALで使用するストレージスキームを指定します。fsはローカルファイルシステム、s3azblobgcs等のクラウドストレージも指定できます。本番環境でクラウドストレージに切り替える場合はこの値を変更します。
OpenDAL OPENDAL_FS_ROOT storage storage ローカルファイルシステム使用時のルートディレクトリパスです。APIコンテナとWorkerコンテナの両方から同じストレージにアクセスできるよう、docker volumeで適切にマウントする必要があります。本番環境では永続化されるパス/ボリュームを指定してください。

Amazon S3(またはS3互換)

STORAGE_TYPEs3 にする場合の主要な環境変数は以下の通りです。

分類 環境変数 デフォルト値 設定例 説明
S3 S3_ENDPOINT AWS S3なら空 S3互換APIのエンドポイントURLです。AWS S3を使用する場合は空(デフォルトエンドポイントを使用)で構いません。MinIO、Cloudflare R2、その他S3互換ストレージを使用する場合は、そのエンドポイントURLを指定する必要があります。
S3 S3_REGION us-east-1 ap-northeast-1 S3バケットが存在するAWSリージョンを指定します。バケット作成時に指定したリージョンに合わせてください。
S3 S3_BUCKET_NAME difyai dify-prod-uploads-bucket 使用するS3バケットの名前です。バケットは事前に作成しておく必要があります。環境ごとに異なるバケットを使用することを推奨します。
S3 S3_USE_AWS_MANAGED_IAM false true AWS環境でIAMロールを使用して認証する場合はtrueに設定します。falseの場合は、アクセスキーとシークレットキーによる認証が必要になります。セキュリティの観点からtrueを推奨します。

5) ベクトルDB関連の設定

共通

分類 環境変数 デフォルト値 設定例 説明
ベクトルDB VECTOR_STORE weaviate weaviate / qdrant / milvus / opensearch / pgvector ナレッジベースのベクトルデータを保存するベクトルデータベースの種類を選択します。docker-composeのデフォルトはweaviateで、初めて動かす場合は同梱の既定構成が最も簡単です。将来的にはパフォーマンス要件やコスト、運用体制に応じて変更を検討します。
ベクトルDB VECTOR_INDEX_NAME_PREFIX Vector_index Vector_index(そのままでOK) ベクトルインデックスの名前に付けるプレフィックスです。複数の環境(dev、staging、production等)で同じベクトルDBインスタンスを共有する場合、このプレフィックスを環境ごとに変えることでインデックス名の衝突を回避できます。

デフォルト(Weaviate)

分類 環境変数 デフォルト値 設定例 説明
Weaviate WEAVIATE_ENDPOINT http://weaviate:8080 http://weaviate:8080 WeaviateのHTTPエンドポイントURLです。外部のマネージドWeaviateや別サーバーのWeaviateを使用する場合は、そのエンドポイントURLに差し替えます。
Weaviate(重要) WEAVIATE_API_KEY 指定あり [必ず変更](ランダムな文字列) Weaviateへの認証に使用するAPIキーです。.env.exampleの例の値を本番環境で使用しないでください。Weaviate側の設定(AUTHENTICATION_APIKEY_ALLOWED_KEYS等)とも整合させる必要があります。

OpenSearch

分類 環境変数 デフォルト値 設定例 説明
OpenSearch OPENSEARCH_HOST opensearch opensearch.example.com OpenSearchのホスト名またはエンドポイントです。AWS OpenSearch Service、自前構築のOpenSearch、OpenSearch Service Serverless等に接続する際に設定します。
OpenSearch OPENSEARCH_PORT 9200 443 OpenSearchの接続ポート番号です。HTTPSの場合は443、HTTPの場合は9200が一般的です。
OpenSearch OPENSEARCH_SECURE true true HTTPSプロトコルを使用するかどうかを設定します。本番環境ではtrue(HTTPS使用)が推奨です。
OpenSearch OPENSEARCH_VERIFY_CERTS true true HTTPS接続時にSSL証明書を検証するかどうかを設定します。セキュリティのため本番環境ではtrueが推奨です。検証を回避するためのfalse設定は極力避けてください。
OpenSearch OPENSEARCH_AUTH_METHOD basic aws_managed_iam 認証方式を指定します。basicはユーザー名/パスワード認証、aws_managed_iamはAWS IAMロール認証です。AWS環境ではaws_managed_iamでIAMロールを利用する方がセキュアです。
OpenSearch OPENSEARCH_USER / OPENSEARCH_PASSWORD admin / admin [必ず変更](ユーザー名とパスワード) OPENSEARCH_AUTH_METHOD=basicの場合に設定します。OpenSearchにアクセス可能なユーザーのクレデンシャルを指定してください。
OpenSearch OPENSEARCH_AWS_REGION ap-southeast-1 ap-northeast-1 OPENSEARCH_AUTH_METHOD=aws_managed_iamの場合に必要です。OpenSearchクラスターが存在するAWSリージョンを指定します。
OpenSearch OPENSEARCH_AWS_SERVICE aoss es or aoss OPENSEARCH_AUTH_METHOD=aws_managed_iam の場合に必要です。通常のAWS OpenSearch Serviceの場合は es、OpenSearch Service Serverlessの場合は aoss を指定します。

pgvector

分類 環境変数 デフォルト値 設定例 説明
pgvector PGVECTOR_HOST pgvector your-rds-endpoint pgvector拡張をインストールしたPostgreSQLのホスト名です。既存のPostgreSQLインスタンスにベクトルデータも統合したい場合や、運用を一元化したい場合に有力な選択肢です。AWS RDS for PostgreSQL等のマネージドサービスでもpgvector拡張は利用可能です。
pgvector PGVECTOR_PORT 5432 5432 pgvector用PostgreSQLの接続ポート番号です。PostgreSQLのデフォルトポートは5432で、通常は変更不要です。
pgvector PGVECTOR_USER postgres dify_vector pgvector用PostgreSQLの接続ユーザー名です。セキュリティのため、必要最小限の権限(ベクトルデータ用スキーマへのアクセスのみ)を持つ専用ユーザーを作成することを推奨します。
pgvector(重要) PGVECTOR_PASSWORD difyai123456 [必ず変更](強固なパスワード、Secrets管理推奨) pgvector用PostgreSQLユーザーのパスワードです。.env.exampleの例の値を本番環境で使用しないでください。環境変数ファイルへの直接記載ではなく、Secrets管理サービスの使用を推奨します。
pgvector PGVECTOR_DATABASE dify dify(分離するなら別DB名) pgvectorで使用するデータベース名です。メインのDifyデータベースと同じでも構いませんが、運用上分離したい場合は別のデータベース名を指定できます。

6) ファイル処理とナレッジ抽出関連の設定

分類 環境変数 デフォルト値 設定例 説明
制限 UPLOAD_FILE_SIZE_LIMIT 15 15 ナレッジベースにアップロード可能な1ファイルあたりの最大サイズ(MB単位)です。大きいPDFやOfficeドキュメントを扱う場合は、この値を増やす必要があります。
制限 UPLOAD_FILE_BATCH_LIMIT 5 5 一度にアップロード可能なファイル数の上限です。一括投入が多い運用シナリオでは増やすことができますが、サーバー負荷に注意してください。
制限 MAX_VARIABLE_SIZE 204800 204800 ワークフロー変数の最大サイズ(バイト単位)です。ワークフロー内で大きなデータ(大きなJSON、長いテキスト等)を変数として扱う場合に、この値を増やす必要があります。
セキュリティ UPLOAD_FILE_EXTENSION_BLACKLIST exe,bat,cmd,com,scr,vbs,ps1,msi,dll セキュリティ上の理由でアップロードをブロックするファイル拡張子のリストです。カンマ区切りで指定します(ドットなし、小文字)。デフォルトは空(全ファイルタイプ許可)ですが、明示することで実行可能ファイル等の危険な拡張子をブロックすることが可能です。推奨値:exe,bat,cmd,com,scr,vbs,ps1,msi,dll

7) メール(招待・通知を使う場合のみ)関連の設定

分類 環境変数 デフォルト値 設定例 説明
メール MAIL_TYPE resend smtp メール送信方式を指定します。ユーザー招待やパスワードリセット等でメール送信機能を使用する場合に設定します。現在はresendsmtpsendgridがサポートされています。
From MAIL_DEFAULT_SEND_FROM no-reply@example.com メールの送信元(From)アドレスです。ドメインの送信者認証(SPF、DKIM、DMARC)も併せて設定することで、メールの到達率向上やなりすまし防止につながります。
SMTP SMTP_SERVER smtp.example.com MAIL_TYPE=smtpの場合に必要です。使用するSMTPサーバーのホスト名またはIPアドレスを指定します。
SMTP SMTP_PORT 465 465(SSL/TLS)または 587(STARTTLS) SMTPサーバーの接続ポート番号です。465はSMTP over SSL/TLS、587はSTARTTLSを使用する場合に一般的です。使用するSMTPサーバーの仕様に合わせて設定してください。
SMTP SMTP_USERNAME / SMTP_PASSWORD 空 / 空 (SMTPサーバーの認証情報) SMTPサーバーへの認証に使用するユーザー名とパスワードです。メールサービスプロバイダから発行された認証情報を使用してください。パスワードは機密情報なので、Secrets管理サービスの使用を推奨します。

8) 同梱Nginx・Sandbox(使う場合のみ)関連の設定

分類 環境変数 デフォルト値 設定例 説明
Nginx NGINX_SERVER_NAME _ dify.example.com docker-compose同梱のNginxをリバースプロキシとして使用する場合に設定するサーバー名(ドメイン名)です。同梱Nginxを使用しない場合(独自のリバースプロキシやALB等を使用する場合)は不要です。
Nginx NGINX_HTTPS_ENABLED false false 同梱NginxでHTTPS(TLS終端)を有効にするかを設定します。
公開ポート EXPOSE_NGINX_PORT 80 80 同梱Nginxが公開するHTTPポート番号です。デフォルトは80で、通常は変更不要です。他のサービスとポートが競合する場合のみ変更します。
公開ポート EXPOSE_NGINX_SSL_PORT 443 443 同梱Nginxが公開するHTTPSポート番号です。デフォルトは443で、通常は変更不要です。他のサービスとポートが競合する場合のみ変更します。
Sandbox SANDBOX_ENABLE_NETWORK true true コード実行サンドボックスからの外部ネットワーク通信を許可するかを設定します。デフォルトはtrue(許可)ですが、セキュリティやガバナンス要件で外部通信を禁止する必要がある場合はfalseに設定します。
SSRF SSRF_PROXY_HTTP_URL / SSRF_PROXY_HTTPS_URL http://ssrf_proxy:3128 http://ssrf_proxy:3128 SSRF(Server-Side Request Forgery)攻撃対策用のプロキシURLです。外部通信を許可する場合でも、SSRF対策プロキシを経由させることでセキュリティを維持できます。デフォルト設定のまま維持することを推奨します。

おわりに

以上がDifyの主要な環境変数のリストと説明になります。
これらの設定を適切に構成することで、Difyを安全かつ効率的に運用することができます。

セキュリティに関わる設定(SECRET_KEY、PLUGIN_DAEMON_KEY、DB_PASSWORDなど)は特に慎重に管理し、漏洩や使い回しを避けるようにご注意ください。

久保 賢二(執筆記事の一覧)

猫とAWSが好きです。