Dify .evn 环境变量文件说明 0.8.2版本

1. 完整配置文件

# ------------------------------
# API 服务和工作者的环境变量
# ------------------------------

# ------------------------------
# 通用变量
# ------------------------------

# 控制台 API 的后端 URL,
# 用于连接授权回调。
# 如果为空,则为同一域名。
# 示例: https://api.console.dify.ai
CONSOLE_API_URL=

# 控制台网页的前端 URL,
# 用于连接一些前端地址和进行 CORS 配置使用。
# 如果为空,则为同一域名。
# 示例: https://console.dify.ai
CONSOLE_WEB_URL=

# 服务 API 的 URL,
# 用于在前端显示服务 API 基础 URL。
# 如果为空,则为同一域名。
# 示例: https://api.dify.ai
SERVICE_API_URL=

# WebApp API 后端 URL,
# 用于声明前端 API 的后端 URL。
# 如果为空,则为同一域名。
# 示例: https://api.app.dify.ai
APP_API_URL=

# WebApp URL,
# 用于在前端显示 WebAPP API 基础 URL。
# 如果为空,则为同一域名。
# 示例: https://app.dify.ai
APP_WEB_URL=

# 文件预览或下载 URL 前缀。
# 用于在前端显示文件预览或下载 URL 或作为多模型输入;
# URL 是签名的并有过期时间。
FILES_URL=

# ------------------------------
# 服务器配置
# ------------------------------

# 应用程序的日志级别。
# 支持的值有 `DEBUG`、`INFO`、`WARNING`、`ERROR`、`CRITICAL`
LOG_LEVEL=INFO

# 调试模式,默认值为 false。
# 建议在本地开发时开启此配置,
# 以防止由猴子补丁引起的一些问题。
DEBUG=false

# Flask 调试模式,开启后可以在接口输出跟踪信息,
# 便于调试。
FLASK_DEBUG=false

# 用于安全签名会话 cookie 和加密数据库中的敏感信息的密钥。
# 你可以使用 `openssl rand -base64 42` 生成一个强密钥。
SECRET_KEY=sk-9f73s3ljTXVcMT3Blb3ljTqtsKiGHXVcMT3BlbkFJLK7U

# 初始化管理员用户的密码。
# 如果未设置,创建初始管理员账户时不会提示设置密码。
INIT_PASSWORD=

# 部署环境。
# 支持的值有 `PRODUCTION`、`TESTING`。默认值是 `PRODUCTION`。
# 测试环境。在前端页面会有明显的颜色标签,
# 表明此环境是测试环境。
DEPLOY_ENV=PRODUCTION

# 是否启用版本检查策略。
# 如果设置为空,https://updates.dify.ai 将不会被调用进行版本检查。
CHECK_UPDATE_URL=https://updates.dify.ai

# 用于更改 OpenAI 基地址,默认是 https://api.openai.com/v1。
# 当 OpenAI 在中国无法访问时,可以替换为国内镜像地址,
# 或者当本地模型提供 OpenAI 兼容 API 时,也可以替换。
OPENAI_API_BASE=https://api.openai.com/v1

# 启用时,将在应用启动前执行迁移,
# 并在迁移完成后启动应用。
MIGRATION_ENABLED=true

# 文件访问时间指定文件被访问的时间间隔(秒)。
# 默认值为 300 秒。
FILES_ACCESS_TIMEOUT=300

# 应用的最大活跃请求数,0 表示无限制,应该是非负整数。
APP_MAX_ACTIVE_REQUESTS=0

# ------------------------------
# 容器启动相关配置
# 仅在使用 docker 镜像或 docker-compose 启动时有效。
# ------------------------------

# API 服务绑定地址,默认: 0.0.0.0,即所有地址都可以访问。
DIFY_BIND_ADDRESS=0.0.0.0

# API 服务绑定端口号,默认 5001。
DIFY_PORT=5001

# API 服务器工作进程数,即 gevent 工作进程数。
# 公式: CPU 核心数 x 2 + 1
# 参考: https://docs.gunicorn.org/en/stable/design.html#how-many-workers
SERVER_WORKER_AMOUNT=

# 默认为 gevent。如果使用 Windows,可以切换为 sync 或 solo。
SERVER_WORKER_CLASS=

# 类似于 SERVER_WORKER_CLASS。默认是 gevent。
# 如果使用 Windows,可以切换为 sync 或 solo。
CELERY_WORKER_CLASS=

# 请求处理超时。默认值为 200,
# 建议设置为 360 以支持更长的 SSE 连接时间。
GUNICORN_TIMEOUT=360

# Celery 工作进程数。默认值为 1,可以根据需要设置。
CELERY_WORKER_AMOUNT=

