|
|
|
@ -504,91 +504,108 @@ x-shared-env: &shared-api-worker-env
|
|
|
|
QUEUE_MONITOR_THRESHOLD: ${QUEUE_MONITOR_THRESHOLD:-200}
|
|
|
|
QUEUE_MONITOR_THRESHOLD: ${QUEUE_MONITOR_THRESHOLD:-200}
|
|
|
|
QUEUE_MONITOR_ALERT_EMAILS: ${QUEUE_MONITOR_ALERT_EMAILS:-}
|
|
|
|
QUEUE_MONITOR_ALERT_EMAILS: ${QUEUE_MONITOR_ALERT_EMAILS:-}
|
|
|
|
QUEUE_MONITOR_INTERVAL: ${QUEUE_MONITOR_INTERVAL:-30}
|
|
|
|
QUEUE_MONITOR_INTERVAL: ${QUEUE_MONITOR_INTERVAL:-30}
|
|
|
|
|
|
|
|
INIT_MODEL_LLM_BASE_URL: ${INIT_MODEL_LLM_BASE_URL:-}
|
|
|
|
|
|
|
|
INIT_MODEL_LLM_NAME: ${INIT_MODEL_LLM_NAME:-}
|
|
|
|
|
|
|
|
INIT_MODEL_LLM_PROVIDER: ${INIT_MODEL_LLM_PROVIDER:-}
|
|
|
|
|
|
|
|
INIT_MODEL_LLM_CONTEXT_SIZE: ${INIT_MODEL_LLM_CONTEXT_SIZE:-4096}
|
|
|
|
|
|
|
|
INIT_MODEL_LLM_MAX_TOKENS: ${INIT_MODEL_LLM_MAX_TOKENS:-4096}
|
|
|
|
|
|
|
|
INIT_MODEL_TEXT_EMBEDDING_BASE_URL: ${INIT_MODEL_TEXT_EMBEDDING_BASE_URL:-}
|
|
|
|
|
|
|
|
INIT_MODEL_TEXT_EMBEDDING_NAME: ${INIT_MODEL_TEXT_EMBEDDING_NAME:-}
|
|
|
|
|
|
|
|
INIT_MODEL_TEXT_EMBEDDING_PROVIDER: ${INIT_MODEL_TEXT_EMBEDDING_PROVIDER:-}
|
|
|
|
|
|
|
|
INIT_MODEL_TEXT_EMBEDDING_CONTEXT_SIZE: ${INIT_MODEL_TEXT_EMBEDDING_CONTEXT_SIZE:-4096}
|
|
|
|
|
|
|
|
INIT_MODEL_TEXT_EMBEDDING_MAX_TOKENS: ${INIT_MODEL_TEXT_EMBEDDING_MAX_TOKENS:-4096}
|
|
|
|
|
|
|
|
INIT_MODEL_TEXT_EMBEDDING_RERANK_BASE_URL: ${INIT_MODEL_TEXT_EMBEDDING_RERANK_BASE_URL:-}
|
|
|
|
|
|
|
|
INIT_MODEL_TEXT_EMBEDDING_RERANK_NAME: ${INIT_MODEL_TEXT_EMBEDDING_RERANK_NAME:-}
|
|
|
|
|
|
|
|
INIT_MODEL_TEXT_EMBEDDING_RERANK_PROVIDER: ${INIT_MODEL_TEXT_EMBEDDING_RERANK_PROVIDER:-}
|
|
|
|
|
|
|
|
|
|
|
|
services:
|
|
|
|
services:
|
|
|
|
# API service
|
|
|
|
# API service
|
|
|
|
api:
|
|
|
|
# api:
|
|
|
|
image: langgenius/dify-api:1.4.1
|
|
|
|
# image: langgenius/dify-api:1.4.1
|
|
|
|
restart: always
|
|
|
|
# restart: always
|
|
|
|
environment:
|
|
|
|
# ports:
|
|
|
|
# Use the shared environment variables.
|
|
|
|
# - "5001:5001"
|
|
|
|
<<: *shared-api-worker-env
|
|
|
|
# environment:
|
|
|
|
# Startup mode, 'api' starts the API server.
|
|
|
|
# # Use the shared environment variables.
|
|
|
|
MODE: api
|
|
|
|
# <<: *shared-api-worker-env
|
|
|
|
SENTRY_DSN: ${API_SENTRY_DSN:-}
|
|
|
|
# # Startup mode, 'api' starts the API server.
|
|
|
|
SENTRY_TRACES_SAMPLE_RATE: ${API_SENTRY_TRACES_SAMPLE_RATE:-1.0}
|
|
|
|
# MODE: api
|
|
|
|
SENTRY_PROFILES_SAMPLE_RATE: ${API_SENTRY_PROFILES_SAMPLE_RATE:-1.0}
|
|
|
|
# SENTRY_DSN: ${API_SENTRY_DSN:-}
|
|
|
|
PLUGIN_REMOTE_INSTALL_HOST: ${EXPOSE_PLUGIN_DEBUGGING_HOST:-localhost}
|
|
|
|
# SENTRY_TRACES_SAMPLE_RATE: ${API_SENTRY_TRACES_SAMPLE_RATE:-1.0}
|
|
|
|
PLUGIN_REMOTE_INSTALL_PORT: ${EXPOSE_PLUGIN_DEBUGGING_PORT:-5003}
|
|
|
|
# SENTRY_PROFILES_SAMPLE_RATE: ${API_SENTRY_PROFILES_SAMPLE_RATE:-1.0}
|
|
|
|
PLUGIN_MAX_PACKAGE_SIZE: ${PLUGIN_MAX_PACKAGE_SIZE:-52428800}
|
|
|
|
# PLUGIN_REMOTE_INSTALL_HOST: ${EXPOSE_PLUGIN_DEBUGGING_HOST:-localhost}
|
|
|
|
INNER_API_KEY_FOR_PLUGIN: ${PLUGIN_DIFY_INNER_API_KEY:-QaHbTe77CtuXmsfyhR7+vRjI/+XbV1AaFy691iy+kGDv2Jvy0/eAh8Y1}
|
|
|
|
# PLUGIN_REMOTE_INSTALL_PORT: ${EXPOSE_PLUGIN_DEBUGGING_PORT:-5003}
|
|
|
|
depends_on:
|
|
|
|
# PLUGIN_MAX_PACKAGE_SIZE: ${PLUGIN_MAX_PACKAGE_SIZE:-52428800}
|
|
|
|
db:
|
|
|
|
# INNER_API_KEY_FOR_PLUGIN: ${PLUGIN_DIFY_INNER_API_KEY:-QaHbTe77CtuXmsfyhR7+vRjI/+XbV1AaFy691iy+kGDv2Jvy0/eAh8Y1}
|
|
|
|
condition: service_healthy
|
|
|
|
# depends_on:
|
|
|
|
redis:
|
|
|
|
# db:
|
|
|
|
condition: service_started
|
|
|
|
# condition: service_healthy
|
|
|
|
volumes:
|
|
|
|
# redis:
|
|
|
|
# Mount the storage directory to the container, for storing user files.
|
|
|
|
# condition: service_started
|
|
|
|
- ./volumes/app/storage:/app/api/storage
|
|
|
|
# volumes:
|
|
|
|
networks:
|
|
|
|
# # Mount the storage directory to the container, for storing user files.
|
|
|
|
- ssrf_proxy_network
|
|
|
|
# - ./volumes/app/storage:/app/api/storage
|
|
|
|
- default
|
|
|
|
# networks:
|
|
|
|
|
|
|
|
# - ssrf_proxy_network
|
|
|
|
|
|
|
|
# - default
|
|
|
|
|
|
|
|
|
|
|
|
# worker service
|
|
|
|
# worker service
|
|
|
|
# The Celery worker for processing the queue.
|
|
|
|
# The Celery worker for processing the queue.
|
|
|
|
worker:
|
|
|
|
# worker:
|
|
|
|
image: langgenius/dify-api:1.4.1
|
|
|
|
# image: langgenius/dify-api:1.4.1
|
|
|
|
restart: always
|
|
|
|
# restart: always
|
|
|
|
environment:
|
|
|
|
# environment:
|
|
|
|
# Use the shared environment variables.
|
|
|
|
# # Use the shared environment variables.
|
|
|
|
<<: *shared-api-worker-env
|
|
|
|
# <<: *shared-api-worker-env
|
|
|
|
# Startup mode, 'worker' starts the Celery worker for processing the queue.
|
|
|
|
# # Startup mode, 'worker' starts the Celery worker for processing the queue.
|
|
|
|
MODE: worker
|
|
|
|
# MODE: worker
|
|
|
|
SENTRY_DSN: ${API_SENTRY_DSN:-}
|
|
|
|
# SENTRY_DSN: ${API_SENTRY_DSN:-}
|
|
|
|
SENTRY_TRACES_SAMPLE_RATE: ${API_SENTRY_TRACES_SAMPLE_RATE:-1.0}
|
|
|
|
# SENTRY_TRACES_SAMPLE_RATE: ${API_SENTRY_TRACES_SAMPLE_RATE:-1.0}
|
|
|
|
SENTRY_PROFILES_SAMPLE_RATE: ${API_SENTRY_PROFILES_SAMPLE_RATE:-1.0}
|
|
|
|
# SENTRY_PROFILES_SAMPLE_RATE: ${API_SENTRY_PROFILES_SAMPLE_RATE:-1.0}
|
|
|
|
PLUGIN_MAX_PACKAGE_SIZE: ${PLUGIN_MAX_PACKAGE_SIZE:-52428800}
|
|
|
|
# PLUGIN_MAX_PACKAGE_SIZE: ${PLUGIN_MAX_PACKAGE_SIZE:-52428800}
|
|
|
|
INNER_API_KEY_FOR_PLUGIN: ${PLUGIN_DIFY_INNER_API_KEY:-QaHbTe77CtuXmsfyhR7+vRjI/+XbV1AaFy691iy+kGDv2Jvy0/eAh8Y1}
|
|
|
|
# INNER_API_KEY_FOR_PLUGIN: ${PLUGIN_DIFY_INNER_API_KEY:-QaHbTe77CtuXmsfyhR7+vRjI/+XbV1AaFy691iy+kGDv2Jvy0/eAh8Y1}
|
|
|
|
depends_on:
|
|
|
|
# depends_on:
|
|
|
|
db:
|
|
|
|
# db:
|
|
|
|
condition: service_healthy
|
|
|
|
# condition: service_healthy
|
|
|
|
redis:
|
|
|
|
# redis:
|
|
|
|
condition: service_started
|
|
|
|
# condition: service_started
|
|
|
|
volumes:
|
|
|
|
# volumes:
|
|
|
|
# Mount the storage directory to the container, for storing user files.
|
|
|
|
# # Mount the storage directory to the container, for storing user files.
|
|
|
|
- ./volumes/app/storage:/app/api/storage
|
|
|
|
# - ./volumes/app/storage:/app/api/storage
|
|
|
|
networks:
|
|
|
|
# networks:
|
|
|
|
- ssrf_proxy_network
|
|
|
|
# - ssrf_proxy_network
|
|
|
|
- default
|
|
|
|
# - default
|
|
|
|
|
|
|
|
|
|
|
|
# Frontend web application.
|
|
|
|
# Frontend web application.
|
|
|
|
web:
|
|
|
|
# web:
|
|
|
|
image: langgenius/dify-web:1.4.1
|
|
|
|
# image: langgenius/dify-web:1.4.1
|
|
|
|
restart: always
|
|
|
|
# restart: always
|
|
|
|
environment:
|
|
|
|
# environment:
|
|
|
|
CONSOLE_API_URL: ${CONSOLE_API_URL:-}
|
|
|
|
# CONSOLE_API_URL: ${CONSOLE_API_URL:-}
|
|
|
|
APP_API_URL: ${APP_API_URL:-}
|
|
|
|
# APP_API_URL: ${APP_API_URL:-}
|
|
|
|
SENTRY_DSN: ${WEB_SENTRY_DSN:-}
|
|
|
|
# SENTRY_DSN: ${WEB_SENTRY_DSN:-}
|
|
|
|
NEXT_TELEMETRY_DISABLED: ${NEXT_TELEMETRY_DISABLED:-0}
|
|
|
|
# NEXT_TELEMETRY_DISABLED: ${NEXT_TELEMETRY_DISABLED:-0}
|
|
|
|
TEXT_GENERATION_TIMEOUT_MS: ${TEXT_GENERATION_TIMEOUT_MS:-60000}
|
|
|
|
# TEXT_GENERATION_TIMEOUT_MS: ${TEXT_GENERATION_TIMEOUT_MS:-60000}
|
|
|
|
CSP_WHITELIST: ${CSP_WHITELIST:-}
|
|
|
|
# CSP_WHITELIST: ${CSP_WHITELIST:-}
|
|
|
|
ALLOW_EMBED: ${ALLOW_EMBED:-false}
|
|
|
|
# ALLOW_EMBED: ${ALLOW_EMBED:-false}
|
|
|
|
MARKETPLACE_API_URL: ${MARKETPLACE_API_URL:-https://marketplace.dify.ai}
|
|
|
|
# MARKETPLACE_API_URL: ${MARKETPLACE_API_URL:-https://marketplace.dify.ai}
|
|
|
|
MARKETPLACE_URL: ${MARKETPLACE_URL:-https://marketplace.dify.ai}
|
|
|
|
# MARKETPLACE_URL: ${MARKETPLACE_URL:-https://marketplace.dify.ai}
|
|
|
|
TOP_K_MAX_VALUE: ${TOP_K_MAX_VALUE:-}
|
|
|
|
# TOP_K_MAX_VALUE: ${TOP_K_MAX_VALUE:-}
|
|
|
|
INDEXING_MAX_SEGMENTATION_TOKENS_LENGTH: ${INDEXING_MAX_SEGMENTATION_TOKENS_LENGTH:-}
|
|
|
|
# INDEXING_MAX_SEGMENTATION_TOKENS_LENGTH: ${INDEXING_MAX_SEGMENTATION_TOKENS_LENGTH:-}
|
|
|
|
PM2_INSTANCES: ${PM2_INSTANCES:-2}
|
|
|
|
# PM2_INSTANCES: ${PM2_INSTANCES:-2}
|
|
|
|
LOOP_NODE_MAX_COUNT: ${LOOP_NODE_MAX_COUNT:-100}
|
|
|
|
# LOOP_NODE_MAX_COUNT: ${LOOP_NODE_MAX_COUNT:-100}
|
|
|
|
MAX_TOOLS_NUM: ${MAX_TOOLS_NUM:-10}
|
|
|
|
# MAX_TOOLS_NUM: ${MAX_TOOLS_NUM:-10}
|
|
|
|
MAX_PARALLEL_LIMIT: ${MAX_PARALLEL_LIMIT:-10}
|
|
|
|
# MAX_PARALLEL_LIMIT: ${MAX_PARALLEL_LIMIT:-10}
|
|
|
|
MAX_ITERATIONS_NUM: ${MAX_ITERATIONS_NUM:-99}
|
|
|
|
# MAX_ITERATIONS_NUM: ${MAX_ITERATIONS_NUM:-99}
|
|
|
|
ENABLE_WEBSITE_JINAREADER: ${ENABLE_WEBSITE_JINAREADER:-true}
|
|
|
|
# ENABLE_WEBSITE_JINAREADER: ${ENABLE_WEBSITE_JINAREADER:-true}
|
|
|
|
ENABLE_WEBSITE_FIRECRAWL: ${ENABLE_WEBSITE_FIRECRAWL:-true}
|
|
|
|
# ENABLE_WEBSITE_FIRECRAWL: ${ENABLE_WEBSITE_FIRECRAWL:-true}
|
|
|
|
ENABLE_WEBSITE_WATERCRAWL: ${ENABLE_WEBSITE_WATERCRAWL:-true}
|
|
|
|
# ENABLE_WEBSITE_WATERCRAWL: ${ENABLE_WEBSITE_WATERCRAWL:-true}
|
|
|
|
# The postgres database.
|
|
|
|
# The postgres database.
|
|
|
|
db:
|
|
|
|
db:
|
|
|
|
image: postgres:15-alpine
|
|
|
|
image: postgres:15-alpine
|
|
|
|
restart: always
|
|
|
|
restart: always
|
|
|
|
|
|
|
|
ports:
|
|
|
|
|
|
|
|
- "5432:5432"
|
|
|
|
environment:
|
|
|
|
environment:
|
|
|
|
PGUSER: ${PGUSER:-postgres}
|
|
|
|
PGUSER: ${PGUSER:-postgres}
|
|
|
|
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-difyai123456}
|
|
|
|
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-difyai123456}
|
|
|
|
@ -612,6 +629,8 @@ services:
|
|
|
|
redis:
|
|
|
|
redis:
|
|
|
|
image: redis:6-alpine
|
|
|
|
image: redis:6-alpine
|
|
|
|
restart: always
|
|
|
|
restart: always
|
|
|
|
|
|
|
|
ports:
|
|
|
|
|
|
|
|
- "6379:6379"
|
|
|
|
environment:
|
|
|
|
environment:
|
|
|
|
REDISCLI_AUTH: ${REDIS_PASSWORD:-difyai123456}
|
|
|
|
REDISCLI_AUTH: ${REDIS_PASSWORD:-difyai123456}
|
|
|
|
volumes:
|
|
|
|
volumes:
|
|
|
|
@ -626,6 +645,8 @@ services:
|
|
|
|
sandbox:
|
|
|
|
sandbox:
|
|
|
|
image: langgenius/dify-sandbox:0.2.12
|
|
|
|
image: langgenius/dify-sandbox:0.2.12
|
|
|
|
restart: always
|
|
|
|
restart: always
|
|
|
|
|
|
|
|
ports:
|
|
|
|
|
|
|
|
- "8194:8194"
|
|
|
|
environment:
|
|
|
|
environment:
|
|
|
|
# The DifySandbox configurations
|
|
|
|
# The DifySandbox configurations
|
|
|
|
# Make sure you are changing this key for your deployment with a strong key.
|
|
|
|
# Make sure you are changing this key for your deployment with a strong key.
|
|
|
|
@ -650,6 +671,9 @@ services:
|
|
|
|
plugin_daemon:
|
|
|
|
plugin_daemon:
|
|
|
|
image: langgenius/dify-plugin-daemon:0.1.1-local
|
|
|
|
image: langgenius/dify-plugin-daemon:0.1.1-local
|
|
|
|
restart: always
|
|
|
|
restart: always
|
|
|
|
|
|
|
|
ports:
|
|
|
|
|
|
|
|
- "5003:5003"
|
|
|
|
|
|
|
|
- "5002:5002"
|
|
|
|
environment:
|
|
|
|
environment:
|
|
|
|
# Use the shared environment variables.
|
|
|
|
# Use the shared environment variables.
|
|
|
|
<<: *shared-api-worker-env
|
|
|
|
<<: *shared-api-worker-env
|
|
|
|
@ -694,8 +718,6 @@ services:
|
|
|
|
VOLCENGINE_TOS_ACCESS_KEY: ${PLUGIN_VOLCENGINE_TOS_ACCESS_KEY:-}
|
|
|
|
VOLCENGINE_TOS_ACCESS_KEY: ${PLUGIN_VOLCENGINE_TOS_ACCESS_KEY:-}
|
|
|
|
VOLCENGINE_TOS_SECRET_KEY: ${PLUGIN_VOLCENGINE_TOS_SECRET_KEY:-}
|
|
|
|
VOLCENGINE_TOS_SECRET_KEY: ${PLUGIN_VOLCENGINE_TOS_SECRET_KEY:-}
|
|
|
|
VOLCENGINE_TOS_REGION: ${PLUGIN_VOLCENGINE_TOS_REGION:-}
|
|
|
|
VOLCENGINE_TOS_REGION: ${PLUGIN_VOLCENGINE_TOS_REGION:-}
|
|
|
|
ports:
|
|
|
|
|
|
|
|
- "${EXPOSE_PLUGIN_DEBUGGING_PORT:-5003}:${PLUGIN_DEBUGGING_PORT:-5003}"
|
|
|
|
|
|
|
|
volumes:
|
|
|
|
volumes:
|
|
|
|
- ./volumes/plugin_daemon:/app/storage
|
|
|
|
- ./volumes/plugin_daemon:/app/storage
|
|
|
|
depends_on:
|
|
|
|
depends_on:
|
|
|
|
@ -708,6 +730,8 @@ services:
|
|
|
|
ssrf_proxy:
|
|
|
|
ssrf_proxy:
|
|
|
|
image: ubuntu/squid:latest
|
|
|
|
image: ubuntu/squid:latest
|
|
|
|
restart: always
|
|
|
|
restart: always
|
|
|
|
|
|
|
|
ports:
|
|
|
|
|
|
|
|
- "3128:3128"
|
|
|
|
volumes:
|
|
|
|
volumes:
|
|
|
|
- ./ssrf_proxy/squid.conf.template:/etc/squid/squid.conf.template
|
|
|
|
- ./ssrf_proxy/squid.conf.template:/etc/squid/squid.conf.template
|
|
|
|
- ./ssrf_proxy/docker-entrypoint.sh:/docker-entrypoint-mount.sh
|
|
|
|
- ./ssrf_proxy/docker-entrypoint.sh:/docker-entrypoint-mount.sh
|
|
|
|
@ -745,43 +769,43 @@ services:
|
|
|
|
|
|
|
|
|
|
|
|
# The nginx reverse proxy.
|
|
|
|
# The nginx reverse proxy.
|
|
|
|
# used for reverse proxying the API service and Web service.
|
|
|
|
# used for reverse proxying the API service and Web service.
|
|
|
|
nginx:
|
|
|
|
# nginx:
|
|
|
|
image: nginx:latest
|
|
|
|
# image: nginx:latest
|
|
|
|
restart: always
|
|
|
|
# restart: always
|
|
|
|
volumes:
|
|
|
|
# ports:
|
|
|
|
- ./nginx/nginx.conf.template:/etc/nginx/nginx.conf.template
|
|
|
|
# - '80:80'
|
|
|
|
- ./nginx/proxy.conf.template:/etc/nginx/proxy.conf.template
|
|
|
|
# volumes:
|
|
|
|
- ./nginx/https.conf.template:/etc/nginx/https.conf.template
|
|
|
|
# - ./nginx/nginx.conf.template:/etc/nginx/nginx.conf.template
|
|
|
|
- ./nginx/conf.d:/etc/nginx/conf.d
|
|
|
|
# - ./nginx/proxy.conf.template:/etc/nginx/proxy.conf.template
|
|
|
|
- ./nginx/docker-entrypoint.sh:/docker-entrypoint-mount.sh
|
|
|
|
# - ./nginx/https.conf.template:/etc/nginx/https.conf.template
|
|
|
|
- ./nginx/ssl:/etc/ssl # cert dir (legacy)
|
|
|
|
# - ./nginx/conf.d:/etc/nginx/conf.d
|
|
|
|
- ./volumes/certbot/conf/live:/etc/letsencrypt/live # cert dir (with certbot container)
|
|
|
|
# - ./nginx/docker-entrypoint.sh:/docker-entrypoint-mount.sh
|
|
|
|
- ./volumes/certbot/conf:/etc/letsencrypt
|
|
|
|
# - ./nginx/ssl:/etc/ssl # cert dir (legacy)
|
|
|
|
- ./volumes/certbot/www:/var/www/html
|
|
|
|
# - ./volumes/certbot/conf/live:/etc/letsencrypt/live # cert dir (with certbot container)
|
|
|
|
entrypoint: [ 'sh', '-c', "cp /docker-entrypoint-mount.sh /docker-entrypoint.sh && sed -i 's/\r$$//' /docker-entrypoint.sh && chmod +x /docker-entrypoint.sh && /docker-entrypoint.sh" ]
|
|
|
|
# - ./volumes/certbot/conf:/etc/letsencrypt
|
|
|
|
environment:
|
|
|
|
# - ./volumes/certbot/www:/var/www/html
|
|
|
|
NGINX_SERVER_NAME: ${NGINX_SERVER_NAME:-_}
|
|
|
|
# entrypoint: [ 'sh', '-c', "cp /docker-entrypoint-mount.sh /docker-entrypoint.sh && sed -i 's/\r$$//' /docker-entrypoint.sh && chmod +x /docker-entrypoint.sh && /docker-entrypoint.sh" ]
|
|
|
|
NGINX_HTTPS_ENABLED: ${NGINX_HTTPS_ENABLED:-false}
|
|
|
|
# environment:
|
|
|
|
NGINX_SSL_PORT: ${NGINX_SSL_PORT:-443}
|
|
|
|
# NGINX_SERVER_NAME: ${NGINX_SERVER_NAME:-_}
|
|
|
|
NGINX_PORT: ${NGINX_PORT:-80}
|
|
|
|
# NGINX_HTTPS_ENABLED: ${NGINX_HTTPS_ENABLED:-false}
|
|
|
|
# You're required to add your own SSL certificates/keys to the `./nginx/ssl` directory
|
|
|
|
# NGINX_SSL_PORT: ${NGINX_SSL_PORT:-443}
|
|
|
|
# and modify the env vars below in .env if HTTPS_ENABLED is true.
|
|
|
|
# NGINX_PORT: ${NGINX_PORT:-80}
|
|
|
|
NGINX_SSL_CERT_FILENAME: ${NGINX_SSL_CERT_FILENAME:-dify.crt}
|
|
|
|
# # You're required to add your own SSL certificates/keys to the `./nginx/ssl` directory
|
|
|
|
NGINX_SSL_CERT_KEY_FILENAME: ${NGINX_SSL_CERT_KEY_FILENAME:-dify.key}
|
|
|
|
# # and modify the env vars below in .env if HTTPS_ENABLED is true.
|
|
|
|
NGINX_SSL_PROTOCOLS: ${NGINX_SSL_PROTOCOLS:-TLSv1.1 TLSv1.2 TLSv1.3}
|
|
|
|
# NGINX_SSL_CERT_FILENAME: ${NGINX_SSL_CERT_FILENAME:-dify.crt}
|
|
|
|
NGINX_WORKER_PROCESSES: ${NGINX_WORKER_PROCESSES:-auto}
|
|
|
|
# NGINX_SSL_CERT_KEY_FILENAME: ${NGINX_SSL_CERT_KEY_FILENAME:-dify.key}
|
|
|
|
NGINX_CLIENT_MAX_BODY_SIZE: ${NGINX_CLIENT_MAX_BODY_SIZE:-15M}
|
|
|
|
# NGINX_SSL_PROTOCOLS: ${NGINX_SSL_PROTOCOLS:-TLSv1.1 TLSv1.2 TLSv1.3}
|
|
|
|
NGINX_KEEPALIVE_TIMEOUT: ${NGINX_KEEPALIVE_TIMEOUT:-65}
|
|
|
|
# NGINX_WORKER_PROCESSES: ${NGINX_WORKER_PROCESSES:-auto}
|
|
|
|
NGINX_PROXY_READ_TIMEOUT: ${NGINX_PROXY_READ_TIMEOUT:-3600s}
|
|
|
|
# NGINX_CLIENT_MAX_BODY_SIZE: ${NGINX_CLIENT_MAX_BODY_SIZE:-15M}
|
|
|
|
NGINX_PROXY_SEND_TIMEOUT: ${NGINX_PROXY_SEND_TIMEOUT:-3600s}
|
|
|
|
# NGINX_KEEPALIVE_TIMEOUT: ${NGINX_KEEPALIVE_TIMEOUT:-65}
|
|
|
|
NGINX_ENABLE_CERTBOT_CHALLENGE: ${NGINX_ENABLE_CERTBOT_CHALLENGE:-false}
|
|
|
|
# NGINX_PROXY_READ_TIMEOUT: ${NGINX_PROXY_READ_TIMEOUT:-3600s}
|
|
|
|
CERTBOT_DOMAIN: ${CERTBOT_DOMAIN:-}
|
|
|
|
# NGINX_PROXY_SEND_TIMEOUT: ${NGINX_PROXY_SEND_TIMEOUT:-3600s}
|
|
|
|
depends_on:
|
|
|
|
# NGINX_ENABLE_CERTBOT_CHALLENGE: ${NGINX_ENABLE_CERTBOT_CHALLENGE:-false}
|
|
|
|
- api
|
|
|
|
# CERTBOT_DOMAIN: ${CERTBOT_DOMAIN:-}
|
|
|
|
- web
|
|
|
|
# depends_on:
|
|
|
|
ports:
|
|
|
|
# - api
|
|
|
|
- '${EXPOSE_NGINX_PORT:-80}:${NGINX_PORT:-80}'
|
|
|
|
# - web
|
|
|
|
- '${EXPOSE_NGINX_SSL_PORT:-443}:${NGINX_SSL_PORT:-443}'
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# The Weaviate vector store.
|
|
|
|
# The Weaviate vector store.
|
|
|
|
weaviate:
|
|
|
|
weaviate:
|
|
|
|
@ -790,6 +814,8 @@ services:
|
|
|
|
- ''
|
|
|
|
- ''
|
|
|
|
- weaviate
|
|
|
|
- weaviate
|
|
|
|
restart: always
|
|
|
|
restart: always
|
|
|
|
|
|
|
|
ports:
|
|
|
|
|
|
|
|
- '8080:8080'
|
|
|
|
volumes:
|
|
|
|
volumes:
|
|
|
|
# Mount the Weaviate data directory to the con tainer.
|
|
|
|
# Mount the Weaviate data directory to the con tainer.
|
|
|
|
- ./volumes/weaviate:/var/lib/weaviate
|
|
|
|
- ./volumes/weaviate:/var/lib/weaviate
|
|
|
|
@ -977,17 +1003,18 @@ services:
|
|
|
|
# Milvus vector database services
|
|
|
|
# Milvus vector database services
|
|
|
|
etcd:
|
|
|
|
etcd:
|
|
|
|
container_name: milvus-etcd
|
|
|
|
container_name: milvus-etcd
|
|
|
|
image: quay.io/coreos/etcd:v3.5.5
|
|
|
|
image: bitnami/etcd:latest
|
|
|
|
profiles:
|
|
|
|
|
|
|
|
- milvus
|
|
|
|
|
|
|
|
environment:
|
|
|
|
environment:
|
|
|
|
ETCD_AUTO_COMPACTION_MODE: ${ETCD_AUTO_COMPACTION_MODE:-revision}
|
|
|
|
# ETCD_AUTO_COMPACTION_MODE: ${ETCD_AUTO_COMPACTION_MODE:-revision}
|
|
|
|
ETCD_AUTO_COMPACTION_RETENTION: ${ETCD_AUTO_COMPACTION_RETENTION:-1000}
|
|
|
|
# ETCD_AUTO_COMPACTION_RETENTION: ${ETCD_AUTO_COMPACTION_RETENTION:-1000}
|
|
|
|
ETCD_QUOTA_BACKEND_BYTES: ${ETCD_QUOTA_BACKEND_BYTES:-4294967296}
|
|
|
|
# ETCD_QUOTA_BACKEND_BYTES: ${ETCD_QUOTA_BACKEND_BYTES:-4294967296}
|
|
|
|
ETCD_SNAPSHOT_COUNT: ${ETCD_SNAPSHOT_COUNT:-50000}
|
|
|
|
# ETCD_SNAPSHOT_COUNT: ${ETCD_SNAPSHOT_COUNT:-50000}
|
|
|
|
|
|
|
|
ALLOW_NONE_AUTHENTICATION: yes
|
|
|
|
|
|
|
|
ETCD_LISTEN_CLIENT_URLS: "http://0.0.0.0:2379"
|
|
|
|
|
|
|
|
ETCD_ADVERTISE_CLIENT_URLS: "http://etcd:2379"
|
|
|
|
|
|
|
|
ETCD_DATA_DIR: "/etcd"
|
|
|
|
volumes:
|
|
|
|
volumes:
|
|
|
|
- ./volumes/milvus/etcd:/etcd
|
|
|
|
- ./volumes/milvus/etcd:/bitnami/etcd
|
|
|
|
command: etcd -advertise-client-urls=http://127.0.0.1:2379 -listen-client-urls http://0.0.0.0:2379 --data-dir /etcd
|
|
|
|
|
|
|
|
healthcheck:
|
|
|
|
healthcheck:
|
|
|
|
test: [ 'CMD', 'etcdctl', 'endpoint', 'health' ]
|
|
|
|
test: [ 'CMD', 'etcdctl', 'endpoint', 'health' ]
|
|
|
|
interval: 30s
|
|
|
|
interval: 30s
|
|
|
|
@ -998,12 +1025,14 @@ services:
|
|
|
|
|
|
|
|
|
|
|
|
minio:
|
|
|
|
minio:
|
|
|
|
container_name: milvus-minio
|
|
|
|
container_name: milvus-minio
|
|
|
|
image: minio/minio:RELEASE.2023-03-20T20-16-18Z
|
|
|
|
image: minio/minio:latest
|
|
|
|
profiles:
|
|
|
|
ports:
|
|
|
|
- milvus
|
|
|
|
- '9000:9000'
|
|
|
|
|
|
|
|
- '9001:9001'
|
|
|
|
environment:
|
|
|
|
environment:
|
|
|
|
MINIO_ACCESS_KEY: ${MINIO_ACCESS_KEY:-minioadmin}
|
|
|
|
MINIO_ACCESS_KEY: ${MINIO_ACCESS_KEY:-minioadmin}
|
|
|
|
MINIO_SECRET_KEY: ${MINIO_SECRET_KEY:-minioadmin}
|
|
|
|
MINIO_SECRET_KEY: ${MINIO_SECRET_KEY:-minioadmin}
|
|
|
|
|
|
|
|
MINIO_STORAGE_DIRECTORY: /minio_data
|
|
|
|
volumes:
|
|
|
|
volumes:
|
|
|
|
- ./volumes/milvus/minio:/minio_data
|
|
|
|
- ./volumes/milvus/minio:/minio_data
|
|
|
|
command: minio server /minio_data --console-address ":9001"
|
|
|
|
command: minio server /minio_data --console-address ":9001"
|
|
|
|
@ -1017,14 +1046,13 @@ services:
|
|
|
|
|
|
|
|
|
|
|
|
milvus-standalone:
|
|
|
|
milvus-standalone:
|
|
|
|
container_name: milvus-standalone
|
|
|
|
container_name: milvus-standalone
|
|
|
|
image: milvusdb/milvus:v2.5.0-beta
|
|
|
|
image: milvusdb/milvus:latest
|
|
|
|
profiles:
|
|
|
|
|
|
|
|
- milvus
|
|
|
|
|
|
|
|
command: [ 'milvus', 'run', 'standalone' ]
|
|
|
|
command: [ 'milvus', 'run', 'standalone' ]
|
|
|
|
environment:
|
|
|
|
environment:
|
|
|
|
|
|
|
|
MILVUS_ENABLE_AUTH: false
|
|
|
|
ETCD_ENDPOINTS: ${ETCD_ENDPOINTS:-etcd:2379}
|
|
|
|
ETCD_ENDPOINTS: ${ETCD_ENDPOINTS:-etcd:2379}
|
|
|
|
MINIO_ADDRESS: ${MINIO_ADDRESS:-minio:9000}
|
|
|
|
MINIO_ADDRESS: ${MINIO_ADDRESS:-minio:9000}
|
|
|
|
common.security.authorizationEnabled: ${MILVUS_AUTHORIZATION_ENABLED:-true}
|
|
|
|
#common.security.authorizationEnabled: ${MILVUS_AUTHORIZATION_ENABLED:-true}
|
|
|
|
volumes:
|
|
|
|
volumes:
|
|
|
|
- ./volumes/milvus/milvus:/var/lib/milvus
|
|
|
|
- ./volumes/milvus/milvus:/var/lib/milvus
|
|
|
|
healthcheck:
|
|
|
|
healthcheck:
|
|
|
|
@ -1041,6 +1069,19 @@ services:
|
|
|
|
- 9091:9091
|
|
|
|
- 9091:9091
|
|
|
|
networks:
|
|
|
|
networks:
|
|
|
|
- milvus
|
|
|
|
- milvus
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
milvus-attu:
|
|
|
|
|
|
|
|
image: zilliz/attu:latest
|
|
|
|
|
|
|
|
container_name: milvus-attu
|
|
|
|
|
|
|
|
ports:
|
|
|
|
|
|
|
|
- "8000:3000"
|
|
|
|
|
|
|
|
environment:
|
|
|
|
|
|
|
|
MILVUS_URL: "milvus-standalone:19530"
|
|
|
|
|
|
|
|
# MILVUS_USERNAME: "root"
|
|
|
|
|
|
|
|
# MILVUS_PASSWORD: "Milvus"
|
|
|
|
|
|
|
|
networks:
|
|
|
|
|
|
|
|
- milvus
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# Opensearch vector database
|
|
|
|
# Opensearch vector database
|
|
|
|
opensearch:
|
|
|
|
opensearch:
|
|
|
|
|