# ============================================================================= # Dify - Environment Configuration # ============================================================================= # Copy this file to .env and adjust values for your deployment. # cp .env.example .env # The actual .env is deployed by Dockhand — do NOT commit it. # # To start: # docker compose up -d # Public URL (behind SWAG): https://dify.ld50.xyz # ============================================================================= # --------------------------------------------------------------------------- # Database (PostgreSQL) # --------------------------------------------------------------------------- DB_USERNAME=dify DB_PASSWORD=your-secure-password-here DB_DATABASE=dify # --------------------------------------------------------------------------- # Cache / Queue (Redis) # --------------------------------------------------------------------------- REDIS_PASSWORD=your-secure-password-here # --------------------------------------------------------------------------- # Security # --------------------------------------------------------------------------- # Generate a strong SECRET_KEY: openssl rand -base64 42 SECRET_KEY=change-me-to-a-random-generated-key INIT_PASSWORD=change-me-on-first-login # --------------------------------------------------------------------------- # LLM Provider (Venice.ai — OpenAI-compatible) # --------------------------------------------------------------------------- # Dify supports any OpenAI-compatible API. Configure your provider here. # Venice.ai is used as the default. Set your Venice API key below. VENICE_API_KEY=your-venice-api-key-here VENICE_API_BASE=https://api.venice.ai/api/v1 # --------------------------------------------------------------------------- # Embeddings Provider (Voyage AI for Weaviate) # --------------------------------------------------------------------------- # Weaviate's text2vec-voyageai module reads VOYAGEAI_APIKEY at container start. # We map this from VOYAGEAI_API_KEY in docker-compose for readability. VOYAGEAI_API_KEY=your-voyageai-api-key-here # --------------------------------------------------------------------------- # Sandbox (secure code execution) # --------------------------------------------------------------------------- SANDBOX_API_KEY=your-sandbox-api-key-here SANDBOX_GIN_MODE=release SANDBOX_WORKER_TIMEOUT=15 SANDBOX_ENABLE_NETWORK=true # --------------------------------------------------------------------------- # Plugin Daemon # --------------------------------------------------------------------------- PLUGIN_DAEMON_KEY=change-me-to-a-random-generated-key PLUGIN_DIFY_INNER_API_KEY=change-me-to-a-random-generated-key PLUGIN_DAEMON_TIMEOUT=600.0 PLUGIN_MAX_PACKAGE_SIZE=52428800 PLUGIN_DEBUGGING_PORT=5003 EXPOSE_PLUGIN_DEBUGGING_HOST=localhost FORCE_VERIFYING_SIGNATURE=false # --------------------------------------------------------------------------- # Exposed Ports # --------------------------------------------------------------------------- # Nginx (internal app proxy container) host ports. # Keep non-80/443 because SWAG usually owns 80/443 on the host. EXPOSE_NGINX_PORT=8089 EXPOSE_NGINX_SSL_PORT=8443 # Plugin daemon debug port (only needed when debugging plugins externally) EXPOSE_PLUGIN_DEBUGGING_PORT=5003 # --------------------------------------------------------------------------- # URL Configuration # --------------------------------------------------------------------------- # Set these to match your public-facing URLs if behind a reverse proxy. # These defaults work for direct LAN access. CONSOLE_API_URL=https://dify.ld50.xyz CONSOLE_WEB_URL=https://dify.ld50.xyz SERVICE_API_URL=https://dify.ld50.xyz APP_API_URL=https://dify.ld50.xyz APP_WEB_URL=https://dify.ld50.xyz FILES_URL=https://dify.ld50.xyz # Internal Docker-network URL for service-to-service file fetches INTERNAL_FILES_URL=http://dify-api:5001 NEXT_PUBLIC_SOCKET_URL=wss://dify.ld50.xyz # --------------------------------------------------------------------------- # Storage (upstream-aligned defaults) # --------------------------------------------------------------------------- # Keep these unless you have a reason to change storage backend behavior. STORAGE_TYPE=opendal STORAGE_LOCAL_PATH=storage OPENDAL_SCHEME=fs OPENDAL_ROOT=storage # Init-permissions container chowns bind-mounted storage before API/worker start. # 1001:1001 matches upstream Dify container user defaults. DIFY_STORAGE_UID=1001 DIFY_STORAGE_GID=1001 # --------------------------------------------------------------------------- # Vector Store (Weaviate) # --------------------------------------------------------------------------- VECTOR_STORE=weaviate WEAVIATE_ENDPOINT=http://dify-weaviate:8080 WEAVIATE_API_KEY=WVF5YThaHlkYwhGUSmCRgsX3tD5ngdN8pkih # Weaviate service tuning/auth defaults (must match compose service config) WEAVIATE_PERSISTENCE_DATA_PATH=/var/lib/weaviate WEAVIATE_QUERY_DEFAULTS_LIMIT=25 WEAVIATE_ENABLE_MODULES=text2vec-voyageai WEAVIATE_DEFAULT_VECTORIZER_MODULE=text2vec-voyageai WEAVIATE_CLUSTER_HOSTNAME=node1 WEAVIATE_AUTHENTICATION_ANONYMOUS_ACCESS_ENABLED=false WEAVIATE_AUTHENTICATION_APIKEY_ENABLED=true WEAVIATE_AUTHENTICATION_APIKEY_ALLOWED_KEYS=WVF5YThaHlkYwhGUSmCRgsX3tD5ngdN8pkih WEAVIATE_AUTHENTICATION_APIKEY_USERS=hello@dify.ai WEAVIATE_AUTHORIZATION_ADMINLIST_ENABLED=true WEAVIATE_AUTHORIZATION_ADMINLIST_USERS=hello@dify.ai WEAVIATE_DISABLE_TELEMETRY=false WEAVIATE_ENABLE_TOKENIZER_GSE=false WEAVIATE_ENABLE_TOKENIZER_KAGOME_JA=false WEAVIATE_ENABLE_TOKENIZER_KAGOME_KR=false # --------------------------------------------------------------------------- # Logging # --------------------------------------------------------------------------- LOG_LEVEL=INFO DEBUG=false FLASK_DEBUG=false # --------------------------------------------------------------------------- # External Network (SWAG / reverse proxy) # --------------------------------------------------------------------------- # Dify nginx joins this pre-existing Docker network so SWAG can route traffic # to service name `dify-nginx` on port 80. NETWORKS_EXTERNAL_NAME=swag