# 标志,指示是否启用 Celery 工作进程的自动扩展。
#
# 当任务是 CPU 密集型时,自动扩展非常有用,可以根据工作负载动态
# 分配和释放工作进程。
#
# 启用自动扩展时,可以指定工作进程的最大和最小数量。
# 自动扩展算法将在指定范围内动态调整工作进程数量。
#
# 默认值为 false(即禁用自动扩展)。
#
# 示例:
# CELERY_AUTO_SCALE=true
CELERY_AUTO_SCALE=false

# 自动扩展时 Celery 工作进程的最大数量。
# 这是可选的,仅在启用自动扩展时使用。
# 默认未设置。
CELERY_MAX_WORKERS=

# 自动扩展时 Celery 工作进程的最小数量。
# 这是可选的,仅在启用自动扩展时使用。
# 默认未设置。
CELERY_MIN_WORKERS=

# API 工具配置
API_TOOL_DEFAULT_CONNECT_TIMEOUT=10
API_TOOL_DEFAULT_READ_TIMEOUT=60

# ------------------------------
# 数据库配置
# 数据库使用 PostgreSQL。请使用 public schema。
# 与下面的 'db' 服务中的配置一致。
# ------------------------------

DB_USERNAME=postgres
DB_PASSWORD=difyai123456
DB_HOST=db
DB_PORT=5432
DB_DATABASE=dify
# 数据库连接池的大小。
# 默认是 30 个连接,可以适当增加。
SQLALCHEMY_POOL_SIZE=30
# 数据库连接池回收时间,默认是 3600 秒。
SQLALCHEMY_POOL_RECYCLE=3600
# 是否打印 SQL,默认是 false。
SQLALCHEMY_ECHO=false

# 数据库的最大连接数
# 默认是 100
#
# 参考: https://www.postgresql.org/docs/current/runtime-config-connection.html#GUC-MAX-CONNECTIONS
POSTGRES_MAX_CONNECTIONS=100

# 设置 postgres 共享缓冲区使用的共享内存量。
# 默认是 128MB
# 推荐值: 可用内存的 25%
# 参考: https://www.postgresql.org/docs/current/runtime-config-resource.html#GUC-SHARED-BUFFERS
POSTGRES_SHARED_BUFFERS=128MB

# 设置每个数据库工作者用于工作空间的内存量。
# 默认是 4MB
#
# 参考: https://www.postgresql.org/docs/current/runtime-config-resource.html#GUC-WORK-MEM
POSTGRES_WORK_MEM=4MB

# 设置保留用于维护活动的内存量。
# 默认是 64MB
#
# 参考: https://www.postgresql.org/docs/current/runtime-config-resource.html#GUC-MAINTENANCE-WORK-MEM
POSTGRES_MAINTENANCE_WORK_MEM=64MB

# 设置规划器对有效缓存大小的假设。
# 默认是 4096MB
#
# 参考: https://www.postgresql.org/docs/current/runtime-config-query.html#GUC-EFFECTIVE-CACHE-SIZE
POSTGRES_EFFECTIVE_CACHE_SIZE=4096MB

# ------------------------------
# Redis 配置
# 此 Redis 配置用于缓存和对话期间的 pub/sub。
# ------------------------------

REDIS_HOST=redis
REDIS_PORT=6379
REDIS_USERNAME=
REDIS_PASSWORD=difyai123456
REDIS_USE_SSL=false

# ------------------------------
# Celery 配置
# ------------------------------

# 使用 redis 作为代理,并使用 redis db 1 作为 celery 代理。
# 格式如下: `redis://<redis_username>:<redis_password>@<redis_host>:<redis_port>/<redis_database>`
# 示例: redis://:difyai123456@redis:6379/1
CELERY_BROKER_URL=redis://:difyai123456@redis:6379/1
BROKER_USE_SSL=false

# ------------------------------
# CORS 配置
# 用于设置前端跨域访问策略。
# ------------------------------

# 指定 Web API 的跨域请求允许的来源,
# 例如 https://dify.app 或 * 表示所有来源。
WEB_API_CORS_ALLOW_ORIGINS=*

# 指定控制台 API 的跨域请求允许的来源,
# 例如 https://cloud.dify.ai 或 * 表示所有来源。
CONSOLE_CORS_ALLOW_ORIGINS=*

# ------------------------------
# 文件存储配置
# ------------------------------

# 用于存储用户文件的存储类型。
# 支持的值有 `local`、`s3`、`azure-blob`、`google-storage` 和 `tencent-cos`,
# 默认值: `local`
STORAGE_TYPE=local

