|
@@ -385,11 +385,27 @@ x-shared-env: &shared-api-worker-env
|
|
|
CSP_WHITELIST: ${CSP_WHITELIST:-}
|
|
|
CREATE_TIDB_SERVICE_JOB_ENABLED: ${CREATE_TIDB_SERVICE_JOB_ENABLED:-false}
|
|
|
MAX_SUBMIT_COUNT: ${MAX_SUBMIT_COUNT:-100}
|
|
|
+ DB_PLUGIN_DATABASE: ${DB_PLUGIN_DATABASE:-dify-plugin}
|
|
|
+ EXPOSE_PLUGIN_DAEMON_PORT: ${EXPOSE_PLUGIN_DAEMON_PORT:-5002}
|
|
|
+ PLUGIN_DAEMON_PORT: ${PLUGIN_DAEMON_PORT:-5002}
|
|
|
+ PLUGIN_DAEMON_KEY: ${PLUGIN_DAEMON_KEY:-lYkiYYT6owG+71oLerGzA7GXCgOT++6ovaezWAjpCjf+Sjc3ZtU+qUEi}
|
|
|
+ PLUGIN_DAEMON_URL: ${PLUGIN_DAEMON_URL:-http://plugin_daemon:5002}
|
|
|
+ PLUGIN_MAX_PACKAGE_SIZE: ${PLUGIN_MAX_PACKAGE_SIZE:-52428800}
|
|
|
+ PLUGIN_PPROF_ENABLED: ${PLUGIN_PPROF_ENABLED:-false}
|
|
|
+ PLUGIN_DEBUGGING_HOST: ${PLUGIN_DEBUGGING_HOST:-0.0.0.0}
|
|
|
+ PLUGIN_DEBUGGING_PORT: ${PLUGIN_DEBUGGING_PORT:-5003}
|
|
|
+ EXPOSE_PLUGIN_DEBUGGING_HOST: ${EXPOSE_PLUGIN_DEBUGGING_HOST:-localhost}
|
|
|
+ EXPOSE_PLUGIN_DEBUGGING_PORT: ${EXPOSE_PLUGIN_DEBUGGING_PORT:-5003}
|
|
|
+ PLUGIN_DIFY_INNER_API_KEY: ${PLUGIN_DIFY_INNER_API_KEY:-QaHbTe77CtuXmsfyhR7+vRjI/+XbV1AaFy691iy+kGDv2Jvy0/eAh8Y1}
|
|
|
+ PLUGIN_DIFY_INNER_API_URL: ${PLUGIN_DIFY_INNER_API_URL:-http://api:5001}
|
|
|
+ ENDPOINT_URL_TEMPLATE: ${ENDPOINT_URL_TEMPLATE:-http://localhost/e/{hook_id}}
|
|
|
+ MARKETPLACE_ENABLED: ${MARKETPLACE_ENABLED:-true}
|
|
|
+ MARKETPLACE_API_URL: ${MARKETPLACE_API_URL:-https://marketplace-plugin.dify.dev}
|
|
|
|
|
|
services:
|
|
|
# API service
|
|
|
api:
|
|
|
- image: langgenius/dify-api:0.14.2
|
|
|
+ image: langgenius/dify-api:dev-plugin-deploy
|
|
|
restart: always
|
|
|
environment:
|
|
|
# Use the shared environment variables.
|
|
@@ -399,6 +415,15 @@ services:
|
|
|
SENTRY_DSN: ${API_SENTRY_DSN:-}
|
|
|
SENTRY_TRACES_SAMPLE_RATE: ${API_SENTRY_TRACES_SAMPLE_RATE:-1.0}
|
|
|
SENTRY_PROFILES_SAMPLE_RATE: ${API_SENTRY_PROFILES_SAMPLE_RATE:-1.0}
|
|
|
+ PLUGIN_API_KEY: ${PLUGIN_DAEMON_KEY:-lYkiYYT6owG+71oLerGzA7GXCgOT++6ovaezWAjpCjf+Sjc3ZtU+qUEi}
|
|
|
+ PLUGIN_API_URL: ${PLUGIN_DAEMON_URL:-http://plugin_daemon:5002}
|
|
|
+ PLUGIN_MAX_PACKAGE_SIZE: ${PLUGIN_MAX_PACKAGE_SIZE:-52428800}
|
|
|
+ INNER_API_KEY_FOR_PLUGIN: ${PLUGIN_DIFY_INNER_API_KEY:-QaHbTe77CtuXmsfyhR7+vRjI/+XbV1AaFy691iy+kGDv2Jvy0/eAh8Y1}
|
|
|
+ MARKETPLACE_ENABLED: ${MARKETPLACE_ENABLED:-false}
|
|
|
+ MARKETPLACE_API_URL: ${MARKETPLACE_API_URL:-https://marketplace-plugin.dify.dev}
|
|
|
+ PLUGIN_REMOTE_INSTALL_PORT: ${EXPOSE_PLUGIN_DEBUGGING_PORT:-5003}
|
|
|
+ PLUGIN_REMOTE_INSTALL_HOST: ${EXPOSE_PLUGIN_DEBUGGING_HOST:-localhost}
|
|
|
+ ENDPOINT_URL_TEMPLATE: ${ENDPOINT_URL_TEMPLATE:-http://localhost/e/{hook_id}}
|
|
|
depends_on:
|
|
|
- db
|
|
|
- redis
|
|
@@ -412,7 +437,7 @@ services:
|
|
|
# worker service
|
|
|
# The Celery worker for processing the queue.
|
|
|
worker:
|
|
|
- image: langgenius/dify-api:0.14.2
|
|
|
+ image: langgenius/dify-api:dev-plugin-deploy
|
|
|
restart: always
|
|
|
environment:
|
|
|
# Use the shared environment variables.
|
|
@@ -422,6 +447,12 @@ services:
|
|
|
SENTRY_DSN: ${API_SENTRY_DSN:-}
|
|
|
SENTRY_TRACES_SAMPLE_RATE: ${API_SENTRY_TRACES_SAMPLE_RATE:-1.0}
|
|
|
SENTRY_PROFILES_SAMPLE_RATE: ${API_SENTRY_PROFILES_SAMPLE_RATE:-1.0}
|
|
|
+ PLUGIN_API_KEY: ${PLUGIN_DAEMON_KEY:-lYkiYYT6owG+71oLerGzA7GXCgOT++6ovaezWAjpCjf+Sjc3ZtU+qUEi}
|
|
|
+ PLUGIN_API_URL: ${PLUGIN_DAEMON_URL:-http://plugin_daemon:5002}
|
|
|
+ PLUGIN_MAX_PACKAGE_SIZE: ${PLUGIN_MAX_PACKAGE_SIZE:-52428800}
|
|
|
+ INNER_API_KEY_FOR_PLUGIN: ${PLUGIN_DIFY_INNER_API_KEY:-QaHbTe77CtuXmsfyhR7+vRjI/+XbV1AaFy691iy+kGDv2Jvy0/eAh8Y1}
|
|
|
+ MARKETPLACE_ENABLED: ${MARKETPLACE_ENABLED:-false}
|
|
|
+ MARKETPLACE_API_URL: ${MARKETPLACE_API_URL:-https://marketplace-plugin.dify.dev}
|
|
|
depends_on:
|
|
|
- db
|
|
|
- redis
|
|
@@ -434,7 +465,7 @@ services:
|
|
|
|
|
|
# Frontend web application.
|
|
|
web:
|
|
|
- image: langgenius/dify-web:0.14.2
|
|
|
+ image: langgenius/dify-web:dev-plugin-deploy
|
|
|
restart: always
|
|
|
environment:
|
|
|
CONSOLE_API_URL: ${CONSOLE_API_URL:-}
|
|
@@ -443,6 +474,8 @@ services:
|
|
|
NEXT_TELEMETRY_DISABLED: ${NEXT_TELEMETRY_DISABLED:-0}
|
|
|
TEXT_GENERATION_TIMEOUT_MS: ${TEXT_GENERATION_TIMEOUT_MS:-60000}
|
|
|
CSP_WHITELIST: ${CSP_WHITELIST:-}
|
|
|
+ MARKETPLACE_API_URL: ${MARKETPLACE_API_URL:-https://marketplace-plugin.dify.dev}
|
|
|
+ MARKETPLACE_URL: ${MARKETPLACE_URL:-https://marketplace-plugin.dify.dev}
|
|
|
|
|
|
# The postgres database.
|
|
|
db:
|
|
@@ -466,6 +499,8 @@ services:
|
|
|
interval: 1s
|
|
|
timeout: 3s
|
|
|
retries: 30
|
|
|
+ ports:
|
|
|
+ - '${EXPOSE_DB_PORT:-5432}:5432'
|
|
|
|
|
|
# The redis cache.
|
|
|
redis:
|
|
@@ -503,6 +538,31 @@ services:
|
|
|
networks:
|
|
|
- ssrf_proxy_network
|
|
|
|
|
|
+ # plugin daemon
|
|
|
+ plugin_daemon:
|
|
|
+ image: langgenius/dify-plugin-daemon:6ba6c9ace720cfe208d8f3dfd6a9d71ecf0e67c2-local
|
|
|
+ restart: always
|
|
|
+ environment:
|
|
|
+ # Use the shared environment variables.
|
|
|
+ <<: *shared-api-worker-env
|
|
|
+ DB_DATABASE: ${DB_PLUGIN_DATABASE:-dify_plugin}
|
|
|
+ SERVER_PORT: ${PLUGIN_DAEMON_PORT:-5002}
|
|
|
+ SERVER_KEY: ${PLUGIN_DAEMON_KEY:-lYkiYYT6owG+71oLerGzA7GXCgOT++6ovaezWAjpCjf+Sjc3ZtU+qUEi}
|
|
|
+ MAX_PLUGIN_PACKAGE_SIZE: ${PLUGIN_MAX_PACKAGE_SIZE:-52428800}
|
|
|
+ PPROF_ENABLED: ${PLUGIN_PPROF_ENABLED:-false}
|
|
|
+ DEBUGGING_PORT: ${PLUGIN_DEBUGGING_PORT:-5003}
|
|
|
+ DIFY_INNER_API_URL: ${PLUGIN_DIFY_INNER_API_URL:-http://api:5001}
|
|
|
+ DIFY_INNER_API_KEY: ${PLUGIN_DIFY_INNER_API_KEY:-QaHbTe77CtuXmsfyhR7+vRjI/+XbV1AaFy691iy+kGDv2Jvy0/eAh8Y1}
|
|
|
+ PLUGIN_REMOTE_INSTALLING_HOST: ${PLUGIN_DEBUGGING_HOST:-0.0.0.0}
|
|
|
+ PLUGIN_REMOTE_INSTALLING_PORT: ${PLUGIN_DEBUGGING_PORT:-5003}
|
|
|
+ PLUGIN_WORKING_PATH: ${PLUGIN_WORKING_PATH:-/app/storage/cwd}
|
|
|
+ ports:
|
|
|
+ - "${EXPOSE_PLUGIN_DAEMON_PORT:-5002}:${PLUGIN_DAEMON_PORT:-5002}"
|
|
|
+ - "${EXPOSE_PLUGIN_DEBUGGING_PORT:-5003}:${PLUGIN_DEBUGGING_PORT:-5003}"
|
|
|
+ volumes:
|
|
|
+ - ./volumes/plugin_daemon:/app/storage
|
|
|
+
|
|
|
+
|
|
|
# ssrf_proxy server
|
|
|
# for more information, please refer to
|
|
|
# https://docs.dify.ai/learn-more/faq/install-faq#id-18.-why-is-ssrf_proxy-needed
|