mirror of
https://github.com/okxlin/appstore.git
synced 2026-09-23 08:01:00 +00:00
312 lines
8.7 KiB
Bash
312 lines
8.7 KiB
Bash
# ------------------------------------------------------------------
|
|
# Runtime defaults for this 1Panel package.
|
|
# 1Panel loads this file automatically via docker-compose.yml.
|
|
#
|
|
# For direct docker compose deployment of this package, copy this file
|
|
# to .env or adjust docker-compose.yml to reference dify.env directly:
|
|
# docker compose up -d
|
|
# ------------------------------------------------------------------
|
|
|
|
# 1Panel runtime defaults
|
|
PANEL_APP_PORT_HTTP=40288
|
|
CONTAINER_NAME=dify
|
|
APP_DATA_DIR=./data
|
|
TZ=Asia/Shanghai
|
|
CUSTOM_ENV_FILE=./data/custom.env
|
|
PUBLIC_BASE_URL=
|
|
|
|
# Store dependency defaults
|
|
PANEL_DB_TYPE=postgresql
|
|
PANEL_DB_HOST=postgresql
|
|
PANEL_DB_PORT=5432
|
|
PANEL_DB_USER=dify
|
|
PANEL_DB_USER_PASSWORD=difyai123456
|
|
PANEL_DB_NAME=dify
|
|
PANEL_REDIS_ROOT_PASSWORD=difyai123456
|
|
|
|
# Core service URLs
|
|
CONSOLE_API_URL=
|
|
SERVER_CONSOLE_API_URL=http://api:5001
|
|
CONSOLE_WEB_URL=
|
|
SERVICE_API_URL=
|
|
TRIGGER_URL=/
|
|
APP_API_URL=
|
|
APP_WEB_URL=
|
|
FILES_URL=
|
|
INTERNAL_FILES_URL=
|
|
ENDPOINT_URL_TEMPLATE=/e/{hook_id}
|
|
NEXT_PUBLIC_SOCKET_URL=/
|
|
|
|
# Runtime and security
|
|
LANG=C.UTF-8
|
|
LC_ALL=C.UTF-8
|
|
PYTHONIOENCODING=utf-8
|
|
UV_CACHE_DIR=/tmp/.uv-cache
|
|
# Leave empty to auto-generate a persistent key in the storage directory.
|
|
SECRET_KEY=
|
|
INIT_PASSWORD=
|
|
DEPLOY_ENV=PRODUCTION
|
|
CHECK_UPDATE_URL=https://updates.dify.ai
|
|
OPENAI_API_BASE=https://api.openai.com/v1
|
|
MIGRATION_ENABLED=true
|
|
FILES_ACCESS_TIMEOUT=300
|
|
# Remove `collaboration` from COMPOSE_PROFILES to stop the dedicated websocket service.
|
|
ENABLE_COLLABORATION_MODE=false
|
|
|
|
# Learn app feature toggle
|
|
ENABLE_LEARN_APP=true
|
|
|
|
# Logging and server workers
|
|
LOG_LEVEL=INFO
|
|
LOG_OUTPUT_FORMAT=text
|
|
LOG_FILE=/app/logs/server.log
|
|
LOG_FILE_MAX_SIZE=20
|
|
LOG_FILE_BACKUP_COUNT=5
|
|
LOG_DATEFORMAT=%Y-%m-%d %H:%M:%S
|
|
LOG_TZ=UTC
|
|
DEBUG=false
|
|
FLASK_DEBUG=false
|
|
ENABLE_REQUEST_LOGGING=False
|
|
DIFY_BIND_ADDRESS=0.0.0.0
|
|
DIFY_PORT=5001
|
|
SERVER_WORKER_AMOUNT=1
|
|
SERVER_WORKER_CLASS=gevent
|
|
SERVER_WORKER_CONNECTIONS=10
|
|
API_WEBSOCKET_WORKER_CLASS=geventwebsocket.gunicorn.workers.GeventWebSocketWorker
|
|
API_WEBSOCKET_WORKER_CONNECTIONS=1000
|
|
API_WEBSOCKET_GUNICORN_TIMEOUT=360
|
|
GUNICORN_TIMEOUT=360
|
|
CELERY_WORKER_CLASS=
|
|
CELERY_WORKER_AMOUNT=4
|
|
CELERY_AUTO_SCALE=false
|
|
CELERY_MAX_WORKERS=
|
|
CELERY_MIN_WORKERS=
|
|
COMPOSE_WORKER_HEALTHCHECK_DISABLED=true
|
|
COMPOSE_WORKER_HEALTHCHECK_INTERVAL=30s
|
|
COMPOSE_WORKER_HEALTHCHECK_TIMEOUT=30s
|
|
|
|
# Database
|
|
DB_TYPE=postgresql
|
|
DB_USERNAME=dify
|
|
DB_PASSWORD=difyai123456
|
|
DB_HOST=postgresql
|
|
DB_PORT=5432
|
|
DB_DATABASE=dify
|
|
SQLALCHEMY_POOL_SIZE=30
|
|
SQLALCHEMY_MAX_OVERFLOW=10
|
|
SQLALCHEMY_POOL_RECYCLE=3600
|
|
SQLALCHEMY_ECHO=false
|
|
SQLALCHEMY_POOL_PRE_PING=false
|
|
SQLALCHEMY_POOL_USE_LIFO=false
|
|
SQLALCHEMY_POOL_TIMEOUT=30
|
|
SQLALCHEMY_POOL_RESET_ON_RETURN=rollback
|
|
PGDATA=/var/lib/postgresql/data/pgdata
|
|
POSTGRES_MAX_CONNECTIONS=200
|
|
POSTGRES_SHARED_BUFFERS=128MB
|
|
POSTGRES_WORK_MEM=4MB
|
|
POSTGRES_MAINTENANCE_WORK_MEM=64MB
|
|
POSTGRES_EFFECTIVE_CACHE_SIZE=4096MB
|
|
POSTGRES_STATEMENT_TIMEOUT=0
|
|
POSTGRES_IDLE_IN_TRANSACTION_SESSION_TIMEOUT=0
|
|
|
|
# Redis and Celery
|
|
REDIS_HOST=redis
|
|
REDIS_PORT=6379
|
|
REDIS_USERNAME=
|
|
REDIS_PASSWORD=difyai123456
|
|
REDIS_USE_SSL=false
|
|
REDIS_SSL_CERT_REQS=CERT_NONE
|
|
REDIS_SSL_CA_CERTS=
|
|
REDIS_SSL_CERTFILE=
|
|
REDIS_SSL_KEYFILE=
|
|
REDIS_DB=0
|
|
REDIS_KEY_PREFIX=
|
|
REDIS_MAX_CONNECTIONS=
|
|
REDIS_RETRY_RETRIES=3
|
|
REDIS_RETRY_BACKOFF_BASE=1.0
|
|
REDIS_RETRY_BACKOFF_CAP=10.0
|
|
REDIS_SOCKET_TIMEOUT=5.0
|
|
REDIS_SOCKET_CONNECT_TIMEOUT=5.0
|
|
REDIS_HEALTH_CHECK_INTERVAL=30
|
|
CELERY_BROKER_URL=redis://:difyai123456@redis:6379/1
|
|
CELERY_BACKEND=redis
|
|
BROKER_USE_SSL=false
|
|
CELERY_TASK_ANNOTATIONS=null
|
|
EVENT_BUS_REDIS_URL=
|
|
EVENT_BUS_REDIS_CHANNEL_TYPE=pubsub
|
|
EVENT_BUS_REDIS_USE_CLUSTERS=false
|
|
|
|
# Web and app limits
|
|
WEB_API_CORS_ALLOW_ORIGINS=*
|
|
CONSOLE_CORS_ALLOW_ORIGINS=*
|
|
COOKIE_DOMAIN=
|
|
NEXT_PUBLIC_COOKIE_DOMAIN=
|
|
NEXT_PUBLIC_BATCH_CONCURRENCY=5
|
|
API_SENTRY_DSN=
|
|
API_SENTRY_TRACES_SAMPLE_RATE=1.0
|
|
API_SENTRY_PROFILES_SAMPLE_RATE=1.0
|
|
WEB_SENTRY_DSN=
|
|
AMPLITUDE_API_KEY=
|
|
TEXT_GENERATION_TIMEOUT_MS=60000
|
|
CSP_WHITELIST=
|
|
ALLOW_EMBED=false
|
|
ALLOW_UNSAFE_DATA_SCHEME=false
|
|
TOP_K_MAX_VALUE=10
|
|
INDEXING_MAX_SEGMENTATION_TOKENS_LENGTH=4000
|
|
LOOP_NODE_MAX_COUNT=100
|
|
MAX_TOOLS_NUM=10
|
|
MAX_PARALLEL_LIMIT=10
|
|
MAX_ITERATIONS_NUM=99
|
|
MAX_TREE_DEPTH=50
|
|
ENABLE_WEBSITE_JINAREADER=true
|
|
ENABLE_WEBSITE_FIRECRAWL=true
|
|
ENABLE_WEBSITE_WATERCRAWL=true
|
|
NEXT_PUBLIC_ENABLE_SINGLE_DOLLAR_LATEX=false
|
|
# Enable preview features still in development (currently the /create and
|
|
# /refine slash commands in the "Go to Anything" command palette).
|
|
NEXT_PUBLIC_ENABLE_FEATURE_PREVIEW=true
|
|
NEXT_PUBLIC_ENABLE_AGENT_V2=true
|
|
EXPERIMENTAL_ENABLE_VINEXT=false
|
|
WORKFLOW_GENERATION_TIMEOUT_MS=180000
|
|
|
|
# Dify Agent services
|
|
DIFY_AGENT_SHELLCTL_AUTH_TOKEN=
|
|
DIFY_AGENT_SERVER_SECRET_KEY=
|
|
|
|
# Storage and default vector store
|
|
STORAGE_TYPE=opendal
|
|
OPENDAL_SCHEME=fs
|
|
OPENDAL_FS_ROOT=storage
|
|
VECTOR_STORE=weaviate
|
|
VECTOR_INDEX_NAME_PREFIX=Vector_index
|
|
WEAVIATE_ENDPOINT=http://weaviate:8080
|
|
WEAVIATE_API_KEY=weaviate-change-me
|
|
WEAVIATE_GRPC_ENDPOINT=grpc://weaviate:50051
|
|
WEAVIATE_TOKENIZATION=word
|
|
WEAVIATE_PERSISTENCE_DATA_PATH=/var/lib/weaviate
|
|
WEAVIATE_QUERY_DEFAULTS_LIMIT=25
|
|
WEAVIATE_AUTHENTICATION_ANONYMOUS_ACCESS_ENABLED=false
|
|
WEAVIATE_DEFAULT_VECTORIZER_MODULE=none
|
|
WEAVIATE_CLUSTER_HOSTNAME=node1
|
|
WEAVIATE_AUTHENTICATION_APIKEY_ENABLED=true
|
|
WEAVIATE_AUTHENTICATION_APIKEY_ALLOWED_KEYS=weaviate-change-me
|
|
WEAVIATE_AUTHENTICATION_APIKEY_USERS=dify@local
|
|
WEAVIATE_AUTHORIZATION_ADMINLIST_ENABLED=true
|
|
WEAVIATE_AUTHORIZATION_ADMINLIST_USERS=dify@local
|
|
WEAVIATE_DISABLE_TELEMETRY=false
|
|
WEAVIATE_ENABLE_TOKENIZER_GSE=false
|
|
WEAVIATE_ENABLE_TOKENIZER_KAGOME_JA=false
|
|
WEAVIATE_ENABLE_TOKENIZER_KAGOME_KR=false
|
|
|
|
# Sandbox and SSRF proxy
|
|
CODE_EXECUTION_ENDPOINT=http://sandbox:8194
|
|
CODE_EXECUTION_API_KEY=dify-sandbox
|
|
CODE_EXECUTION_SSL_VERIFY=True
|
|
CODE_EXECUTION_POOL_MAX_CONNECTIONS=100
|
|
CODE_EXECUTION_POOL_MAX_KEEPALIVE_CONNECTIONS=20
|
|
CODE_EXECUTION_POOL_KEEPALIVE_EXPIRY=5.0
|
|
CODE_EXECUTION_CONNECT_TIMEOUT=10
|
|
CODE_EXECUTION_READ_TIMEOUT=60
|
|
CODE_EXECUTION_WRITE_TIMEOUT=10
|
|
SANDBOX_API_KEY=dify-sandbox
|
|
SANDBOX_GIN_MODE=release
|
|
SANDBOX_WORKER_TIMEOUT=15
|
|
SANDBOX_ENABLE_NETWORK=true
|
|
SANDBOX_HTTP_PROXY=http://ssrf_proxy:3128
|
|
SANDBOX_HTTPS_PROXY=http://ssrf_proxy:3128
|
|
SANDBOX_PORT=8194
|
|
PIP_MIRROR_URL=
|
|
SSRF_PROXY_HTTP_URL=http://ssrf_proxy:3128
|
|
SSRF_PROXY_HTTPS_URL=http://ssrf_proxy:3128
|
|
SSRF_HTTP_PORT=3128
|
|
SSRF_COREDUMP_DIR=/var/spool/squid
|
|
SSRF_DEFAULT_TIME_OUT=5
|
|
SSRF_DEFAULT_CONNECT_TIME_OUT=5
|
|
SSRF_DEFAULT_READ_TIME_OUT=5
|
|
SSRF_DEFAULT_WRITE_TIME_OUT=5
|
|
SSRF_POOL_MAX_CONNECTIONS=100
|
|
SSRF_POOL_MAX_KEEPALIVE_CONNECTIONS=20
|
|
SSRF_POOL_KEEPALIVE_EXPIRY=5.0
|
|
|
|
# Plugin daemon
|
|
DB_PLUGIN_DATABASE=dify_plugin
|
|
EXPOSE_PLUGIN_DAEMON_PORT=5002
|
|
PLUGIN_DAEMON_PORT=5002
|
|
PLUGIN_DAEMON_KEY=plugin-daemon-key-change-me
|
|
PLUGIN_DAEMON_TIMEOUT=600.0
|
|
PLUGIN_DAEMON_URL=http://plugin_daemon:5002
|
|
PLUGIN_MAX_PACKAGE_SIZE=52428800
|
|
PLUGIN_MODEL_SCHEMA_CACHE_TTL=3600
|
|
PLUGIN_PPROF_ENABLED=false
|
|
PLUGIN_DEBUGGING_HOST=0.0.0.0
|
|
PLUGIN_DEBUGGING_PORT=5003
|
|
PLUGIN_REMOTE_INSTALL_HOST=
|
|
EXPOSE_PLUGIN_DEBUGGING_PORT=5003
|
|
PLUGIN_DIFY_INNER_API_KEY=plugin-inner-api-key-change-me
|
|
PLUGIN_DIFY_INNER_API_URL=http://api:5001
|
|
FORCE_VERIFYING_SIGNATURE=true
|
|
PLUGIN_STDIO_BUFFER_SIZE=1024
|
|
PLUGIN_STDIO_MAX_BUFFER_SIZE=5242880
|
|
PLUGIN_PYTHON_ENV_INIT_TIMEOUT=120
|
|
PLUGIN_MAX_EXECUTION_TIMEOUT=600
|
|
PLUGIN_STORAGE_TYPE=local
|
|
PLUGIN_STORAGE_LOCAL_ROOT=/app/storage
|
|
PLUGIN_WORKING_PATH=/app/storage/cwd
|
|
PLUGIN_INSTALLED_PATH=plugin
|
|
PLUGIN_PACKAGE_CACHE_PATH=plugin_packages
|
|
PLUGIN_MEDIA_CACHE_PATH=assets
|
|
PLUGIN_STORAGE_OSS_BUCKET=
|
|
PLUGIN_S3_USE_AWS_MANAGED_IAM=false
|
|
PLUGIN_S3_USE_AWS=false
|
|
PLUGIN_S3_ENDPOINT=
|
|
PLUGIN_S3_USE_PATH_STYLE=false
|
|
PLUGIN_AWS_ACCESS_KEY=
|
|
PLUGIN_AWS_SECRET_KEY=
|
|
PLUGIN_AWS_REGION=
|
|
PLUGIN_AZURE_BLOB_STORAGE_CONNECTION_STRING=
|
|
PLUGIN_AZURE_BLOB_STORAGE_CONTAINER_NAME=
|
|
PLUGIN_TENCENT_COS_SECRET_KEY=
|
|
PLUGIN_TENCENT_COS_SECRET_ID=
|
|
PLUGIN_TENCENT_COS_REGION=
|
|
PLUGIN_ALIYUN_OSS_REGION=
|
|
PLUGIN_ALIYUN_OSS_ENDPOINT=
|
|
PLUGIN_ALIYUN_OSS_ACCESS_KEY_ID=
|
|
PLUGIN_ALIYUN_OSS_ACCESS_KEY_SECRET=
|
|
PLUGIN_ALIYUN_OSS_AUTH_VERSION=v4
|
|
PLUGIN_ALIYUN_OSS_PATH=
|
|
PLUGIN_VOLCENGINE_TOS_ENDPOINT=
|
|
PLUGIN_VOLCENGINE_TOS_ACCESS_KEY=
|
|
PLUGIN_VOLCENGINE_TOS_SECRET_KEY=
|
|
PLUGIN_VOLCENGINE_TOS_REGION=
|
|
PLUGIN_SENTRY_ENABLED=false
|
|
PLUGIN_SENTRY_DSN=
|
|
|
|
# Marketplace
|
|
MARKETPLACE_ENABLED=true
|
|
MARKETPLACE_API_URL=https://marketplace.dify.ai
|
|
MARKETPLACE_URL=
|
|
|
|
# Nginx and Docker Compose
|
|
NGINX_SERVER_NAME=_
|
|
NGINX_HTTPS_ENABLED=false
|
|
NGINX_PORT=80
|
|
NGINX_SSL_PORT=443
|
|
NGINX_SSL_CERT_FILENAME=dify.crt
|
|
NGINX_SSL_CERT_KEY_FILENAME=dify.key
|
|
NGINX_SSL_PROTOCOLS=TLSv1.2 TLSv1.3
|
|
NGINX_WORKER_PROCESSES=auto
|
|
NGINX_CLIENT_MAX_BODY_SIZE=100M
|
|
NGINX_KEEPALIVE_TIMEOUT=65
|
|
NGINX_PROXY_READ_TIMEOUT=3600s
|
|
NGINX_PROXY_SEND_TIMEOUT=3600s
|
|
NGINX_ENABLE_CERTBOT_CHALLENGE=false
|
|
NGINX_SOCKET_IO_UPSTREAM=api_websocket:5001
|
|
CERTBOT_DOMAIN=
|
|
EXPOSE_NGINX_PORT=80
|
|
EXPOSE_NGINX_SSL_PORT=443
|
|
COMPOSE_PROFILES=${VECTOR_STORE:-weaviate},${DB_TYPE:-postgresql},collaboration
|
|
NEXT_TELEMETRY_DISABLED=0
|
|
DB_SSL_MODE=disable
|
|
SSRF_PROXY_ALLOW_PRIVATE_IPS=
|
|
SSRF_PROXY_ALLOW_PRIVATE_DOMAINS=
|