# S3 配置
# 是否使用 AWS 管理的 IAM 角色来进行 S3 服务的身份验证。
# 如果设置为 false,必须提供访问密钥和秘密密钥。
S3_USE_AWS_MANAGED_IAM=false
# S3 服务的终端节点。
S3_ENDPOINT=
# S3 服务的区域。
S3_REGION=us-east-1
# 用于存储文件的 S3 桶名称。
S3_BUCKET_NAME=difyai
# 用于与 S3 服务进行身份验证的访问密钥。
S3_ACCESS_KEY=
# 用于与 S3 服务进行身份验证的秘密密钥。
S3_SECRET_KEY=

# Azure Blob 配置
# 用于存储文件的 Azure Blob 存储账户名称。
AZURE_BLOB_ACCOUNT_NAME=difyai
# 用于与 Azure Blob 存储账户进行身份验证的访问密钥。
AZURE_BLOB_ACCOUNT_KEY=difyai
# 用于存储文件的 Azure Blob 存储容器名称。
AZURE_BLOB_CONTAINER_NAME=difyai-container
# Azure Blob 存储账户的 URL。
AZURE_BLOB_ACCOUNT_URL=https://<your_account_name>.blob.core.windows.net

# Google Storage 配置
# 用于存储文件的 Google Storage 桶名称。
GOOGLE_STORAGE_BUCKET_NAME=your-bucket-name
# 用于与 Google Storage 服务进行身份验证的服务账户 JSON 密钥(Base64 编码)。
GOOGLE_STORAGE_SERVICE_ACCOUNT_JSON_BASE64=your-google-service-account-json-base64-string

# 阿里云 OSS 配置,
# 仅在 STORAGE_TYPE 为 `aliyun-oss` 时可用
ALIYUN_OSS_BUCKET_NAME=your-bucket-name
ALIYUN_OSS_ACCESS_KEY=your-access-key
ALIYUN_OSS_SECRET_KEY=your-secret-key
ALIYUN_OSS_ENDPOINT=https://oss-ap-southeast-1-internal.aliyuncs.com
ALIYUN_OSS_REGION=ap-southeast-1
ALIYUN_OSS_AUTH_VERSION=v4

# 腾讯 COS 配置
# 用于存储文件的腾讯 COS 桶名称。
TENCENT_COS_BUCKET_NAME=your-bucket-name
# 用于与腾讯 COS 服务进行身份验证的秘密密钥。
TENCENT_COS_SECRET_KEY=your-secret-key
# 用于与腾讯 COS 服务进行身份验证的秘密 ID。
TENCENT_COS_SECRET_ID=your-secret-id
# 腾讯 COS 服务的区域。
TENCENT_COS_REGION=your-region
# 腾讯 COS 服务的协议。
TENCENT_COS_SCHEME=your-scheme

# ------------------------------
# 向量数据库配置
# ------------------------------

# 使用的向量存储类型。
# 支持的值有 `weaviate`、`qdrant`、`milvus`、`myscale`、`relyt`、`pgvector`、`chroma`、`opensearch`、`tidb_vector`、`oracle`、`tencent`、`elasticsearch`。
VECTOR_STORE=weaviate

# Weaviate 端点 URL。仅在 VECTOR_STORE 为 `weaviate` 时可用。
WEAVIATE_ENDPOINT=http://weaviate:8080
# Weaviate API 密钥。
WEAVIATE_API_KEY=WVF5YThaHlkYwhGUSmCRgsX3tD5ngdN8pkih

# Qdrant 端点 URL。仅在 VECTOR_STORE 为 `qdrant` 时可用。
QDRANT_URL=http://qdrant:6333
# Qdrant API 密钥。
QDRANT_API_KEY=difyai123456
# Qdrant 客户端超时设置。
QDRANT_CLIENT_TIMEOUT=20
# Qdrant 客户端是否启用 gRPC 模式。
QDRANT_GRPC_ENABLED=false
# Qdrant 服务器 gRPC 模式端口。
QDRANT_GRPC_PORT=6334

# Milvus 配置,仅在 VECTOR_STORE 为 `milvus` 时可用。
# Milvus 主机。
MILVUS_HOST=127.0.0.1
# Milvus 端口。
MILVUS_PORT=19530
# Milvus 用户名。
MILVUS_USER=root
# Milvus 密码。
MILVUS_PASSWORD=Milvus
# Milvus TLS 开关。
MILVUS_SECURE=false

# MyScale 配置,仅在 VECTOR_STORE 为 `myscale` 时可用
# 为多语言支持,请设置 MYSCALE_FTS_PARAMS,参考:
# https://myscale.com/docs/en/text-search/#understanding-fts-index-parameters
MYSCALE_HOST=myscale
MYSCALE_PORT=8123
MYSCALE_USER=default
MYSCALE_PASSWORD=
MYSCALE_DATABASE=dify
MYSCALE_FTS_PARAMS=

# pgvector 配置,仅在 VECTOR_STORE 为 `pgvector-rs` 或 `pgvector` 时可用
PGVECTOR_HOST=pgvector
PGVECTOR_PORT=5432
PGVECTOR_USER=postgres
PGVECTOR_PASSWORD=difyai123456
PGVECTOR_DATABASE=dify

# TiDB 向量配置,仅在 VECTOR_STORE 为 `tidb` 时可用
TIDB_VECTOR_HOST=tidb
TIDB_VECTOR_PORT=4000
TIDB_VECTOR_USER=xxx.root
TIDB_VECTOR_PASSWORD=xxxxxx
TIDB_VECTOR_DATABASE=dify

# Chroma 配置,仅在 VECTOR_STORE 为 `chroma` 时可用
CHROMA_HOST=127.0.0.1
CHROMA_PORT=8000
CHROMA_TENANT=default_tenant
CHROMA_DATABASE=default_database
CHROMA_AUTH_PROVIDER=chromadb.auth.token_authn.TokenAuthClientProvider
CHROMA_AUTH_CREDENTIALS=xxxxxx

# Oracle 配置,仅在 VECTOR_STORE 为 `oracle` 时可用
ORACLE_HOST=oracle
ORACLE_PORT=1521
ORACLE_USER=dify
ORACLE_PASSWORD=dify
ORACLE_DATABASE=FREEPDB1

# relyt 配置,仅在 VECTOR_STORE 为 `relyt` 时可用
RELYT_HOST=db
RELYT_PORT=5432
RELYT_USER=postgres
RELYT_PASSWORD=difyai123456
RELYT_DATABASE=postgres

# open search 配置,仅在 VECTOR_STORE 为 `opensearch` 时可用
OPENSEARCH_HOST=opensearch
OPENSEARCH_PORT=9200
OPENSEARCH_USER=admin
OPENSEARCH_PASSWORD=admin
OPENSEARCH_SECURE=true

# 腾讯向量配置,仅在 VECTOR_STORE 为 `tencent` 时可用
TENCENT_VECTOR_DB_URL=http://127.0.0.1
TENCENT_VECTOR_DB_API_KEY=dify
TENCENT_VECTOR_DB_TIMEOUT=30
TENCENT_VECTOR_DB_USERNAME=dify
TENCENT_VECTOR_DB_DATABASE=dify
TENCENT_VECTOR_DB_SHARD=1
TENCENT_VECTOR_DB_REPLICAS=2

# ElasticSearch 配置,仅在 VECTOR_STORE 为 `elasticsearch` 时可用
ELASTICSEARCH_HOST=0.0.0.0
ELASTICSEARCH_PORT=9200
ELASTICSEARCH_USERNAME=elastic
ELASTICSEARCH_PASSWORD=elastic

# ------------------------------
# 知识配置
# ------------------------------

# 上传文件大小限制,默认 15M。
UPLOAD_FILE_SIZE_LIMIT=100

# 一次最多可以上传的文件数量,默认 5。
UPLOAD_FILE_BATCH_LIMIT=5

# ETL 类型,支持: `dify`、`Unstructured`
# `dify` Dify 的专有文件提取方案
# `Unstructured` Unstructured.io 文件提取方案
ETL_TYPE=dify

# Unstructured API 路径,当 ETL_TYPE 为 Unstructured 时需要配置。
# 例如: http://unstructured:8000/general/v0/general
UNSTRUCTURED_API_URL=

# ------------------------------
# 多模态配置
# ------------------------------

# 多模态模型输入时发送的图像格式,
# 默认是 base64,可选 url。
# url 模式的调用延迟将低于 base64 模式。
# 通常建议使用更兼容的 base64 模式。
# 如果配置为 url,则需要将 FILES_URL 配置为外部可访问的地址,以便多模态模型可以访问图像。
MULTIMODAL_SEND_IMAGE_FORMAT=base64

# 上传图像文件大小限制,默认 10M。
UPLOAD_IMAGE_FILE_SIZE_LIMIT=10

# ------------------------------
# Sentry 配置
# 用于应用监控和错误日志跟踪。
# ------------------------------

# API 服务的 Sentry DSN 地址,默认为空,
# 当为空时,所有监控信息不会上报到 Sentry。
# 如果未设置,Sentry 错误报告将被禁用。
API_SENTRY_DSN=

# API 服务的 Sentry 事件上报比例,如果是 0.01,则是 1%。
API_SENTRY_TRACES_SAMPLE_RATE=1.0

# API 服务的 Sentry 配置文件上报比例,如果是 0.01,则是 1%。
API_SENTRY_PROFILES_SAMPLE_RATE=1.0

# Web 服务的 Sentry DSN 地址,默认为空,
# 当为空时,所有监控信息不会上报到 Sentry。
# 如果未设置,Sentry 错误报告将被禁用。
WEB_SENTRY_DSN=

# ------------------------------
# Notion 集成配置
# 变量可以通过申请 Notion 集成获得: https://www.notion.so/my-integrations
# ------------------------------

# 配置为 "public" 或 "internal"。
# 由于 Notion 的 OAuth 重定向 URL 仅支持 HTTPS,
# 如果在本地部署,请使用 Notion 的内部集成。
NOTION_INTEGRATION_TYPE=public
# Notion OAuth 客户端密钥(用于公共集成类型)
NOTION_CLIENT_SECRET=
# Notion OAuth 客户端 ID(用于公共集成类型)
NOTION_CLIENT_ID=
# Notion 内部集成密钥。
# 如果 NOTION_INTEGRATION_TYPE 的值为 "internal",
# 需要配置此变量。
NOTION_INTERNAL_SECRET=

# ------------------------------
# 邮件相关配置
# ------------------------------

# 邮件类型,支持: resend, smtp
MAIL_TYPE=resend

# 默认的发送邮箱地址,如果未指定
MAIL_DEFAULT_SEND_FROM=

# Resend 邮件提供商的 API-Key,当 MAIL_TYPE 为 `resend` 时使用。
RESEND_API_KEY=your-resend-api-key

# SMTP 服务器配置,当 MAIL_TYPE 为 `smtp` 时使用
SMTP_SERVER=
SMTP_PORT=465
SMTP_USERNAME=
SMTP_PASSWORD=
SMTP_USE_TLS=true
SMTP_OPPORTUNISTIC_TLS=false

# ------------------------------
# 其他配置
# ------------------------------

# 索引分段的最大标记长度
INDEXING_MAX_SEGMENTATION_TOKENS_LENGTH=1000

# 成员邀请链接有效时间(小时),
# 默认: 72。
INVITE_EXPIRY_HOURS=72

# 重置密码令牌有效时间(小时),
# 默认: 24。
RESET_PASSWORD_TOKEN_EXPIRY_HOURS=24

# 沙箱服务端点。
CODE_EXECUTION_ENDPOINT=http://sandbox:8194
CODE_MAX_NUMBER=9223372036854775807
CODE_MIN_NUMBER=-9223372036854775808
CODE_MAX_DEPTH=5
CODE_MAX_PRECISION=20
CODE_MAX_STRING_LENGTH=80000
TEMPLATE_TRANSFORM_MAX_LENGTH=80000
CODE_MAX_STRING_ARRAY_LENGTH=30
CODE_MAX_OBJECT_ARRAY_LENGTH=30
CODE_MAX_NUMBER_ARRAY_LENGTH=1000

# SSRF 代理服务器 HTTP URL
SSRF_PROXY_HTTP_URL=http://ssrf_proxy:3128
# SSRF 代理服务器 HTTPS URL
SSRF_PROXY_HTTPS_URL=http://ssrf_proxy:3128

# ------------------------------
# db 服务的环境变量
# ------------------------------

PGUSER=${DB_USERNAME}
# 默认 postgres 用户的密码。
POSTGRES_PASSWORD=${DB_PASSWORD}
# 默认 postgres 数据库的名称。
POSTGRES_DB=${DB_DATABASE}
# postgres 数据目录
PGDATA=/var/lib/postgresql/data/pgdata

# ------------------------------
# sandbox 服务的环境变量
# ------------------------------

# sandbox 服务的 API 密钥
SANDBOX_API_KEY=dify-sandbox
# Gin 框架运行模式
SANDBOX_GIN_MODE=release
# 工作者超时(秒)
SANDBOX_WORKER_TIMEOUT=15
# 启用 sandbox 服务的网络
SANDBOX_ENABLE_NETWORK=true
# SSRF 保护的 HTTP 代理 URL
SANDBOX_HTTP_PROXY=http://ssrf_proxy:3128
# SSRF 保护的 HTTPS 代理 URL
SANDBOX_HTTPS_PROXY=http://ssrf_proxy:3128
# sandbox 服务运行的端口
SANDBOX_PORT=8194

# ------------------------------
# weaviate 服务的环境变量
# (仅在 VECTOR_STORE 为 weaviate 时使用)
# ------------------------------
WEAVIATE_PERSISTENCE_DATA_PATH='/var/lib/weaviate'
WEAVIATE_QUERY_DEFAULTS_LIMIT=25
WEAVIATE_AUTHENTICATION_ANONYMOUS_ACCESS_ENABLED=true
WEAVIATE_DEFAULT_VECTORIZER_MODULE=none
WEAVIATE_CLUSTER_HOSTNAME=node1
WEAVIATE_AUTHENTICATION_APIKEY_ENABLED=true
WEAVIATE_AUTHENTICATION_APIKEY_ALLOWED_KEYS=WVF5YThaHlkYwhGUSmCRgsX3tD5ngdN8pkih
[email protected]
WEAVIATE_AUTHORIZATION_ADMINLIST_ENABLED=true
[email protected]

# ------------------------------
# Chroma 的环境变量
# (仅在 VECTOR_STORE 为 chroma 时使用)
# ------------------------------

# Chroma 服务器的认证凭证
CHROMA_SERVER_AUTHN_CREDENTIALS=difyai123456
# Chroma 服务器的认证提供者
CHROMA_SERVER_AUTHN_PROVIDER=chromadb.auth.token_authn.TokenAuthenticationServerProvider
# Chroma 服务器的持久化设置
CHROMA_IS_PERSISTENT=TRUE

# ------------------------------
# Oracle 服务的环境变量
# (仅在 VECTOR_STORE 为 Oracle 时使用)
# ------------------------------
ORACLE_PWD=Dify123456
ORACLE_CHARACTERSET=AL32UTF8

# ------------------------------
# milvus 服务的环境变量
# (仅在 VECTOR_STORE 为 milvus 时使用)
# ------------------------------
# 自动压缩模式的 ETCD 配置
ETCD_AUTO_COMPACTION_MODE=revision
# 自动压缩保留的修订次数
ETCD_AUTO_COMPACTION_RETENTION=1000
# 后端配额(字节)
ETCD_QUOTA_BACKEND_BYTES=4294967296
# 触发快照前的更改次数
ETCD_SNAPSHOT_COUNT=50000
# MinIO 访问密钥用于认证
MINIO_ACCESS_KEY=minioadmin
# MinIO 秘密密钥用于认证
MINIO_SECRET_KEY=minioadmin
# ETCD 服务端点
ETCD_ENDPOINTS=etcd:2379
# MinIO 服务地址
MINIO_ADDRESS=minio:9000
# 启用或禁用安全授权
MILVUS_AUTHORIZATION_ENABLED=true

# ------------------------------
# pgvector / pgvector-rs 服务的环境变量
# (仅在 VECTOR_STORE 为 pgvector / pgvector-rs 时使用)
# ------------------------------
PGVECTOR_PGUSER=postgres
# 默认 postgres 用户的密码。
PGVECTOR_POSTGRES_PASSWORD=difyai123456
# 默认 postgres 数据库的名称。
PGVECTOR_POSTGRES_DB=dify
# postgres 数据目录
PGVECTOR_PGDATA=/var/lib/postgresql/data/pgdata

# ------------------------------
# opensearch 的环境变量
# (仅在 VECTOR_STORE 为 opensearch 时使用)
# ------------------------------
OPENSEARCH_DISCOVERY_TYPE=single-node
OPENSEARCH_BOOTSTRAP_MEMORY_LOCK=true
OPENSEARCH_JAVA_OPTS_MIN=512m
OPENSEARCH_JAVA_OPTS_MAX=1024m
OPENSEARCH_INITIAL_ADMIN_PASSWORD=Qazwsxedc!@#123
OPENSEARCH_MEMLOCK_SOFT=-1
OPENSEARCH_MEMLOCK_HARD=-1
OPENSEARCH_NOFILE_SOFT=65536
OPENSEARCH_NOFILE_HARD=65536

# ------------------------------
# Nginx 反向代理的环境变量
# ------------------------------
NGINX_SERVER_NAME=_
NGINX_HTTPS_ENABLED=false
# HTTP 端口
NGINX_PORT=80
# 仅当 HTTPS_ENABLED 为 true 时应用 SSL 设置
NGINX_SSL_PORT=443
# 如果 HTTPS_ENABLED 为 true,需要将你自己的 SSL 证书/密钥添加到 `./nginx/ssl` 目录
# 并相应修改以下环境变量。
NGINX_SSL_CERT_FILENAME=dify.crt
NGINX_SSL_CERT_KEY_FILENAME=dify.key
NGINX_SSL_PROTOCOLS=TLSv1.1 TLSv1.2 TLSv1.3

# Nginx 性能调优
NGINX_WORKER_PROCESSES=auto
NGINX_CLIENT_MAX_BODY_SIZE=15M
NGINX_KEEPALIVE_TIMEOUT=65

# 代理设置
NGINX_PROXY_READ_TIMEOUT=3600s
NGINX_PROXY_SEND_TIMEOUT=3600s

# 设置为 true 以接受 /.well-known/acme-challenge/ 的请求
NGINX_ENABLE_CERTBOT_CHALLENGE=false

# ------------------------------
# Certbot 配置
# ------------------------------

# 邮箱地址(获取 Let's Encrypt 证书时必填)
[email protected]

# 域名
CERTBOT_DOMAIN=your_domain.com

# certbot 命令选项
# 例如: --force-renewal --dry-run --test-cert --debug
CERTBOT_OPTIONS=

# ------------------------------
# SSRF 代理的环境变量
# ------------------------------
SSRF_HTTP_PORT=3128
SSRF_COREDUMP_DIR=/var/spool/squid
SSRF_REVERSE_PROXY_PORT=8194
SSRF_SANDBOX_HOST=sandbox

# ------------------------------
# 用于在启动时指定向量数据库类型的 Docker 环境变量
# (根据向量数据库类型,相应的 Docker
# compose 配置文件将被使用)
# 如果你想使用 unstructured,在末尾添加 ',unstructured'
# ------------------------------
COMPOSE_PROFILES=${VECTOR_STORE:-weaviate}

# ------------------------------
# Docker Compose 服务暴露主机端口配置
# ------------------------------
EXPOSE_NGINX_PORT=18102
EXPOSE_NGINX_SSL_PORT=443

# ----------------------------------------------------------------------------
# ModelProvider & 工具位置配置
# 用于指定应用中可使用的模型提供者和工具。
# ----------------------------------------------------------------------------

# Pin、include 和 exclude 工具
# 使用逗号分隔的值,中间没有空格。
# 示例: POSITION_TOOL_PINS=bing,google
POSITION_TOOL_PINS=
POSITION_TOOL_INCLUDES=
POSITION_TOOL_EXCLUDES=

# Pin、include 和 exclude 模型提供者
# 使用逗号分隔的值,中间没有空格。
# 示例: POSITION_PROVIDER_PINS=openai,openllm
POSITION_PROVIDER_PINS=
POSITION_PROVIDER_INCLUDES=
POSITION_PROVIDER_EXCLUDES=

2. 配置说明

通用变量(Common Variables)

作用

这些变量用于配置应用程序的基本 URL 和服务地址,确保不同组件之间能够正确通信。

关键变量

  • CONSOLE_API_URL:控制台 API 的后端 URL,用于授权回调。
  • CONSOLE_WEB_URL:控制台网页的前端 URL,用于前端地址拼接和 CORS 配置。
  • SERVICE_API_URL:服务 API 的基础 URL,用于前端显示。
  • APP_API_URLAPP_WEB_URL:WebApp API 和 WebApp 的 URL。
  • FILES_URL:文件预览或下载的 URL 前缀,支持签名和过期时间。

服务器配置(Server Configuration)

作用

配置应用程序的运行模式、日志级别、安全密钥等。

关键变量

  • LOG_LEVEL:日志级别(如 DEBUG, INFO 等)。
  • DEBUGFLASK_DEBUG:调试模式开关。
  • SECRET_KEY:用于安全签名会话 cookie 和加密数据库敏感信息的密钥。
  • INIT_PASSWORD:初始化管理员用户的密码。
  • DEPLOY_ENV:部署环境(如 PRODUCTION, TESTING)。
  • CHECK_UPDATE_URL:版本检查的 URL。
  • OPENAI_API_BASE:OpenAI API 的基础地址。
  • FILES_ACCESS_TIMEOUT:文件访问的超时时间。
  • APP_MAX_ACTIVE_REQUESTS:应用的最大活跃请求数。

容器启动相关配置(Container Startup Related Configuration)

作用

配置 Docker 容器的绑定地址、端口、工作进程数量等,优化容器性能。

关键变量

  • DIFY_BIND_ADDRESSDIFY_PORT:API 服务的绑定地址和端口。
  • SERVER_WORKER_AMOUNTSERVER_WORKER_CLASS:Gunicorn 工作进程数量及类型。
  • CELERY_WORKER_CLASSCELERY_WORKER_AMOUNT:Celery 工作进程类型及数量。
  • GUNICORN_TIMEOUT:请求处理的超时时间。
  • CELERY_AUTO_SCALECELERY_MAX_WORKERSCELERY_MIN_WORKERS:Celery 工作进程的自动扩展配置。
  • API_TOOL_DEFAULT_CONNECT_TIMEOUTAPI_TOOL_DEFAULT_READ_TIMEOUT:API 工具的默认连接和读取超时。

数据库配置(Database Configuration)

作用

配置 PostgreSQL 数据库的连接信息和性能参数。

关键变量

  • DB_USERNAME, DB_PASSWORD, DB_HOST, DB_PORT, DB_DATABASE:数据库的连接凭证和地址。
  • SQLALCHEMY_POOL_SIZESQLALCHEMY_POOL_RECYCLE:数据库连接池的大小和回收时间。
  • POSTGRES_MAX_CONNECTIONS:数据库的最大连接数。
  • POSTGRES_SHARED_BUFFERS, POSTGRES_WORK_MEM, POSTGRES_MAINTENANCE_WORK_MEM, POSTGRES_EFFECTIVE_CACHE_SIZE:PostgreSQL 的性能优化参数。

Redis 配置(Redis Configuration)

作用

配置 Redis 缓存和消息队列的连接信息。

关键变量

  • REDIS_HOST, REDIS_PORT, REDIS_PASSWORD:Redis 的连接地址和密码。
  • REDIS_USE_SSL:是否使用 SSL 连接。
  • 其他 Sentinel 配置变量(如使用 Sentinel 时需要设置)。

Celery 配置(Celery Configuration)

作用

配置 Celery 任务队列的代理和相关参数。

关键变量

  • CELERY_BROKER_URL:Celery 的代理 URL(通常使用 Redis)。
  • BROKER_USE_SSL:是否使用 SSL 连接代理。
  • Sentinel 相关配置(如果使用 Sentinel)。

CORS 配置(CORS Configuration)

作用

配置跨域资源共享(CORS)策略,允许前端应用访问 API。

关键变量

  • WEB_API_CORS_ALLOW_ORIGINS:Web API 允许的跨域来源。
  • CONSOLE_CORS_ALLOW_ORIGINS:控制台 API 允许的跨域来源。

文件存储配置(File Storage Configuration)

作用

配置用户文件的存储方式和相关参数,支持多种存储后端(如本地、S3、Azure Blob 等)。

关键变量

  • STORAGE_TYPE:选择存储类型(如 local, s3, azure-blob 等)。
  • 各种存储后端的具体配置变量(如 S3_BUCKET_NAME, AZURE_BLOB_ACCOUNT_NAME 等)。

向量数据库配置(Vector Database Configuration)

作用

配置用于存储向量数据的数据库,支持多种类型(如 Weaviate, Qdrant, Milvus 等)。

关键变量

  • VECTOR_STORE:选择向量存储类型(如 weaviate, qdrant 等)。
  • 各种向量数据库的具体配置变量(如 WEAVIATE_ENDPOINT, QDRANT_URL 等)。

知识配置(Knowledge Configuration)

作用

配置知识库相关的参数,如文件上传限制和 ETL 类型。

关键变量

  • UPLOAD_FILE_SIZE_LIMIT:上传文件的大小限制。
  • UPLOAD_FILE_BATCH_LIMIT:一次上传文件的最大数量。
  • ETL_TYPE:ETL 类型(如 dify, Unstructured)。
  • UNSTRUCTURED_API_URL:当 ETL_TYPEUnstructured 时,需要配置的 API 路径。

多模态配置(Multi-modal Configuration)

作用

配置多模态模型的输入格式和上传图像的限制。

关键变量

  • MULTIMODAL_SEND_IMAGE_FORMAT:多模态模型输入时发送的图像格式(base64url)。
  • UPLOAD_IMAGE_FILE_SIZE_LIMIT:上传图像文件的大小限制。

Sentry 配置(Sentry Configuration)

作用

配置 Sentry 用于应用监控和错误日志跟踪。

关键变量

  • API_SENTRY_DSNWEB_SENTRY_DSN:Sentry 的 DSN 地址。
  • API_SENTRY_TRACES_SAMPLE_RATEAPI_SENTRY_PROFILES_SAMPLE_RATE:Sentry 事件和配置文件的采样率。

Notion 集成配置(Notion Integration Configuration)

作用

配置与 Notion 的集成,支持 OAuth 授权。

关键变量

  • NOTION_INTEGRATION_TYPE:集成类型(publicinternal)。
  • NOTION_CLIENT_SECRET, NOTION_CLIENT_ID:公共集成类型的 OAuth 凭证。
  • NOTION_INTERNAL_SECRET:内部集成类型的秘密。

邮件相关配置(Mail Configuration)

作用

配置应用程序的邮件发送方式和相关参数。

关键变量

  • MAIL_TYPE:邮件类型(resendsmtp)。
  • MAIL_DEFAULT_SEND_FROM:默认发送邮件的地址。
  • RESEND_API_KEY:Resend 邮件提供商的 API 密钥。
  • SMTP 配置变量(如 SMTP_SERVER, SMTP_PORT 等)。

其他配置(Others Configuration)

作用

配置应用程序的其他功能,如分段标记长度限制、邀请链接有效时间等。

关键变量

  • INDEXING_MAX_SEGMENTATION_TOKENS_LENGTH:索引分段的最大标记长度。
  • INVITE_EXPIRY_HOURS:成员邀请链接的有效时间。
  • RESET_PASSWORD_TOKEN_EXPIRY_HOURS:重置密码令牌的有效时间。
  • CODE_EXECUTION_ENDPOINT 等代码执行相关参数。
  • SSRF_PROXY_HTTP_URLSSRF_PROXY_HTTPS_URL:SSRF 代理服务器的 URL。

发表评论