Compare commits
1 Commits
03-07-2025
..
main
| Author | SHA1 | Date | |
|---|---|---|---|
| a1e50ecfdf |
@@ -3,17 +3,12 @@ _APP_LOCALE=en
|
|||||||
_APP_OPTIONS_ABUSE=enabled
|
_APP_OPTIONS_ABUSE=enabled
|
||||||
_APP_OPTIONS_FORCE_HTTPS=disabled
|
_APP_OPTIONS_FORCE_HTTPS=disabled
|
||||||
_APP_OPTIONS_FUNCTIONS_FORCE_HTTPS=disabled
|
_APP_OPTIONS_FUNCTIONS_FORCE_HTTPS=disabled
|
||||||
_APP_OPTIONS_ROUTER_FORCE_HTTPS=disabled
|
|
||||||
_APP_OPTIONS_ROUTER_PROTECTION=disabled
|
_APP_OPTIONS_ROUTER_PROTECTION=disabled
|
||||||
_APP_OPENSSL_KEY_V1=your-secret-key
|
_APP_OPENSSL_KEY_V1=your-secret-key
|
||||||
_APP_DOMAIN=localhost
|
_APP_DOMAIN=localhost
|
||||||
_APP_CUSTOM_DOMAIN_DENY_LIST=example.com,test.com,app.example.com
|
_APP_CUSTOM_DOMAIN_DENY_LIST=example.com,test.com,app.example.com
|
||||||
_APP_DOMAIN_FUNCTIONS=functions.localhost
|
_APP_DOMAIN_FUNCTIONS=functions.localhost
|
||||||
_APP_DOMAIN_SITES=sites.localhost
|
|
||||||
_APP_DOMAIN_TARGET=localhost
|
_APP_DOMAIN_TARGET=localhost
|
||||||
_APP_DOMAIN_TARGET_CNAME=localhost
|
|
||||||
_APP_DOMAIN_TARGET_AAAA=::1
|
|
||||||
_APP_DOMAIN_TARGET_A=127.0.0.1
|
|
||||||
_APP_CONSOLE_WHITELIST_ROOT=enabled
|
_APP_CONSOLE_WHITELIST_ROOT=enabled
|
||||||
_APP_CONSOLE_WHITELIST_EMAILS=
|
_APP_CONSOLE_WHITELIST_EMAILS=
|
||||||
_APP_CONSOLE_WHITELIST_IPS=
|
_APP_CONSOLE_WHITELIST_IPS=
|
||||||
@@ -84,16 +79,12 @@ _APP_STORAGE_WASABI_SECRET=
|
|||||||
_APP_STORAGE_WASABI_REGION=eu-central-1
|
_APP_STORAGE_WASABI_REGION=eu-central-1
|
||||||
_APP_STORAGE_WASABI_BUCKET=
|
_APP_STORAGE_WASABI_BUCKET=
|
||||||
_APP_FUNCTIONS_SIZE_LIMIT=30000000
|
_APP_FUNCTIONS_SIZE_LIMIT=30000000
|
||||||
_APP_COMPUTE_SIZE_LIMIT=30000000
|
|
||||||
_APP_FUNCTIONS_BUILD_SIZE_LIMIT=2000000000
|
_APP_FUNCTIONS_BUILD_SIZE_LIMIT=2000000000
|
||||||
_APP_FUNCTIONS_TIMEOUT=900
|
_APP_FUNCTIONS_TIMEOUT=900
|
||||||
_APP_FUNCTIONS_BUILD_TIMEOUT=900
|
_APP_FUNCTIONS_BUILD_TIMEOUT=900
|
||||||
_APP_COMPUTE_BUILD_TIMEOUT=900
|
|
||||||
_APP_FUNCTIONS_CONTAINERS=10
|
_APP_FUNCTIONS_CONTAINERS=10
|
||||||
_APP_FUNCTIONS_CPUS=0
|
_APP_FUNCTIONS_CPUS=0
|
||||||
_APP_COMPUTE_CPUS=0
|
|
||||||
_APP_FUNCTIONS_MEMORY=0
|
_APP_FUNCTIONS_MEMORY=0
|
||||||
_APP_COMPUTE_MEMORY=0
|
|
||||||
_APP_FUNCTIONS_MEMORY_SWAP=0
|
_APP_FUNCTIONS_MEMORY_SWAP=0
|
||||||
_APP_FUNCTIONS_RUNTIMES=node-16.0,php-8.0,python-3.9,ruby-3.0
|
_APP_FUNCTIONS_RUNTIMES=node-16.0,php-8.0,python-3.9,ruby-3.0
|
||||||
_APP_EXECUTOR_SECRET=your-secret-key
|
_APP_EXECUTOR_SECRET=your-secret-key
|
||||||
@@ -101,19 +92,14 @@ _APP_EXECUTOR_HOST=http://exc1/v1
|
|||||||
_APP_EXECUTOR_RUNTIME_NETWORK=appwrite_runtimes
|
_APP_EXECUTOR_RUNTIME_NETWORK=appwrite_runtimes
|
||||||
_APP_FUNCTIONS_ENVS=node-16.0,php-7.4,python-3.9,ruby-3.0
|
_APP_FUNCTIONS_ENVS=node-16.0,php-7.4,python-3.9,ruby-3.0
|
||||||
_APP_FUNCTIONS_INACTIVE_THRESHOLD=60
|
_APP_FUNCTIONS_INACTIVE_THRESHOLD=60
|
||||||
_APP_COMPUTE_INACTIVE_THRESHOLD=60
|
|
||||||
DOCKERHUB_PULL_USERNAME=
|
DOCKERHUB_PULL_USERNAME=
|
||||||
DOCKERHUB_PULL_PASSWORD=
|
DOCKERHUB_PULL_PASSWORD=
|
||||||
DOCKERHUB_PULL_EMAIL=
|
DOCKERHUB_PULL_EMAIL=
|
||||||
OPEN_RUNTIMES_NETWORK=appwrite_runtimes
|
OPEN_RUNTIMES_NETWORK=appwrite_runtimes
|
||||||
_APP_FUNCTIONS_RUNTIMES_NETWORK=runtimes
|
_APP_FUNCTIONS_RUNTIMES_NETWORK=runtimes
|
||||||
_APP_COMPUTE_RUNTIMES_NETWORK=runtimes
|
|
||||||
_APP_DOCKER_HUB_USERNAME=
|
_APP_DOCKER_HUB_USERNAME=
|
||||||
_APP_DOCKER_HUB_PASSWORD=
|
_APP_DOCKER_HUB_PASSWORD=
|
||||||
_APP_FUNCTIONS_MAINTENANCE_INTERVAL=3600
|
_APP_FUNCTIONS_MAINTENANCE_INTERVAL=3600
|
||||||
_APP_COMPUTE_MAINTENANCE_INTERVAL=3600
|
|
||||||
_APP_SITES_TIMEOUT=900
|
|
||||||
_APP_SITES_RUNTIMES=static-1,node-22,flutter-3.29
|
|
||||||
_APP_VCS_GITHUB_APP_NAME=
|
_APP_VCS_GITHUB_APP_NAME=
|
||||||
_APP_VCS_GITHUB_PRIVATE_KEY=
|
_APP_VCS_GITHUB_PRIVATE_KEY=
|
||||||
_APP_VCS_GITHUB_APP_ID=
|
_APP_VCS_GITHUB_APP_ID=
|
||||||
@@ -122,7 +108,6 @@ _APP_VCS_GITHUB_CLIENT_SECRET=
|
|||||||
_APP_VCS_GITHUB_WEBHOOK_SECRET=
|
_APP_VCS_GITHUB_WEBHOOK_SECRET=
|
||||||
_APP_MAINTENANCE_INTERVAL=86400
|
_APP_MAINTENANCE_INTERVAL=86400
|
||||||
_APP_MAINTENANCE_DELAY=0
|
_APP_MAINTENANCE_DELAY=0
|
||||||
_APP_MAINTENANCE_START_TIME=00:00
|
|
||||||
_APP_MAINTENANCE_RETENTION_CACHE=2592000
|
_APP_MAINTENANCE_RETENTION_CACHE=2592000
|
||||||
_APP_MAINTENANCE_RETENTION_EXECUTION=1209600
|
_APP_MAINTENANCE_RETENTION_EXECUTION=1209600
|
||||||
_APP_MAINTENANCE_RETENTION_AUDIT=1209600
|
_APP_MAINTENANCE_RETENTION_AUDIT=1209600
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ services:
|
|||||||
- appwrite
|
- appwrite
|
||||||
|
|
||||||
appwrite:
|
appwrite:
|
||||||
image: appwrite/appwrite:1.7.4
|
image: appwrite/appwrite:1.6.2
|
||||||
<<: *x-logging
|
<<: *x-logging
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
networks:
|
networks:
|
||||||
@@ -49,13 +49,10 @@ services:
|
|||||||
- traefik.http.routers.appwrite_api_https.tls=true
|
- traefik.http.routers.appwrite_api_https.tls=true
|
||||||
volumes:
|
volumes:
|
||||||
- appwrite-uploads:/storage/uploads:rw
|
- appwrite-uploads:/storage/uploads:rw
|
||||||
- appwrite-imports:/storage/imports:rw
|
|
||||||
- appwrite-cache:/storage/cache:rw
|
- appwrite-cache:/storage/cache:rw
|
||||||
- appwrite-config:/storage/config:rw
|
- appwrite-config:/storage/config:rw
|
||||||
- appwrite-certificates:/storage/certificates:rw
|
- appwrite-certificates:/storage/certificates:rw
|
||||||
- appwrite-functions:/storage/functions:rw
|
- appwrite-functions:/storage/functions:rw
|
||||||
- appwrite-sites:/storage/sites:rw
|
|
||||||
- appwrite-builds:/storage/builds:rw
|
|
||||||
depends_on:
|
depends_on:
|
||||||
- mariadb
|
- mariadb
|
||||||
- redis
|
- redis
|
||||||
@@ -77,12 +74,10 @@ services:
|
|||||||
- _APP_OPTIONS_ABUSE
|
- _APP_OPTIONS_ABUSE
|
||||||
- _APP_OPTIONS_ROUTER_PROTECTION
|
- _APP_OPTIONS_ROUTER_PROTECTION
|
||||||
- _APP_OPTIONS_FORCE_HTTPS
|
- _APP_OPTIONS_FORCE_HTTPS
|
||||||
- _APP_OPTIONS_ROUTER_FORCE_HTTPS
|
- _APP_OPTIONS_FUNCTIONS_FORCE_HTTPS
|
||||||
- _APP_OPENSSL_KEY_V1
|
- _APP_OPENSSL_KEY_V1
|
||||||
- _APP_DOMAIN
|
- _APP_DOMAIN
|
||||||
- _APP_DOMAIN_TARGET_CNAME
|
- _APP_DOMAIN_TARGET
|
||||||
- _APP_DOMAIN_TARGET_AAAA
|
|
||||||
- _APP_DOMAIN_TARGET_A
|
|
||||||
- _APP_DOMAIN_FUNCTIONS
|
- _APP_DOMAIN_FUNCTIONS
|
||||||
- _APP_REDIS_HOST
|
- _APP_REDIS_HOST
|
||||||
- _APP_REDIS_PORT
|
- _APP_REDIS_PORT
|
||||||
@@ -126,21 +121,17 @@ services:
|
|||||||
- _APP_STORAGE_WASABI_SECRET
|
- _APP_STORAGE_WASABI_SECRET
|
||||||
- _APP_STORAGE_WASABI_REGION
|
- _APP_STORAGE_WASABI_REGION
|
||||||
- _APP_STORAGE_WASABI_BUCKET
|
- _APP_STORAGE_WASABI_BUCKET
|
||||||
- _APP_COMPUTE_SIZE_LIMIT
|
- _APP_FUNCTIONS_SIZE_LIMIT
|
||||||
- _APP_FUNCTIONS_TIMEOUT
|
- _APP_FUNCTIONS_TIMEOUT
|
||||||
- _APP_SITES_TIMEOUT
|
- _APP_FUNCTIONS_BUILD_TIMEOUT
|
||||||
- _APP_COMPUTE_BUILD_TIMEOUT
|
- _APP_FUNCTIONS_CPUS
|
||||||
- _APP_COMPUTE_CPUS
|
- _APP_FUNCTIONS_MEMORY
|
||||||
- _APP_COMPUTE_MEMORY
|
|
||||||
- _APP_FUNCTIONS_RUNTIMES
|
- _APP_FUNCTIONS_RUNTIMES
|
||||||
- _APP_SITES_RUNTIMES
|
|
||||||
- _APP_DOMAIN_SITES
|
|
||||||
- _APP_EXECUTOR_SECRET
|
- _APP_EXECUTOR_SECRET
|
||||||
- _APP_EXECUTOR_HOST
|
- _APP_EXECUTOR_HOST
|
||||||
- _APP_LOGGING_CONFIG
|
- _APP_LOGGING_CONFIG
|
||||||
- _APP_MAINTENANCE_INTERVAL
|
- _APP_MAINTENANCE_INTERVAL
|
||||||
- _APP_MAINTENANCE_DELAY
|
- _APP_MAINTENANCE_DELAY
|
||||||
- _APP_MAINTENANCE_START_TIME
|
|
||||||
- _APP_MAINTENANCE_RETENTION_EXECUTION
|
- _APP_MAINTENANCE_RETENTION_EXECUTION
|
||||||
- _APP_MAINTENANCE_RETENTION_CACHE
|
- _APP_MAINTENANCE_RETENTION_CACHE
|
||||||
- _APP_MAINTENANCE_RETENTION_ABUSE
|
- _APP_MAINTENANCE_RETENTION_ABUSE
|
||||||
@@ -162,10 +153,9 @@ services:
|
|||||||
- _APP_MIGRATIONS_FIREBASE_CLIENT_ID
|
- _APP_MIGRATIONS_FIREBASE_CLIENT_ID
|
||||||
- _APP_MIGRATIONS_FIREBASE_CLIENT_SECRET
|
- _APP_MIGRATIONS_FIREBASE_CLIENT_SECRET
|
||||||
- _APP_ASSISTANT_OPENAI_API_KEY
|
- _APP_ASSISTANT_OPENAI_API_KEY
|
||||||
|
|
||||||
appwrite-console:
|
appwrite-console:
|
||||||
<<: *x-logging
|
<<: *x-logging
|
||||||
image: appwrite/console:6.0.13
|
image: appwrite/console:5.2.58
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
networks:
|
networks:
|
||||||
- appwrite
|
- appwrite
|
||||||
@@ -185,7 +175,7 @@ services:
|
|||||||
- traefik.http.routers.appwrite_console_https.tls=true
|
- traefik.http.routers.appwrite_console_https.tls=true
|
||||||
|
|
||||||
appwrite-realtime:
|
appwrite-realtime:
|
||||||
image: appwrite/appwrite:1.7.4
|
image: appwrite/appwrite:1.6.2
|
||||||
entrypoint: realtime
|
entrypoint: realtime
|
||||||
<<: *x-logging
|
<<: *x-logging
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
@@ -227,7 +217,7 @@ services:
|
|||||||
- _APP_LOGGING_CONFIG
|
- _APP_LOGGING_CONFIG
|
||||||
|
|
||||||
appwrite-worker-audits:
|
appwrite-worker-audits:
|
||||||
image: appwrite/appwrite:1.7.4
|
image: appwrite/appwrite:1.6.2
|
||||||
entrypoint: worker-audits
|
entrypoint: worker-audits
|
||||||
<<: *x-logging
|
<<: *x-logging
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
@@ -252,7 +242,7 @@ services:
|
|||||||
- _APP_LOGGING_CONFIG
|
- _APP_LOGGING_CONFIG
|
||||||
|
|
||||||
appwrite-worker-webhooks:
|
appwrite-worker-webhooks:
|
||||||
image: appwrite/appwrite:1.7.4
|
image: appwrite/appwrite:1.6.2
|
||||||
entrypoint: worker-webhooks
|
entrypoint: worker-webhooks
|
||||||
<<: *x-logging
|
<<: *x-logging
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
@@ -279,7 +269,7 @@ services:
|
|||||||
- _APP_LOGGING_CONFIG
|
- _APP_LOGGING_CONFIG
|
||||||
|
|
||||||
appwrite-worker-deletes:
|
appwrite-worker-deletes:
|
||||||
image: appwrite/appwrite:1.7.4
|
image: appwrite/appwrite:1.6.2
|
||||||
entrypoint: worker-deletes
|
entrypoint: worker-deletes
|
||||||
<<: *x-logging
|
<<: *x-logging
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
@@ -292,7 +282,6 @@ services:
|
|||||||
- appwrite-uploads:/storage/uploads:rw
|
- appwrite-uploads:/storage/uploads:rw
|
||||||
- appwrite-cache:/storage/cache:rw
|
- appwrite-cache:/storage/cache:rw
|
||||||
- appwrite-functions:/storage/functions:rw
|
- appwrite-functions:/storage/functions:rw
|
||||||
- appwrite-sites:/storage/sites:rw
|
|
||||||
- appwrite-builds:/storage/builds:rw
|
- appwrite-builds:/storage/builds:rw
|
||||||
- appwrite-certificates:/storage/certificates:rw
|
- appwrite-certificates:/storage/certificates:rw
|
||||||
environment:
|
environment:
|
||||||
@@ -341,7 +330,7 @@ services:
|
|||||||
- _APP_EMAIL_CERTIFICATES
|
- _APP_EMAIL_CERTIFICATES
|
||||||
|
|
||||||
appwrite-worker-databases:
|
appwrite-worker-databases:
|
||||||
image: appwrite/appwrite:1.7.4
|
image: appwrite/appwrite:1.6.2
|
||||||
entrypoint: worker-databases
|
entrypoint: worker-databases
|
||||||
<<: *x-logging
|
<<: *x-logging
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
@@ -366,7 +355,7 @@ services:
|
|||||||
- _APP_LOGGING_CONFIG
|
- _APP_LOGGING_CONFIG
|
||||||
|
|
||||||
appwrite-worker-builds:
|
appwrite-worker-builds:
|
||||||
image: appwrite/appwrite:1.7.4
|
image: appwrite/appwrite:1.6.2
|
||||||
entrypoint: worker-builds
|
entrypoint: worker-builds
|
||||||
<<: *x-logging
|
<<: *x-logging
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
@@ -377,9 +366,7 @@ services:
|
|||||||
- mariadb
|
- mariadb
|
||||||
volumes:
|
volumes:
|
||||||
- appwrite-functions:/storage/functions:rw
|
- appwrite-functions:/storage/functions:rw
|
||||||
- appwrite-sites:/storage/sites:rw
|
|
||||||
- appwrite-builds:/storage/builds:rw
|
- appwrite-builds:/storage/builds:rw
|
||||||
- appwrite-uploads:/storage/uploads:rw
|
|
||||||
environment:
|
environment:
|
||||||
- _APP_ENV
|
- _APP_ENV
|
||||||
- _APP_WORKER_PER_CORE
|
- _APP_WORKER_PER_CORE
|
||||||
@@ -400,13 +387,12 @@ services:
|
|||||||
- _APP_VCS_GITHUB_PRIVATE_KEY
|
- _APP_VCS_GITHUB_PRIVATE_KEY
|
||||||
- _APP_VCS_GITHUB_APP_ID
|
- _APP_VCS_GITHUB_APP_ID
|
||||||
- _APP_FUNCTIONS_TIMEOUT
|
- _APP_FUNCTIONS_TIMEOUT
|
||||||
- _APP_SITES_TIMEOUT
|
- _APP_FUNCTIONS_BUILD_TIMEOUT
|
||||||
- _APP_COMPUTE_BUILD_TIMEOUT
|
- _APP_FUNCTIONS_CPUS
|
||||||
- _APP_COMPUTE_CPUS
|
- _APP_FUNCTIONS_MEMORY
|
||||||
- _APP_COMPUTE_MEMORY
|
- _APP_FUNCTIONS_SIZE_LIMIT
|
||||||
- _APP_COMPUTE_SIZE_LIMIT
|
|
||||||
- _APP_OPTIONS_FORCE_HTTPS
|
- _APP_OPTIONS_FORCE_HTTPS
|
||||||
- _APP_OPTIONS_ROUTER_FORCE_HTTPS
|
- _APP_OPTIONS_FUNCTIONS_FORCE_HTTPS
|
||||||
- _APP_DOMAIN
|
- _APP_DOMAIN
|
||||||
- _APP_STORAGE_DEVICE
|
- _APP_STORAGE_DEVICE
|
||||||
- _APP_STORAGE_S3_ACCESS_KEY
|
- _APP_STORAGE_S3_ACCESS_KEY
|
||||||
@@ -430,10 +416,9 @@ services:
|
|||||||
- _APP_STORAGE_WASABI_SECRET
|
- _APP_STORAGE_WASABI_SECRET
|
||||||
- _APP_STORAGE_WASABI_REGION
|
- _APP_STORAGE_WASABI_REGION
|
||||||
- _APP_STORAGE_WASABI_BUCKET
|
- _APP_STORAGE_WASABI_BUCKET
|
||||||
- _APP_DOMAIN_SITES
|
|
||||||
|
|
||||||
appwrite-worker-certificates:
|
appwrite-worker-certificates:
|
||||||
image: appwrite/appwrite:1.7.4
|
image: appwrite/appwrite:1.6.2
|
||||||
entrypoint: worker-certificates
|
entrypoint: worker-certificates
|
||||||
<<: *x-logging
|
<<: *x-logging
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
@@ -450,9 +435,7 @@ services:
|
|||||||
- _APP_WORKER_PER_CORE
|
- _APP_WORKER_PER_CORE
|
||||||
- _APP_OPENSSL_KEY_V1
|
- _APP_OPENSSL_KEY_V1
|
||||||
- _APP_DOMAIN
|
- _APP_DOMAIN
|
||||||
- _APP_DOMAIN_TARGET_CNAME
|
- _APP_DOMAIN_TARGET
|
||||||
- _APP_DOMAIN_TARGET_AAAA
|
|
||||||
- _APP_DOMAIN_TARGET_A
|
|
||||||
- _APP_DOMAIN_FUNCTIONS
|
- _APP_DOMAIN_FUNCTIONS
|
||||||
- _APP_EMAIL_CERTIFICATES
|
- _APP_EMAIL_CERTIFICATES
|
||||||
- _APP_REDIS_HOST
|
- _APP_REDIS_HOST
|
||||||
@@ -467,7 +450,7 @@ services:
|
|||||||
- _APP_LOGGING_CONFIG
|
- _APP_LOGGING_CONFIG
|
||||||
|
|
||||||
appwrite-worker-functions:
|
appwrite-worker-functions:
|
||||||
image: appwrite/appwrite:1.7.4
|
image: appwrite/appwrite:1.6.2
|
||||||
entrypoint: worker-functions
|
entrypoint: worker-functions
|
||||||
<<: *x-logging
|
<<: *x-logging
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
@@ -493,10 +476,9 @@ services:
|
|||||||
- _APP_DB_USER
|
- _APP_DB_USER
|
||||||
- _APP_DB_PASS
|
- _APP_DB_PASS
|
||||||
- _APP_FUNCTIONS_TIMEOUT
|
- _APP_FUNCTIONS_TIMEOUT
|
||||||
- _APP_SITES_TIMEOUT
|
- _APP_FUNCTIONS_BUILD_TIMEOUT
|
||||||
- _APP_COMPUTE_BUILD_TIMEOUT
|
- _APP_FUNCTIONS_CPUS
|
||||||
- _APP_COMPUTE_CPUS
|
- _APP_FUNCTIONS_MEMORY
|
||||||
- _APP_COMPUTE_MEMORY
|
|
||||||
- _APP_EXECUTOR_SECRET
|
- _APP_EXECUTOR_SECRET
|
||||||
- _APP_EXECUTOR_HOST
|
- _APP_EXECUTOR_HOST
|
||||||
- _APP_USAGE_STATS
|
- _APP_USAGE_STATS
|
||||||
@@ -505,7 +487,7 @@ services:
|
|||||||
- _APP_LOGGING_CONFIG
|
- _APP_LOGGING_CONFIG
|
||||||
|
|
||||||
appwrite-worker-mails:
|
appwrite-worker-mails:
|
||||||
image: appwrite/appwrite:1.7.4
|
image: appwrite/appwrite:1.6.2
|
||||||
entrypoint: worker-mails
|
entrypoint: worker-mails
|
||||||
<<: *x-logging
|
<<: *x-logging
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
@@ -538,7 +520,7 @@ services:
|
|||||||
- _APP_OPTIONS_FORCE_HTTPS
|
- _APP_OPTIONS_FORCE_HTTPS
|
||||||
|
|
||||||
appwrite-worker-messaging:
|
appwrite-worker-messaging:
|
||||||
image: appwrite/appwrite:1.7.4
|
image: appwrite/appwrite:1.6.2
|
||||||
entrypoint: worker-messaging
|
entrypoint: worker-messaging
|
||||||
<<: *x-logging
|
<<: *x-logging
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
@@ -588,14 +570,12 @@ services:
|
|||||||
- _APP_STORAGE_WASABI_BUCKET
|
- _APP_STORAGE_WASABI_BUCKET
|
||||||
|
|
||||||
appwrite-worker-migrations:
|
appwrite-worker-migrations:
|
||||||
image: appwrite/appwrite:1.7.4
|
image: appwrite/appwrite:1.6.2
|
||||||
entrypoint: worker-migrations
|
entrypoint: worker-migrations
|
||||||
<<: *x-logging
|
<<: *x-logging
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
networks:
|
networks:
|
||||||
- appwrite
|
- appwrite
|
||||||
volumes:
|
|
||||||
- appwrite-imports:/storage/imports:rw
|
|
||||||
depends_on:
|
depends_on:
|
||||||
- mariadb
|
- mariadb
|
||||||
environment:
|
environment:
|
||||||
@@ -603,9 +583,7 @@ services:
|
|||||||
- _APP_WORKER_PER_CORE
|
- _APP_WORKER_PER_CORE
|
||||||
- _APP_OPENSSL_KEY_V1
|
- _APP_OPENSSL_KEY_V1
|
||||||
- _APP_DOMAIN
|
- _APP_DOMAIN
|
||||||
- _APP_DOMAIN_TARGET_CNAME
|
- _APP_DOMAIN_TARGET
|
||||||
- _APP_DOMAIN_TARGET_AAAA
|
|
||||||
- _APP_DOMAIN_TARGET_A
|
|
||||||
- _APP_EMAIL_SECURITY
|
- _APP_EMAIL_SECURITY
|
||||||
- _APP_REDIS_HOST
|
- _APP_REDIS_HOST
|
||||||
- _APP_REDIS_PORT
|
- _APP_REDIS_PORT
|
||||||
@@ -621,7 +599,7 @@ services:
|
|||||||
- _APP_MIGRATIONS_FIREBASE_CLIENT_SECRET
|
- _APP_MIGRATIONS_FIREBASE_CLIENT_SECRET
|
||||||
|
|
||||||
appwrite-task-maintenance:
|
appwrite-task-maintenance:
|
||||||
image: appwrite/appwrite:1.7.4
|
image: appwrite/appwrite:1.6.2
|
||||||
entrypoint: maintenance
|
entrypoint: maintenance
|
||||||
<<: *x-logging
|
<<: *x-logging
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
@@ -633,9 +611,7 @@ services:
|
|||||||
- _APP_ENV
|
- _APP_ENV
|
||||||
- _APP_WORKER_PER_CORE
|
- _APP_WORKER_PER_CORE
|
||||||
- _APP_DOMAIN
|
- _APP_DOMAIN
|
||||||
- _APP_DOMAIN_TARGET_CNAME
|
- _APP_DOMAIN_TARGET
|
||||||
- _APP_DOMAIN_TARGET_AAAA
|
|
||||||
- _APP_DOMAIN_TARGET_A
|
|
||||||
- _APP_DOMAIN_FUNCTIONS
|
- _APP_DOMAIN_FUNCTIONS
|
||||||
- _APP_OPENSSL_KEY_V1
|
- _APP_OPENSSL_KEY_V1
|
||||||
- _APP_REDIS_HOST
|
- _APP_REDIS_HOST
|
||||||
@@ -657,12 +633,14 @@ services:
|
|||||||
- _APP_MAINTENANCE_RETENTION_SCHEDULES
|
- _APP_MAINTENANCE_RETENTION_SCHEDULES
|
||||||
|
|
||||||
appwrite-task-stats-resources:
|
appwrite-task-stats-resources:
|
||||||
image: appwrite/appwrite:1.7.4
|
image: appwrite/appwrite:1.6.2
|
||||||
entrypoint: stats-resources
|
entrypoint: stats-resources
|
||||||
<<: *x-logging
|
<<: *x-logging
|
||||||
restart: unless-stopped
|
|
||||||
networks:
|
networks:
|
||||||
- appwrite
|
- appwrite
|
||||||
|
volumes:
|
||||||
|
- ./app:/usr/src/code/app
|
||||||
|
- ./src:/usr/src/code/src
|
||||||
depends_on:
|
depends_on:
|
||||||
- redis
|
- redis
|
||||||
- mariadb
|
- mariadb
|
||||||
@@ -685,7 +663,7 @@ services:
|
|||||||
- _APP_STATS_RESOURCES_INTERVAL
|
- _APP_STATS_RESOURCES_INTERVAL
|
||||||
|
|
||||||
appwrite-worker-stats-resources:
|
appwrite-worker-stats-resources:
|
||||||
image: appwrite/appwrite:1.7.4
|
image: appwrite/appwrite:1.6.2
|
||||||
entrypoint: worker-stats-resources
|
entrypoint: worker-stats-resources
|
||||||
<<: *x-logging
|
<<: *x-logging
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
@@ -712,7 +690,7 @@ services:
|
|||||||
- _APP_STATS_RESOURCES_INTERVAL
|
- _APP_STATS_RESOURCES_INTERVAL
|
||||||
|
|
||||||
appwrite-worker-stats-usage:
|
appwrite-worker-stats-usage:
|
||||||
image: appwrite/appwrite:1.7.4
|
image: appwrite/appwrite:1.6.2
|
||||||
entrypoint: worker-stats-usage
|
entrypoint: worker-stats-usage
|
||||||
<<: *x-logging
|
<<: *x-logging
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
@@ -739,7 +717,7 @@ services:
|
|||||||
- _APP_USAGE_AGGREGATION_INTERVAL
|
- _APP_USAGE_AGGREGATION_INTERVAL
|
||||||
|
|
||||||
appwrite-task-scheduler-functions:
|
appwrite-task-scheduler-functions:
|
||||||
image: appwrite/appwrite:1.7.4
|
image: appwrite/appwrite:1.6.2
|
||||||
entrypoint: schedule-functions
|
entrypoint: schedule-functions
|
||||||
<<: *x-logging
|
<<: *x-logging
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
@@ -763,7 +741,7 @@ services:
|
|||||||
- _APP_DB_PASS
|
- _APP_DB_PASS
|
||||||
|
|
||||||
appwrite-task-scheduler-executions:
|
appwrite-task-scheduler-executions:
|
||||||
image: appwrite/appwrite:1.7.4
|
image: appwrite/appwrite:1.6.2
|
||||||
entrypoint: schedule-executions
|
entrypoint: schedule-executions
|
||||||
<<: *x-logging
|
<<: *x-logging
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
@@ -787,7 +765,7 @@ services:
|
|||||||
- _APP_DB_PASS
|
- _APP_DB_PASS
|
||||||
|
|
||||||
appwrite-task-scheduler-messages:
|
appwrite-task-scheduler-messages:
|
||||||
image: appwrite/appwrite:1.7.4
|
image: appwrite/appwrite:1.6.2
|
||||||
entrypoint: schedule-messages
|
entrypoint: schedule-messages
|
||||||
<<: *x-logging
|
<<: *x-logging
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
@@ -819,19 +797,12 @@ services:
|
|||||||
environment:
|
environment:
|
||||||
- _APP_ASSISTANT_OPENAI_API_KEY
|
- _APP_ASSISTANT_OPENAI_API_KEY
|
||||||
|
|
||||||
appwrite-browser:
|
|
||||||
image: appwrite/browser:0.2.4
|
|
||||||
<<: *x-logging
|
|
||||||
restart: unless-stopped
|
|
||||||
networks:
|
|
||||||
- appwrite
|
|
||||||
|
|
||||||
openruntimes-executor:
|
openruntimes-executor:
|
||||||
hostname: exc1
|
hostname: exc1
|
||||||
<<: *x-logging
|
<<: *x-logging
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
stop_signal: SIGINT
|
stop_signal: SIGINT
|
||||||
image: openruntimes/executor:0.7.14
|
image: openruntimes/executor:0.6.11
|
||||||
networks:
|
networks:
|
||||||
- appwrite
|
- appwrite
|
||||||
- runtimes
|
- runtimes
|
||||||
@@ -839,20 +810,18 @@ services:
|
|||||||
- /var/run/docker.sock:/var/run/docker.sock
|
- /var/run/docker.sock:/var/run/docker.sock
|
||||||
- appwrite-builds:/storage/builds:rw
|
- appwrite-builds:/storage/builds:rw
|
||||||
- appwrite-functions:/storage/functions:rw
|
- appwrite-functions:/storage/functions:rw
|
||||||
- appwrite-sites:/storage/sites:rw
|
|
||||||
# Host mount nessessary to share files between executor and runtimes.
|
# Host mount nessessary to share files between executor and runtimes.
|
||||||
# It's not possible to share mount file between 2 containers without host mount (copying is too slow)
|
# It's not possible to share mount file between 2 containers without host mount (copying is too slow)
|
||||||
- /tmp:/tmp:rw
|
- /tmp:/tmp:rw
|
||||||
environment:
|
environment:
|
||||||
- OPR_EXECUTOR_INACTIVE_TRESHOLD=$_APP_COMPUTE_INACTIVE_THRESHOLD
|
- OPR_EXECUTOR_INACTIVE_TRESHOLD=$_APP_FUNCTIONS_INACTIVE_THRESHOLD
|
||||||
- OPR_EXECUTOR_MAINTENANCE_INTERVAL=$_APP_COMPUTE_MAINTENANCE_INTERVAL
|
- OPR_EXECUTOR_MAINTENANCE_INTERVAL=$_APP_FUNCTIONS_MAINTENANCE_INTERVAL
|
||||||
- OPR_EXECUTOR_NETWORK=$_APP_COMPUTE_RUNTIMES_NETWORK
|
- OPR_EXECUTOR_NETWORK=$_APP_FUNCTIONS_RUNTIMES_NETWORK
|
||||||
- OPR_EXECUTOR_DOCKER_HUB_USERNAME=$_APP_DOCKER_HUB_USERNAME
|
- OPR_EXECUTOR_DOCKER_HUB_USERNAME=$_APP_DOCKER_HUB_USERNAME
|
||||||
- OPR_EXECUTOR_DOCKER_HUB_PASSWORD=$_APP_DOCKER_HUB_PASSWORD
|
- OPR_EXECUTOR_DOCKER_HUB_PASSWORD=$_APP_DOCKER_HUB_PASSWORD
|
||||||
- OPR_EXECUTOR_ENV=$_APP_ENV
|
- OPR_EXECUTOR_ENV=$_APP_ENV
|
||||||
- OPR_EXECUTOR_RUNTIMES=$_APP_FUNCTIONS_RUNTIMES,$_APP_SITES_RUNTIMES
|
- OPR_EXECUTOR_RUNTIMES=$_APP_FUNCTIONS_RUNTIMES
|
||||||
- OPR_EXECUTOR_SECRET=$_APP_EXECUTOR_SECRET
|
- OPR_EXECUTOR_SECRET=$_APP_EXECUTOR_SECRET
|
||||||
- OPR_EXECUTOR_RUNTIME_VERSIONS=v5
|
|
||||||
- OPR_EXECUTOR_LOGGING_CONFIG=$_APP_LOGGING_CONFIG
|
- OPR_EXECUTOR_LOGGING_CONFIG=$_APP_LOGGING_CONFIG
|
||||||
- OPR_EXECUTOR_STORAGE_DEVICE=$_APP_STORAGE_DEVICE
|
- OPR_EXECUTOR_STORAGE_DEVICE=$_APP_STORAGE_DEVICE
|
||||||
- OPR_EXECUTOR_STORAGE_S3_ACCESS_KEY=$_APP_STORAGE_S3_ACCESS_KEY
|
- OPR_EXECUTOR_STORAGE_S3_ACCESS_KEY=$_APP_STORAGE_S3_ACCESS_KEY
|
||||||
@@ -926,9 +895,7 @@ volumes:
|
|||||||
appwrite-redis:
|
appwrite-redis:
|
||||||
appwrite-cache:
|
appwrite-cache:
|
||||||
appwrite-uploads:
|
appwrite-uploads:
|
||||||
appwrite-imports:
|
|
||||||
appwrite-certificates:
|
appwrite-certificates:
|
||||||
appwrite-functions:
|
appwrite-functions:
|
||||||
appwrite-sites:
|
|
||||||
appwrite-builds:
|
appwrite-builds:
|
||||||
appwrite-config:
|
appwrite-config:
|
||||||
|
|||||||
+5
-36
@@ -285,7 +285,6 @@ BROKER_USE_SSL=false
|
|||||||
# If you are using Redis Sentinel for high availability, configure the following settings.
|
# If you are using Redis Sentinel for high availability, configure the following settings.
|
||||||
CELERY_USE_SENTINEL=false
|
CELERY_USE_SENTINEL=false
|
||||||
CELERY_SENTINEL_MASTER_NAME=
|
CELERY_SENTINEL_MASTER_NAME=
|
||||||
CELERY_SENTINEL_PASSWORD=
|
|
||||||
CELERY_SENTINEL_SOCKET_TIMEOUT=0.1
|
CELERY_SENTINEL_SOCKET_TIMEOUT=0.1
|
||||||
|
|
||||||
# ------------------------------
|
# ------------------------------
|
||||||
@@ -400,7 +399,7 @@ SUPABASE_URL=your-server-url
|
|||||||
# ------------------------------
|
# ------------------------------
|
||||||
|
|
||||||
# The type of vector store to use.
|
# The type of vector store to use.
|
||||||
# Supported values are `weaviate`, `qdrant`, `milvus`, `myscale`, `relyt`, `pgvector`, `pgvecto-rs`, `chroma`, `opensearch`, `oracle`, `tencent`, `elasticsearch`, `elasticsearch-ja`, `analyticdb`, `couchbase`, `vikingdb`, `oceanbase`, `opengauss`, `tablestore`,`vastbase`,`tidb`,`tidb_on_qdrant`,`baidu`,`lindorm`,`huawei_cloud`,`upstash`, `matrixone`.
|
# Supported values are `weaviate`, `qdrant`, `milvus`, `myscale`, `relyt`, `pgvector`, `pgvecto-rs`, `chroma`, `opensearch`, `oracle`, `tencent`, `elasticsearch`, `elasticsearch-ja`, `analyticdb`, `couchbase`, `vikingdb`, `oceanbase`, `opengauss`, `tablestore`,`vastbase`,`tidb`,`tidb_on_qdrant`,`baidu`,`lindorm`,`huawei_cloud`,`upstash`.
|
||||||
VECTOR_STORE=weaviate
|
VECTOR_STORE=weaviate
|
||||||
|
|
||||||
# The Weaviate endpoint URL. Only available when VECTOR_STORE is `weaviate`.
|
# The Weaviate endpoint URL. Only available when VECTOR_STORE is `weaviate`.
|
||||||
@@ -413,7 +412,6 @@ QDRANT_API_KEY=difyai123456
|
|||||||
QDRANT_CLIENT_TIMEOUT=20
|
QDRANT_CLIENT_TIMEOUT=20
|
||||||
QDRANT_GRPC_ENABLED=false
|
QDRANT_GRPC_ENABLED=false
|
||||||
QDRANT_GRPC_PORT=6334
|
QDRANT_GRPC_PORT=6334
|
||||||
QDRANT_REPLICATION_FACTOR=1
|
|
||||||
|
|
||||||
# Milvus configuration. Only available when VECTOR_STORE is `milvus`.
|
# Milvus configuration. Only available when VECTOR_STORE is `milvus`.
|
||||||
# The milvus uri.
|
# The milvus uri.
|
||||||
@@ -491,13 +489,6 @@ TIDB_VECTOR_USER=
|
|||||||
TIDB_VECTOR_PASSWORD=
|
TIDB_VECTOR_PASSWORD=
|
||||||
TIDB_VECTOR_DATABASE=dify
|
TIDB_VECTOR_DATABASE=dify
|
||||||
|
|
||||||
# Matrixone vector configurations.
|
|
||||||
MATRIXONE_HOST=matrixone
|
|
||||||
MATRIXONE_PORT=6001
|
|
||||||
MATRIXONE_USER=dump
|
|
||||||
MATRIXONE_PASSWORD=111
|
|
||||||
MATRIXONE_DATABASE=dify
|
|
||||||
|
|
||||||
# Tidb on qdrant configuration, only available when VECTOR_STORE is `tidb_on_qdrant`
|
# Tidb on qdrant configuration, only available when VECTOR_STORE is `tidb_on_qdrant`
|
||||||
TIDB_ON_QDRANT_URL=http://127.0.0.1
|
TIDB_ON_QDRANT_URL=http://127.0.0.1
|
||||||
TIDB_ON_QDRANT_API_KEY=dify
|
TIDB_ON_QDRANT_API_KEY=dify
|
||||||
@@ -540,7 +531,6 @@ RELYT_DATABASE=postgres
|
|||||||
OPENSEARCH_HOST=opensearch
|
OPENSEARCH_HOST=opensearch
|
||||||
OPENSEARCH_PORT=9200
|
OPENSEARCH_PORT=9200
|
||||||
OPENSEARCH_SECURE=true
|
OPENSEARCH_SECURE=true
|
||||||
OPENSEARCH_VERIFY_CERTS=true
|
|
||||||
OPENSEARCH_AUTH_METHOD=basic
|
OPENSEARCH_AUTH_METHOD=basic
|
||||||
OPENSEARCH_USER=admin
|
OPENSEARCH_USER=admin
|
||||||
OPENSEARCH_PASSWORD=admin
|
OPENSEARCH_PASSWORD=admin
|
||||||
@@ -727,11 +717,10 @@ NOTION_INTERNAL_SECRET=
|
|||||||
# Mail related configuration
|
# Mail related configuration
|
||||||
# ------------------------------
|
# ------------------------------
|
||||||
|
|
||||||
# Mail type, support: resend, smtp, sendgrid
|
# Mail type, support: resend, smtp
|
||||||
MAIL_TYPE=resend
|
MAIL_TYPE=resend
|
||||||
|
|
||||||
# Default send from email address, if not specified
|
# Default send from email address, if not specified
|
||||||
# If using SendGrid, use the 'from' field for authentication if necessary.
|
|
||||||
MAIL_DEFAULT_SEND_FROM=
|
MAIL_DEFAULT_SEND_FROM=
|
||||||
|
|
||||||
# API-Key for the Resend email provider, used when MAIL_TYPE is `resend`.
|
# API-Key for the Resend email provider, used when MAIL_TYPE is `resend`.
|
||||||
@@ -747,9 +736,6 @@ SMTP_PASSWORD=
|
|||||||
SMTP_USE_TLS=true
|
SMTP_USE_TLS=true
|
||||||
SMTP_OPPORTUNISTIC_TLS=false
|
SMTP_OPPORTUNISTIC_TLS=false
|
||||||
|
|
||||||
# Sendgid configuration
|
|
||||||
SENDGRID_API_KEY=
|
|
||||||
|
|
||||||
# ------------------------------
|
# ------------------------------
|
||||||
# Others Configuration
|
# Others Configuration
|
||||||
# ------------------------------
|
# ------------------------------
|
||||||
@@ -799,9 +785,6 @@ HTTP_REQUEST_NODE_MAX_BINARY_SIZE=10485760
|
|||||||
HTTP_REQUEST_NODE_MAX_TEXT_SIZE=1048576
|
HTTP_REQUEST_NODE_MAX_TEXT_SIZE=1048576
|
||||||
HTTP_REQUEST_NODE_SSL_VERIFY=True
|
HTTP_REQUEST_NODE_SSL_VERIFY=True
|
||||||
|
|
||||||
# Respect X-* headers to redirect clients
|
|
||||||
RESPECT_XFORWARD_HEADERS_ENABLED=false
|
|
||||||
|
|
||||||
# SSRF Proxy server HTTP URL
|
# SSRF Proxy server HTTP URL
|
||||||
SSRF_PROXY_HTTP_URL=http://ssrf_proxy:3128
|
SSRF_PROXY_HTTP_URL=http://ssrf_proxy:3128
|
||||||
# SSRF Proxy server HTTPS URL
|
# SSRF Proxy server HTTPS URL
|
||||||
@@ -817,7 +800,7 @@ MAX_TOOLS_NUM=10
|
|||||||
MAX_PARALLEL_LIMIT=10
|
MAX_PARALLEL_LIMIT=10
|
||||||
|
|
||||||
# The maximum number of iterations for agent setting
|
# The maximum number of iterations for agent setting
|
||||||
MAX_ITERATIONS_NUM=99
|
MAX_ITERATIONS_NUM=5
|
||||||
|
|
||||||
# ------------------------------
|
# ------------------------------
|
||||||
# Environment Variables for web Service
|
# Environment Variables for web Service
|
||||||
@@ -830,8 +813,7 @@ TEXT_GENERATION_TIMEOUT_MS=60000
|
|||||||
# Environment Variables for db Service
|
# Environment Variables for db Service
|
||||||
# ------------------------------
|
# ------------------------------
|
||||||
|
|
||||||
# The name of the default postgres user.
|
PGUSER=${DB_USERNAME}
|
||||||
POSTGRES_USER=${DB_USERNAME}
|
|
||||||
# The password for the default postgres user.
|
# The password for the default postgres user.
|
||||||
POSTGRES_PASSWORD=${DB_PASSWORD}
|
POSTGRES_PASSWORD=${DB_PASSWORD}
|
||||||
# The name of the default postgres database.
|
# The name of the default postgres database.
|
||||||
@@ -1073,7 +1055,7 @@ PLUGIN_MAX_EXECUTION_TIMEOUT=600
|
|||||||
PIP_MIRROR_URL=
|
PIP_MIRROR_URL=
|
||||||
|
|
||||||
# https://github.com/langgenius/dify-plugin-daemon/blob/main/.env.example
|
# https://github.com/langgenius/dify-plugin-daemon/blob/main/.env.example
|
||||||
# Plugin storage type, local aws_s3 tencent_cos azure_blob aliyun_oss volcengine_tos
|
# Plugin storage type, local aws_s3 tencent_cos azure_blob aliyun_oss
|
||||||
PLUGIN_STORAGE_TYPE=local
|
PLUGIN_STORAGE_TYPE=local
|
||||||
PLUGIN_STORAGE_LOCAL_ROOT=/app/storage
|
PLUGIN_STORAGE_LOCAL_ROOT=/app/storage
|
||||||
PLUGIN_WORKING_PATH=/app/storage/cwd
|
PLUGIN_WORKING_PATH=/app/storage/cwd
|
||||||
@@ -1083,7 +1065,6 @@ PLUGIN_MEDIA_CACHE_PATH=assets
|
|||||||
# Plugin oss bucket
|
# Plugin oss bucket
|
||||||
PLUGIN_STORAGE_OSS_BUCKET=
|
PLUGIN_STORAGE_OSS_BUCKET=
|
||||||
# Plugin oss s3 credentials
|
# Plugin oss s3 credentials
|
||||||
PLUGIN_S3_USE_AWS=false
|
|
||||||
PLUGIN_S3_USE_AWS_MANAGED_IAM=false
|
PLUGIN_S3_USE_AWS_MANAGED_IAM=false
|
||||||
PLUGIN_S3_ENDPOINT=
|
PLUGIN_S3_ENDPOINT=
|
||||||
PLUGIN_S3_USE_PATH_STYLE=false
|
PLUGIN_S3_USE_PATH_STYLE=false
|
||||||
@@ -1104,11 +1085,6 @@ PLUGIN_ALIYUN_OSS_ACCESS_KEY_ID=
|
|||||||
PLUGIN_ALIYUN_OSS_ACCESS_KEY_SECRET=
|
PLUGIN_ALIYUN_OSS_ACCESS_KEY_SECRET=
|
||||||
PLUGIN_ALIYUN_OSS_AUTH_VERSION=v4
|
PLUGIN_ALIYUN_OSS_AUTH_VERSION=v4
|
||||||
PLUGIN_ALIYUN_OSS_PATH=
|
PLUGIN_ALIYUN_OSS_PATH=
|
||||||
# Plugin oss volcengine tos
|
|
||||||
PLUGIN_VOLCENGINE_TOS_ENDPOINT=
|
|
||||||
PLUGIN_VOLCENGINE_TOS_ACCESS_KEY=
|
|
||||||
PLUGIN_VOLCENGINE_TOS_SECRET_KEY=
|
|
||||||
PLUGIN_VOLCENGINE_TOS_REGION=
|
|
||||||
|
|
||||||
# ------------------------------
|
# ------------------------------
|
||||||
# OTLP Collector Configuration
|
# OTLP Collector Configuration
|
||||||
@@ -1128,10 +1104,3 @@ OTEL_METRIC_EXPORT_TIMEOUT=30000
|
|||||||
|
|
||||||
# Prevent Clickjacking
|
# Prevent Clickjacking
|
||||||
ALLOW_EMBED=false
|
ALLOW_EMBED=false
|
||||||
|
|
||||||
# Dataset queue monitor configuration
|
|
||||||
QUEUE_MONITOR_THRESHOLD=200
|
|
||||||
# You can configure multiple ones, separated by commas. eg: test1@dify.ai,test2@dify.ai
|
|
||||||
QUEUE_MONITOR_ALERT_EMAILS=
|
|
||||||
# Monitor interval in minutes, default is 30 minutes
|
|
||||||
QUEUE_MONITOR_INTERVAL=30
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ x-shared-env: &shared-api-worker-env
|
|||||||
services:
|
services:
|
||||||
# API service
|
# API service
|
||||||
api:
|
api:
|
||||||
image: langgenius/dify-api:1.5.1
|
image: langgenius/dify-api:1.4.0
|
||||||
restart: always
|
restart: always
|
||||||
environment:
|
environment:
|
||||||
# Use the shared environment variables.
|
# Use the shared environment variables.
|
||||||
@@ -31,7 +31,7 @@ services:
|
|||||||
# 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.5.1
|
image: langgenius/dify-api:1.4.0
|
||||||
restart: always
|
restart: always
|
||||||
environment:
|
environment:
|
||||||
# Use the shared environment variables.
|
# Use the shared environment variables.
|
||||||
@@ -57,7 +57,7 @@ services:
|
|||||||
|
|
||||||
# Frontend web application.
|
# Frontend web application.
|
||||||
web:
|
web:
|
||||||
image: langgenius/dify-web:1.5.1
|
image: langgenius/dify-web:1.4.0
|
||||||
restart: always
|
restart: always
|
||||||
environment:
|
environment:
|
||||||
CONSOLE_API_URL: ${CONSOLE_API_URL:-}
|
CONSOLE_API_URL: ${CONSOLE_API_URL:-}
|
||||||
@@ -75,7 +75,7 @@ services:
|
|||||||
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:-5}
|
||||||
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}
|
||||||
@@ -84,7 +84,7 @@ services:
|
|||||||
image: postgres:15-alpine
|
image: postgres:15-alpine
|
||||||
restart: always
|
restart: always
|
||||||
environment:
|
environment:
|
||||||
POSTGRES_USER: ${POSTGRES_USER:-postgres}
|
PGUSER: ${PGUSER:-postgres}
|
||||||
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-difyai123456}
|
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-difyai123456}
|
||||||
POSTGRES_DB: ${POSTGRES_DB:-dify}
|
POSTGRES_DB: ${POSTGRES_DB:-dify}
|
||||||
PGDATA: ${PGDATA:-/var/lib/postgresql/data/pgdata}
|
PGDATA: ${PGDATA:-/var/lib/postgresql/data/pgdata}
|
||||||
@@ -142,7 +142,7 @@ services:
|
|||||||
|
|
||||||
# plugin daemon
|
# plugin daemon
|
||||||
plugin_daemon:
|
plugin_daemon:
|
||||||
image: langgenius/dify-plugin-daemon:0.1.3-local
|
image: langgenius/dify-plugin-daemon:0.0.10-local
|
||||||
restart: always
|
restart: always
|
||||||
environment:
|
environment:
|
||||||
# Use the shared environment variables.
|
# Use the shared environment variables.
|
||||||
@@ -168,7 +168,6 @@ services:
|
|||||||
PLUGIN_MEDIA_CACHE_PATH: ${PLUGIN_MEDIA_CACHE_PATH:-assets}
|
PLUGIN_MEDIA_CACHE_PATH: ${PLUGIN_MEDIA_CACHE_PATH:-assets}
|
||||||
PLUGIN_STORAGE_OSS_BUCKET: ${PLUGIN_STORAGE_OSS_BUCKET:-}
|
PLUGIN_STORAGE_OSS_BUCKET: ${PLUGIN_STORAGE_OSS_BUCKET:-}
|
||||||
S3_USE_AWS_MANAGED_IAM: ${PLUGIN_S3_USE_AWS_MANAGED_IAM:-false}
|
S3_USE_AWS_MANAGED_IAM: ${PLUGIN_S3_USE_AWS_MANAGED_IAM:-false}
|
||||||
S3_USE_AWS: ${PLUGIN_S3_USE_AWS:-false}
|
|
||||||
S3_ENDPOINT: ${PLUGIN_S3_ENDPOINT:-}
|
S3_ENDPOINT: ${PLUGIN_S3_ENDPOINT:-}
|
||||||
S3_USE_PATH_STYLE: ${PLUGIN_S3_USE_PATH_STYLE:-false}
|
S3_USE_PATH_STYLE: ${PLUGIN_S3_USE_PATH_STYLE:-false}
|
||||||
AWS_ACCESS_KEY: ${PLUGIN_AWS_ACCESS_KEY:-}
|
AWS_ACCESS_KEY: ${PLUGIN_AWS_ACCESS_KEY:-}
|
||||||
@@ -185,10 +184,6 @@ services:
|
|||||||
ALIYUN_OSS_ACCESS_KEY_SECRET: ${PLUGIN_ALIYUN_OSS_ACCESS_KEY_SECRET:-}
|
ALIYUN_OSS_ACCESS_KEY_SECRET: ${PLUGIN_ALIYUN_OSS_ACCESS_KEY_SECRET:-}
|
||||||
ALIYUN_OSS_AUTH_VERSION: ${PLUGIN_ALIYUN_OSS_AUTH_VERSION:-v4}
|
ALIYUN_OSS_AUTH_VERSION: ${PLUGIN_ALIYUN_OSS_AUTH_VERSION:-v4}
|
||||||
ALIYUN_OSS_PATH: ${PLUGIN_ALIYUN_OSS_PATH:-}
|
ALIYUN_OSS_PATH: ${PLUGIN_ALIYUN_OSS_PATH:-}
|
||||||
VOLCENGINE_TOS_ENDPOINT: ${PLUGIN_VOLCENGINE_TOS_ENDPOINT:-}
|
|
||||||
VOLCENGINE_TOS_ACCESS_KEY: ${PLUGIN_VOLCENGINE_TOS_ACCESS_KEY:-}
|
|
||||||
VOLCENGINE_TOS_SECRET_KEY: ${PLUGIN_VOLCENGINE_TOS_SECRET_KEY:-}
|
|
||||||
VOLCENGINE_TOS_REGION: ${PLUGIN_VOLCENGINE_TOS_REGION:-}
|
|
||||||
ports:
|
ports:
|
||||||
- "${EXPOSE_PLUGIN_DEBUGGING_PORT:-5003}:${PLUGIN_DEBUGGING_PORT:-5003}"
|
- "${EXPOSE_PLUGIN_DEBUGGING_PORT:-5003}:${PLUGIN_DEBUGGING_PORT:-5003}"
|
||||||
volumes:
|
volumes:
|
||||||
@@ -435,7 +430,7 @@ services:
|
|||||||
|
|
||||||
# OceanBase vector database
|
# OceanBase vector database
|
||||||
oceanbase:
|
oceanbase:
|
||||||
image: oceanbase/oceanbase-ce:4.3.5-lts
|
image: oceanbase/oceanbase-ce:4.3.5.1-101000042025031818
|
||||||
container_name: oceanbase
|
container_name: oceanbase
|
||||||
profiles:
|
profiles:
|
||||||
- oceanbase
|
- oceanbase
|
||||||
@@ -449,16 +444,9 @@ services:
|
|||||||
OB_SYS_PASSWORD: ${OCEANBASE_VECTOR_PASSWORD:-difyai123456}
|
OB_SYS_PASSWORD: ${OCEANBASE_VECTOR_PASSWORD:-difyai123456}
|
||||||
OB_TENANT_PASSWORD: ${OCEANBASE_VECTOR_PASSWORD:-difyai123456}
|
OB_TENANT_PASSWORD: ${OCEANBASE_VECTOR_PASSWORD:-difyai123456}
|
||||||
OB_CLUSTER_NAME: ${OCEANBASE_CLUSTER_NAME:-difyai}
|
OB_CLUSTER_NAME: ${OCEANBASE_CLUSTER_NAME:-difyai}
|
||||||
OB_SERVER_IP: 127.0.0.1
|
MODE: MINI
|
||||||
MODE: mini
|
|
||||||
ports:
|
ports:
|
||||||
- "${OCEANBASE_VECTOR_PORT:-2881}:2881"
|
- "${OCEANBASE_VECTOR_PORT:-2881}:2881"
|
||||||
healthcheck:
|
|
||||||
test: [ 'CMD-SHELL', 'obclient -h127.0.0.1 -P2881 -uroot@test -p$${OB_TENANT_PASSWORD} -e "SELECT 1;"' ]
|
|
||||||
interval: 10s
|
|
||||||
retries: 30
|
|
||||||
start_period: 30s
|
|
||||||
timeout: 10s
|
|
||||||
|
|
||||||
# Oracle vector database
|
# Oracle vector database
|
||||||
oracle:
|
oracle:
|
||||||
@@ -617,18 +605,6 @@ services:
|
|||||||
ports:
|
ports:
|
||||||
- ${MYSCALE_PORT:-8123}:${MYSCALE_PORT:-8123}
|
- ${MYSCALE_PORT:-8123}:${MYSCALE_PORT:-8123}
|
||||||
|
|
||||||
# Matrixone vector store.
|
|
||||||
matrixone:
|
|
||||||
hostname: matrixone
|
|
||||||
image: matrixorigin/matrixone:2.1.1
|
|
||||||
profiles:
|
|
||||||
- matrixone
|
|
||||||
restart: always
|
|
||||||
volumes:
|
|
||||||
- ./volumes/matrixone/data:/mo-data
|
|
||||||
ports:
|
|
||||||
- ${MATRIXONE_PORT:-6001}:${MATRIXONE_PORT:-6001}
|
|
||||||
|
|
||||||
# https://www.elastic.co/guide/en/elasticsearch/reference/current/settings.html
|
# https://www.elastic.co/guide/en/elasticsearch/reference/current/settings.html
|
||||||
# https://www.elastic.co/guide/en/elasticsearch/reference/current/docker.html#docker-prod-prerequisites
|
# https://www.elastic.co/guide/en/elasticsearch/reference/current/docker.html#docker-prod-prerequisites
|
||||||
elasticsearch:
|
elasticsearch:
|
||||||
|
|||||||
@@ -71,7 +71,7 @@ services:
|
|||||||
|
|
||||||
# plugin daemon
|
# plugin daemon
|
||||||
plugin_daemon:
|
plugin_daemon:
|
||||||
image: langgenius/dify-plugin-daemon:0.1.3-local
|
image: langgenius/dify-plugin-daemon:0.0.10-local
|
||||||
restart: always
|
restart: always
|
||||||
env_file:
|
env_file:
|
||||||
- ./middleware.env
|
- ./middleware.env
|
||||||
@@ -104,7 +104,6 @@ services:
|
|||||||
PLUGIN_PACKAGE_CACHE_PATH: ${PLUGIN_PACKAGE_CACHE_PATH:-plugin_packages}
|
PLUGIN_PACKAGE_CACHE_PATH: ${PLUGIN_PACKAGE_CACHE_PATH:-plugin_packages}
|
||||||
PLUGIN_MEDIA_CACHE_PATH: ${PLUGIN_MEDIA_CACHE_PATH:-assets}
|
PLUGIN_MEDIA_CACHE_PATH: ${PLUGIN_MEDIA_CACHE_PATH:-assets}
|
||||||
PLUGIN_STORAGE_OSS_BUCKET: ${PLUGIN_STORAGE_OSS_BUCKET:-}
|
PLUGIN_STORAGE_OSS_BUCKET: ${PLUGIN_STORAGE_OSS_BUCKET:-}
|
||||||
S3_USE_AWS: ${PLUGIN_S3_USE_AWS:-false}
|
|
||||||
S3_USE_AWS_MANAGED_IAM: ${PLUGIN_S3_USE_AWS_MANAGED_IAM:-false}
|
S3_USE_AWS_MANAGED_IAM: ${PLUGIN_S3_USE_AWS_MANAGED_IAM:-false}
|
||||||
S3_ENDPOINT: ${PLUGIN_S3_ENDPOINT:-}
|
S3_ENDPOINT: ${PLUGIN_S3_ENDPOINT:-}
|
||||||
S3_USE_PATH_STYLE: ${PLUGIN_S3_USE_PATH_STYLE:-false}
|
S3_USE_PATH_STYLE: ${PLUGIN_S3_USE_PATH_STYLE:-false}
|
||||||
@@ -122,10 +121,6 @@ services:
|
|||||||
ALIYUN_OSS_ACCESS_KEY_SECRET: ${PLUGIN_ALIYUN_OSS_ACCESS_KEY_SECRET:-}
|
ALIYUN_OSS_ACCESS_KEY_SECRET: ${PLUGIN_ALIYUN_OSS_ACCESS_KEY_SECRET:-}
|
||||||
ALIYUN_OSS_AUTH_VERSION: ${PLUGIN_ALIYUN_OSS_AUTH_VERSION:-v4}
|
ALIYUN_OSS_AUTH_VERSION: ${PLUGIN_ALIYUN_OSS_AUTH_VERSION:-v4}
|
||||||
ALIYUN_OSS_PATH: ${PLUGIN_ALIYUN_OSS_PATH:-}
|
ALIYUN_OSS_PATH: ${PLUGIN_ALIYUN_OSS_PATH:-}
|
||||||
VOLCENGINE_TOS_ENDPOINT: ${PLUGIN_VOLCENGINE_TOS_ENDPOINT:-}
|
|
||||||
VOLCENGINE_TOS_ACCESS_KEY: ${PLUGIN_VOLCENGINE_TOS_ACCESS_KEY:-}
|
|
||||||
VOLCENGINE_TOS_SECRET_KEY: ${PLUGIN_VOLCENGINE_TOS_SECRET_KEY:-}
|
|
||||||
VOLCENGINE_TOS_REGION: ${PLUGIN_VOLCENGINE_TOS_REGION:-}
|
|
||||||
ports:
|
ports:
|
||||||
- "${EXPOSE_PLUGIN_DAEMON_PORT:-5002}:${PLUGIN_DAEMON_PORT:-5002}"
|
- "${EXPOSE_PLUGIN_DAEMON_PORT:-5002}:${PLUGIN_DAEMON_PORT:-5002}"
|
||||||
- "${EXPOSE_PLUGIN_DEBUGGING_PORT:-5003}:${PLUGIN_DEBUGGING_PORT:-5003}"
|
- "${EXPOSE_PLUGIN_DEBUGGING_PORT:-5003}:${PLUGIN_DEBUGGING_PORT:-5003}"
|
||||||
|
|||||||
@@ -79,7 +79,6 @@ x-shared-env: &shared-api-worker-env
|
|||||||
BROKER_USE_SSL: ${BROKER_USE_SSL:-false}
|
BROKER_USE_SSL: ${BROKER_USE_SSL:-false}
|
||||||
CELERY_USE_SENTINEL: ${CELERY_USE_SENTINEL:-false}
|
CELERY_USE_SENTINEL: ${CELERY_USE_SENTINEL:-false}
|
||||||
CELERY_SENTINEL_MASTER_NAME: ${CELERY_SENTINEL_MASTER_NAME:-}
|
CELERY_SENTINEL_MASTER_NAME: ${CELERY_SENTINEL_MASTER_NAME:-}
|
||||||
CELERY_SENTINEL_PASSWORD: ${CELERY_SENTINEL_PASSWORD:-}
|
|
||||||
CELERY_SENTINEL_SOCKET_TIMEOUT: ${CELERY_SENTINEL_SOCKET_TIMEOUT:-0.1}
|
CELERY_SENTINEL_SOCKET_TIMEOUT: ${CELERY_SENTINEL_SOCKET_TIMEOUT:-0.1}
|
||||||
WEB_API_CORS_ALLOW_ORIGINS: ${WEB_API_CORS_ALLOW_ORIGINS:-*}
|
WEB_API_CORS_ALLOW_ORIGINS: ${WEB_API_CORS_ALLOW_ORIGINS:-*}
|
||||||
CONSOLE_CORS_ALLOW_ORIGINS: ${CONSOLE_CORS_ALLOW_ORIGINS:-*}
|
CONSOLE_CORS_ALLOW_ORIGINS: ${CONSOLE_CORS_ALLOW_ORIGINS:-*}
|
||||||
@@ -139,7 +138,6 @@ x-shared-env: &shared-api-worker-env
|
|||||||
QDRANT_CLIENT_TIMEOUT: ${QDRANT_CLIENT_TIMEOUT:-20}
|
QDRANT_CLIENT_TIMEOUT: ${QDRANT_CLIENT_TIMEOUT:-20}
|
||||||
QDRANT_GRPC_ENABLED: ${QDRANT_GRPC_ENABLED:-false}
|
QDRANT_GRPC_ENABLED: ${QDRANT_GRPC_ENABLED:-false}
|
||||||
QDRANT_GRPC_PORT: ${QDRANT_GRPC_PORT:-6334}
|
QDRANT_GRPC_PORT: ${QDRANT_GRPC_PORT:-6334}
|
||||||
QDRANT_REPLICATION_FACTOR: ${QDRANT_REPLICATION_FACTOR:-1}
|
|
||||||
MILVUS_URI: ${MILVUS_URI:-http://host.docker.internal:19530}
|
MILVUS_URI: ${MILVUS_URI:-http://host.docker.internal:19530}
|
||||||
MILVUS_DATABASE: ${MILVUS_DATABASE:-}
|
MILVUS_DATABASE: ${MILVUS_DATABASE:-}
|
||||||
MILVUS_TOKEN: ${MILVUS_TOKEN:-}
|
MILVUS_TOKEN: ${MILVUS_TOKEN:-}
|
||||||
@@ -196,11 +194,6 @@ x-shared-env: &shared-api-worker-env
|
|||||||
TIDB_VECTOR_USER: ${TIDB_VECTOR_USER:-}
|
TIDB_VECTOR_USER: ${TIDB_VECTOR_USER:-}
|
||||||
TIDB_VECTOR_PASSWORD: ${TIDB_VECTOR_PASSWORD:-}
|
TIDB_VECTOR_PASSWORD: ${TIDB_VECTOR_PASSWORD:-}
|
||||||
TIDB_VECTOR_DATABASE: ${TIDB_VECTOR_DATABASE:-dify}
|
TIDB_VECTOR_DATABASE: ${TIDB_VECTOR_DATABASE:-dify}
|
||||||
MATRIXONE_HOST: ${MATRIXONE_HOST:-matrixone}
|
|
||||||
MATRIXONE_PORT: ${MATRIXONE_PORT:-6001}
|
|
||||||
MATRIXONE_USER: ${MATRIXONE_USER:-dump}
|
|
||||||
MATRIXONE_PASSWORD: ${MATRIXONE_PASSWORD:-111}
|
|
||||||
MATRIXONE_DATABASE: ${MATRIXONE_DATABASE:-dify}
|
|
||||||
TIDB_ON_QDRANT_URL: ${TIDB_ON_QDRANT_URL:-http://127.0.0.1}
|
TIDB_ON_QDRANT_URL: ${TIDB_ON_QDRANT_URL:-http://127.0.0.1}
|
||||||
TIDB_ON_QDRANT_API_KEY: ${TIDB_ON_QDRANT_API_KEY:-dify}
|
TIDB_ON_QDRANT_API_KEY: ${TIDB_ON_QDRANT_API_KEY:-dify}
|
||||||
TIDB_ON_QDRANT_CLIENT_TIMEOUT: ${TIDB_ON_QDRANT_CLIENT_TIMEOUT:-20}
|
TIDB_ON_QDRANT_CLIENT_TIMEOUT: ${TIDB_ON_QDRANT_CLIENT_TIMEOUT:-20}
|
||||||
@@ -234,7 +227,6 @@ x-shared-env: &shared-api-worker-env
|
|||||||
OPENSEARCH_HOST: ${OPENSEARCH_HOST:-opensearch}
|
OPENSEARCH_HOST: ${OPENSEARCH_HOST:-opensearch}
|
||||||
OPENSEARCH_PORT: ${OPENSEARCH_PORT:-9200}
|
OPENSEARCH_PORT: ${OPENSEARCH_PORT:-9200}
|
||||||
OPENSEARCH_SECURE: ${OPENSEARCH_SECURE:-true}
|
OPENSEARCH_SECURE: ${OPENSEARCH_SECURE:-true}
|
||||||
OPENSEARCH_VERIFY_CERTS: ${OPENSEARCH_VERIFY_CERTS:-true}
|
|
||||||
OPENSEARCH_AUTH_METHOD: ${OPENSEARCH_AUTH_METHOD:-basic}
|
OPENSEARCH_AUTH_METHOD: ${OPENSEARCH_AUTH_METHOD:-basic}
|
||||||
OPENSEARCH_USER: ${OPENSEARCH_USER:-admin}
|
OPENSEARCH_USER: ${OPENSEARCH_USER:-admin}
|
||||||
OPENSEARCH_PASSWORD: ${OPENSEARCH_PASSWORD:-admin}
|
OPENSEARCH_PASSWORD: ${OPENSEARCH_PASSWORD:-admin}
|
||||||
@@ -328,7 +320,6 @@ x-shared-env: &shared-api-worker-env
|
|||||||
SMTP_PASSWORD: ${SMTP_PASSWORD:-}
|
SMTP_PASSWORD: ${SMTP_PASSWORD:-}
|
||||||
SMTP_USE_TLS: ${SMTP_USE_TLS:-true}
|
SMTP_USE_TLS: ${SMTP_USE_TLS:-true}
|
||||||
SMTP_OPPORTUNISTIC_TLS: ${SMTP_OPPORTUNISTIC_TLS:-false}
|
SMTP_OPPORTUNISTIC_TLS: ${SMTP_OPPORTUNISTIC_TLS:-false}
|
||||||
SENDGRID_API_KEY: ${SENDGRID_API_KEY:-}
|
|
||||||
INDEXING_MAX_SEGMENTATION_TOKENS_LENGTH: ${INDEXING_MAX_SEGMENTATION_TOKENS_LENGTH:-4000}
|
INDEXING_MAX_SEGMENTATION_TOKENS_LENGTH: ${INDEXING_MAX_SEGMENTATION_TOKENS_LENGTH:-4000}
|
||||||
INVITE_EXPIRY_HOURS: ${INVITE_EXPIRY_HOURS:-72}
|
INVITE_EXPIRY_HOURS: ${INVITE_EXPIRY_HOURS:-72}
|
||||||
RESET_PASSWORD_TOKEN_EXPIRY_MINUTES: ${RESET_PASSWORD_TOKEN_EXPIRY_MINUTES:-5}
|
RESET_PASSWORD_TOKEN_EXPIRY_MINUTES: ${RESET_PASSWORD_TOKEN_EXPIRY_MINUTES:-5}
|
||||||
@@ -356,15 +347,14 @@ x-shared-env: &shared-api-worker-env
|
|||||||
HTTP_REQUEST_NODE_MAX_BINARY_SIZE: ${HTTP_REQUEST_NODE_MAX_BINARY_SIZE:-10485760}
|
HTTP_REQUEST_NODE_MAX_BINARY_SIZE: ${HTTP_REQUEST_NODE_MAX_BINARY_SIZE:-10485760}
|
||||||
HTTP_REQUEST_NODE_MAX_TEXT_SIZE: ${HTTP_REQUEST_NODE_MAX_TEXT_SIZE:-1048576}
|
HTTP_REQUEST_NODE_MAX_TEXT_SIZE: ${HTTP_REQUEST_NODE_MAX_TEXT_SIZE:-1048576}
|
||||||
HTTP_REQUEST_NODE_SSL_VERIFY: ${HTTP_REQUEST_NODE_SSL_VERIFY:-True}
|
HTTP_REQUEST_NODE_SSL_VERIFY: ${HTTP_REQUEST_NODE_SSL_VERIFY:-True}
|
||||||
RESPECT_XFORWARD_HEADERS_ENABLED: ${RESPECT_XFORWARD_HEADERS_ENABLED:-false}
|
|
||||||
SSRF_PROXY_HTTP_URL: ${SSRF_PROXY_HTTP_URL:-http://ssrf_proxy:3128}
|
SSRF_PROXY_HTTP_URL: ${SSRF_PROXY_HTTP_URL:-http://ssrf_proxy:3128}
|
||||||
SSRF_PROXY_HTTPS_URL: ${SSRF_PROXY_HTTPS_URL:-http://ssrf_proxy:3128}
|
SSRF_PROXY_HTTPS_URL: ${SSRF_PROXY_HTTPS_URL:-http://ssrf_proxy:3128}
|
||||||
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:-5}
|
||||||
TEXT_GENERATION_TIMEOUT_MS: ${TEXT_GENERATION_TIMEOUT_MS:-60000}
|
TEXT_GENERATION_TIMEOUT_MS: ${TEXT_GENERATION_TIMEOUT_MS:-60000}
|
||||||
POSTGRES_USER: ${POSTGRES_USER:-${DB_USERNAME}}
|
PGUSER: ${PGUSER:-${DB_USERNAME}}
|
||||||
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-${DB_PASSWORD}}
|
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-${DB_PASSWORD}}
|
||||||
POSTGRES_DB: ${POSTGRES_DB:-${DB_DATABASE}}
|
POSTGRES_DB: ${POSTGRES_DB:-${DB_DATABASE}}
|
||||||
PGDATA: ${PGDATA:-/var/lib/postgresql/data/pgdata}
|
PGDATA: ${PGDATA:-/var/lib/postgresql/data/pgdata}
|
||||||
@@ -475,7 +465,6 @@ x-shared-env: &shared-api-worker-env
|
|||||||
PLUGIN_PACKAGE_CACHE_PATH: ${PLUGIN_PACKAGE_CACHE_PATH:-plugin_packages}
|
PLUGIN_PACKAGE_CACHE_PATH: ${PLUGIN_PACKAGE_CACHE_PATH:-plugin_packages}
|
||||||
PLUGIN_MEDIA_CACHE_PATH: ${PLUGIN_MEDIA_CACHE_PATH:-assets}
|
PLUGIN_MEDIA_CACHE_PATH: ${PLUGIN_MEDIA_CACHE_PATH:-assets}
|
||||||
PLUGIN_STORAGE_OSS_BUCKET: ${PLUGIN_STORAGE_OSS_BUCKET:-}
|
PLUGIN_STORAGE_OSS_BUCKET: ${PLUGIN_STORAGE_OSS_BUCKET:-}
|
||||||
PLUGIN_S3_USE_AWS: ${PLUGIN_S3_USE_AWS:-false}
|
|
||||||
PLUGIN_S3_USE_AWS_MANAGED_IAM: ${PLUGIN_S3_USE_AWS_MANAGED_IAM:-false}
|
PLUGIN_S3_USE_AWS_MANAGED_IAM: ${PLUGIN_S3_USE_AWS_MANAGED_IAM:-false}
|
||||||
PLUGIN_S3_ENDPOINT: ${PLUGIN_S3_ENDPOINT:-}
|
PLUGIN_S3_ENDPOINT: ${PLUGIN_S3_ENDPOINT:-}
|
||||||
PLUGIN_S3_USE_PATH_STYLE: ${PLUGIN_S3_USE_PATH_STYLE:-false}
|
PLUGIN_S3_USE_PATH_STYLE: ${PLUGIN_S3_USE_PATH_STYLE:-false}
|
||||||
@@ -493,10 +482,6 @@ x-shared-env: &shared-api-worker-env
|
|||||||
PLUGIN_ALIYUN_OSS_ACCESS_KEY_SECRET: ${PLUGIN_ALIYUN_OSS_ACCESS_KEY_SECRET:-}
|
PLUGIN_ALIYUN_OSS_ACCESS_KEY_SECRET: ${PLUGIN_ALIYUN_OSS_ACCESS_KEY_SECRET:-}
|
||||||
PLUGIN_ALIYUN_OSS_AUTH_VERSION: ${PLUGIN_ALIYUN_OSS_AUTH_VERSION:-v4}
|
PLUGIN_ALIYUN_OSS_AUTH_VERSION: ${PLUGIN_ALIYUN_OSS_AUTH_VERSION:-v4}
|
||||||
PLUGIN_ALIYUN_OSS_PATH: ${PLUGIN_ALIYUN_OSS_PATH:-}
|
PLUGIN_ALIYUN_OSS_PATH: ${PLUGIN_ALIYUN_OSS_PATH:-}
|
||||||
PLUGIN_VOLCENGINE_TOS_ENDPOINT: ${PLUGIN_VOLCENGINE_TOS_ENDPOINT:-}
|
|
||||||
PLUGIN_VOLCENGINE_TOS_ACCESS_KEY: ${PLUGIN_VOLCENGINE_TOS_ACCESS_KEY:-}
|
|
||||||
PLUGIN_VOLCENGINE_TOS_SECRET_KEY: ${PLUGIN_VOLCENGINE_TOS_SECRET_KEY:-}
|
|
||||||
PLUGIN_VOLCENGINE_TOS_REGION: ${PLUGIN_VOLCENGINE_TOS_REGION:-}
|
|
||||||
ENABLE_OTEL: ${ENABLE_OTEL:-false}
|
ENABLE_OTEL: ${ENABLE_OTEL:-false}
|
||||||
OTLP_BASE_ENDPOINT: ${OTLP_BASE_ENDPOINT:-http://localhost:4318}
|
OTLP_BASE_ENDPOINT: ${OTLP_BASE_ENDPOINT:-http://localhost:4318}
|
||||||
OTLP_API_KEY: ${OTLP_API_KEY:-}
|
OTLP_API_KEY: ${OTLP_API_KEY:-}
|
||||||
@@ -510,14 +495,11 @@ x-shared-env: &shared-api-worker-env
|
|||||||
OTEL_BATCH_EXPORT_TIMEOUT: ${OTEL_BATCH_EXPORT_TIMEOUT:-10000}
|
OTEL_BATCH_EXPORT_TIMEOUT: ${OTEL_BATCH_EXPORT_TIMEOUT:-10000}
|
||||||
OTEL_METRIC_EXPORT_TIMEOUT: ${OTEL_METRIC_EXPORT_TIMEOUT:-30000}
|
OTEL_METRIC_EXPORT_TIMEOUT: ${OTEL_METRIC_EXPORT_TIMEOUT:-30000}
|
||||||
ALLOW_EMBED: ${ALLOW_EMBED:-false}
|
ALLOW_EMBED: ${ALLOW_EMBED:-false}
|
||||||
QUEUE_MONITOR_THRESHOLD: ${QUEUE_MONITOR_THRESHOLD:-200}
|
|
||||||
QUEUE_MONITOR_ALERT_EMAILS: ${QUEUE_MONITOR_ALERT_EMAILS:-}
|
|
||||||
QUEUE_MONITOR_INTERVAL: ${QUEUE_MONITOR_INTERVAL:-30}
|
|
||||||
|
|
||||||
services:
|
services:
|
||||||
# API service
|
# API service
|
||||||
api:
|
api:
|
||||||
image: langgenius/dify-api:1.5.1
|
image: langgenius/dify-api:1.4.0
|
||||||
restart: always
|
restart: always
|
||||||
environment:
|
environment:
|
||||||
# Use the shared environment variables.
|
# Use the shared environment variables.
|
||||||
@@ -546,7 +528,7 @@ services:
|
|||||||
# 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.5.1
|
image: langgenius/dify-api:1.4.0
|
||||||
restart: always
|
restart: always
|
||||||
environment:
|
environment:
|
||||||
# Use the shared environment variables.
|
# Use the shared environment variables.
|
||||||
@@ -572,7 +554,7 @@ services:
|
|||||||
|
|
||||||
# Frontend web application.
|
# Frontend web application.
|
||||||
web:
|
web:
|
||||||
image: langgenius/dify-web:1.5.1
|
image: langgenius/dify-web:1.4.0
|
||||||
restart: always
|
restart: always
|
||||||
environment:
|
environment:
|
||||||
CONSOLE_API_URL: ${CONSOLE_API_URL:-}
|
CONSOLE_API_URL: ${CONSOLE_API_URL:-}
|
||||||
@@ -590,7 +572,7 @@ services:
|
|||||||
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:-5}
|
||||||
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}
|
||||||
@@ -599,7 +581,7 @@ services:
|
|||||||
image: postgres:15-alpine
|
image: postgres:15-alpine
|
||||||
restart: always
|
restart: always
|
||||||
environment:
|
environment:
|
||||||
POSTGRES_USER: ${POSTGRES_USER:-postgres}
|
PGUSER: ${PGUSER:-postgres}
|
||||||
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-difyai123456}
|
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-difyai123456}
|
||||||
POSTGRES_DB: ${POSTGRES_DB:-dify}
|
POSTGRES_DB: ${POSTGRES_DB:-dify}
|
||||||
PGDATA: ${PGDATA:-/var/lib/postgresql/data/pgdata}
|
PGDATA: ${PGDATA:-/var/lib/postgresql/data/pgdata}
|
||||||
@@ -667,7 +649,7 @@ services:
|
|||||||
|
|
||||||
# plugin daemon
|
# plugin daemon
|
||||||
plugin_daemon:
|
plugin_daemon:
|
||||||
image: langgenius/dify-plugin-daemon:0.1.3-local
|
image: langgenius/dify-plugin-daemon:0.0.10-local
|
||||||
restart: always
|
restart: always
|
||||||
environment:
|
environment:
|
||||||
# Use the shared environment variables.
|
# Use the shared environment variables.
|
||||||
@@ -693,7 +675,6 @@ services:
|
|||||||
PLUGIN_MEDIA_CACHE_PATH: ${PLUGIN_MEDIA_CACHE_PATH:-assets}
|
PLUGIN_MEDIA_CACHE_PATH: ${PLUGIN_MEDIA_CACHE_PATH:-assets}
|
||||||
PLUGIN_STORAGE_OSS_BUCKET: ${PLUGIN_STORAGE_OSS_BUCKET:-}
|
PLUGIN_STORAGE_OSS_BUCKET: ${PLUGIN_STORAGE_OSS_BUCKET:-}
|
||||||
S3_USE_AWS_MANAGED_IAM: ${PLUGIN_S3_USE_AWS_MANAGED_IAM:-false}
|
S3_USE_AWS_MANAGED_IAM: ${PLUGIN_S3_USE_AWS_MANAGED_IAM:-false}
|
||||||
S3_USE_AWS: ${PLUGIN_S3_USE_AWS:-false}
|
|
||||||
S3_ENDPOINT: ${PLUGIN_S3_ENDPOINT:-}
|
S3_ENDPOINT: ${PLUGIN_S3_ENDPOINT:-}
|
||||||
S3_USE_PATH_STYLE: ${PLUGIN_S3_USE_PATH_STYLE:-false}
|
S3_USE_PATH_STYLE: ${PLUGIN_S3_USE_PATH_STYLE:-false}
|
||||||
AWS_ACCESS_KEY: ${PLUGIN_AWS_ACCESS_KEY:-}
|
AWS_ACCESS_KEY: ${PLUGIN_AWS_ACCESS_KEY:-}
|
||||||
@@ -710,10 +691,6 @@ services:
|
|||||||
ALIYUN_OSS_ACCESS_KEY_SECRET: ${PLUGIN_ALIYUN_OSS_ACCESS_KEY_SECRET:-}
|
ALIYUN_OSS_ACCESS_KEY_SECRET: ${PLUGIN_ALIYUN_OSS_ACCESS_KEY_SECRET:-}
|
||||||
ALIYUN_OSS_AUTH_VERSION: ${PLUGIN_ALIYUN_OSS_AUTH_VERSION:-v4}
|
ALIYUN_OSS_AUTH_VERSION: ${PLUGIN_ALIYUN_OSS_AUTH_VERSION:-v4}
|
||||||
ALIYUN_OSS_PATH: ${PLUGIN_ALIYUN_OSS_PATH:-}
|
ALIYUN_OSS_PATH: ${PLUGIN_ALIYUN_OSS_PATH:-}
|
||||||
VOLCENGINE_TOS_ENDPOINT: ${PLUGIN_VOLCENGINE_TOS_ENDPOINT:-}
|
|
||||||
VOLCENGINE_TOS_ACCESS_KEY: ${PLUGIN_VOLCENGINE_TOS_ACCESS_KEY:-}
|
|
||||||
VOLCENGINE_TOS_SECRET_KEY: ${PLUGIN_VOLCENGINE_TOS_SECRET_KEY:-}
|
|
||||||
VOLCENGINE_TOS_REGION: ${PLUGIN_VOLCENGINE_TOS_REGION:-}
|
|
||||||
volumes:
|
volumes:
|
||||||
- ./volumes/plugin_daemon:/app/storage
|
- ./volumes/plugin_daemon:/app/storage
|
||||||
depends_on:
|
depends_on:
|
||||||
@@ -972,7 +949,7 @@ services:
|
|||||||
|
|
||||||
# OceanBase vector database
|
# OceanBase vector database
|
||||||
oceanbase:
|
oceanbase:
|
||||||
image: oceanbase/oceanbase-ce:4.3.5-lts
|
image: oceanbase/oceanbase-ce:4.3.5.1-101000042025031818
|
||||||
profiles:
|
profiles:
|
||||||
- oceanbase
|
- oceanbase
|
||||||
restart: always
|
restart: always
|
||||||
@@ -985,19 +962,7 @@ services:
|
|||||||
OB_SYS_PASSWORD: ${OCEANBASE_VECTOR_PASSWORD:-difyai123456}
|
OB_SYS_PASSWORD: ${OCEANBASE_VECTOR_PASSWORD:-difyai123456}
|
||||||
OB_TENANT_PASSWORD: ${OCEANBASE_VECTOR_PASSWORD:-difyai123456}
|
OB_TENANT_PASSWORD: ${OCEANBASE_VECTOR_PASSWORD:-difyai123456}
|
||||||
OB_CLUSTER_NAME: ${OCEANBASE_CLUSTER_NAME:-difyai}
|
OB_CLUSTER_NAME: ${OCEANBASE_CLUSTER_NAME:-difyai}
|
||||||
OB_SERVER_IP: 127.0.0.1
|
MODE: MINI
|
||||||
MODE: mini
|
|
||||||
healthcheck:
|
|
||||||
test:
|
|
||||||
[
|
|
||||||
'CMD-SHELL',
|
|
||||||
'obclient -h127.0.0.1 -P2881 -uroot@test -p$${OB_TENANT_PASSWORD} -e
|
|
||||||
"SELECT 1;"'
|
|
||||||
]
|
|
||||||
interval: 10s
|
|
||||||
retries: 30
|
|
||||||
start_period: 30s
|
|
||||||
timeout: 10s
|
|
||||||
|
|
||||||
# Oracle vector database
|
# Oracle vector database
|
||||||
oracle:
|
oracle:
|
||||||
@@ -1145,16 +1110,6 @@ services:
|
|||||||
- ./volumes/myscale/log:/var/log/clickhouse-server
|
- ./volumes/myscale/log:/var/log/clickhouse-server
|
||||||
- ./volumes/myscale/config/users.d/custom_users_config.xml:/etc/clickhouse-server/users.d/custom_users_config.xml
|
- ./volumes/myscale/config/users.d/custom_users_config.xml:/etc/clickhouse-server/users.d/custom_users_config.xml
|
||||||
|
|
||||||
# Matrixone vector store.
|
|
||||||
matrixone:
|
|
||||||
hostname: matrixone
|
|
||||||
image: matrixorigin/matrixone:2.1.1
|
|
||||||
profiles:
|
|
||||||
- matrixone
|
|
||||||
restart: always
|
|
||||||
volumes:
|
|
||||||
- ./volumes/matrixone/data:/mo-data
|
|
||||||
|
|
||||||
# https://www.elastic.co/guide/en/elasticsearch/reference/current/settings.html
|
# https://www.elastic.co/guide/en/elasticsearch/reference/current/settings.html
|
||||||
# https://www.elastic.co/guide/en/elasticsearch/reference/current/docker.html#docker-prod-prerequisites
|
# https://www.elastic.co/guide/en/elasticsearch/reference/current/docker.html#docker-prod-prerequisites
|
||||||
elasticsearch:
|
elasticsearch:
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
# ------------------------------
|
# ------------------------------
|
||||||
# Environment Variables for db Service
|
# Environment Variables for db Service
|
||||||
# ------------------------------
|
# ------------------------------
|
||||||
POSTGRES_USER=postgres
|
PGUSER=postgres
|
||||||
# The password for the default postgres user.
|
# The password for the default postgres user.
|
||||||
POSTGRES_PASSWORD=difyai123456
|
POSTGRES_PASSWORD=difyai123456
|
||||||
# The name of the default postgres database.
|
# The name of the default postgres database.
|
||||||
@@ -109,7 +109,7 @@ EXPOSE_PLUGIN_DEBUGGING_HOST=localhost
|
|||||||
EXPOSE_PLUGIN_DEBUGGING_PORT=5003
|
EXPOSE_PLUGIN_DEBUGGING_PORT=5003
|
||||||
|
|
||||||
PLUGIN_DIFY_INNER_API_KEY=QaHbTe77CtuXmsfyhR7+vRjI/+XbV1AaFy691iy+kGDv2Jvy0/eAh8Y1
|
PLUGIN_DIFY_INNER_API_KEY=QaHbTe77CtuXmsfyhR7+vRjI/+XbV1AaFy691iy+kGDv2Jvy0/eAh8Y1
|
||||||
PLUGIN_DIFY_INNER_API_URL=http://host.docker.internal:5001
|
PLUGIN_DIFY_INNER_API_URL=http://api:5001
|
||||||
|
|
||||||
MARKETPLACE_ENABLED=true
|
MARKETPLACE_ENABLED=true
|
||||||
MARKETPLACE_API_URL=https://marketplace.dify.ai
|
MARKETPLACE_API_URL=https://marketplace.dify.ai
|
||||||
@@ -133,7 +133,6 @@ PLUGIN_MEDIA_CACHE_PATH=assets
|
|||||||
PLUGIN_STORAGE_OSS_BUCKET=
|
PLUGIN_STORAGE_OSS_BUCKET=
|
||||||
# Plugin oss s3 credentials
|
# Plugin oss s3 credentials
|
||||||
PLUGIN_S3_USE_AWS_MANAGED_IAM=false
|
PLUGIN_S3_USE_AWS_MANAGED_IAM=false
|
||||||
PLUGIN_S3_USE_AWS=false
|
|
||||||
PLUGIN_S3_ENDPOINT=
|
PLUGIN_S3_ENDPOINT=
|
||||||
PLUGIN_S3_USE_PATH_STYLE=false
|
PLUGIN_S3_USE_PATH_STYLE=false
|
||||||
PLUGIN_AWS_ACCESS_KEY=
|
PLUGIN_AWS_ACCESS_KEY=
|
||||||
@@ -153,8 +152,3 @@ PLUGIN_ALIYUN_OSS_ACCESS_KEY_ID=
|
|||||||
PLUGIN_ALIYUN_OSS_ACCESS_KEY_SECRET=
|
PLUGIN_ALIYUN_OSS_ACCESS_KEY_SECRET=
|
||||||
PLUGIN_ALIYUN_OSS_AUTH_VERSION=v4
|
PLUGIN_ALIYUN_OSS_AUTH_VERSION=v4
|
||||||
PLUGIN_ALIYUN_OSS_PATH=
|
PLUGIN_ALIYUN_OSS_PATH=
|
||||||
# Plugin oss volcengine tos
|
|
||||||
PLUGIN_VOLCENGINE_TOS_ENDPOINT=
|
|
||||||
PLUGIN_VOLCENGINE_TOS_ACCESS_KEY=
|
|
||||||
PLUGIN_VOLCENGINE_TOS_SECRET_KEY=
|
|
||||||
PLUGIN_VOLCENGINE_TOS_REGION=
|
|
||||||
|
|||||||
+1
-26
@@ -486,7 +486,7 @@ When you want to restore the previously backed-up data, follow the instructions
|
|||||||
1. Download the restore script using the command below. We suggest downloading it in the same folder as `setup.sh`.
|
1. Download the restore script using the command below. We suggest downloading it in the same folder as `setup.sh`.
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -fsSL -o restore.sh https://github.com/makeplane/plane/releases/latest/download/restore.sh
|
curl -fsSL -o restore.sh https://raw.githubusercontent.com/makeplane/plane/master/deploy/selfhost/restore.sh
|
||||||
chmod +x restore.sh
|
chmod +x restore.sh
|
||||||
```
|
```
|
||||||
|
|
||||||
@@ -529,31 +529,6 @@ When you want to restore the previously backed-up data, follow the instructions
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
### Restore for Commercial Air-Gapped (Docker Compose)
|
|
||||||
|
|
||||||
When you want to restore the previously backed-up data on Plane Commercial Air-Gapped version, follow the instructions below.
|
|
||||||
|
|
||||||
1. Download the restore script using the command below
|
|
||||||
|
|
||||||
```bash
|
|
||||||
curl -fsSL -o restore-airgapped.sh https://github.com/makeplane/plane/releases/latest/download/restore-airgapped.sh
|
|
||||||
chmod +x restore-airgapped.sh
|
|
||||||
```
|
|
||||||
|
|
||||||
1. Copy the backup folder and the `restore-airgapped.sh` to `Commercial Airgapped Edition` server
|
|
||||||
|
|
||||||
1. Make sure that Plane Commercial (Airgapped) is extracted and ready to get started. In case it is running, you would need to stop that.
|
|
||||||
|
|
||||||
1. Execute the command below to restore your data.
|
|
||||||
|
|
||||||
```bash
|
|
||||||
./restore-airgapped.sh <path to backup folder containing *.tar.gz files>
|
|
||||||
```
|
|
||||||
|
|
||||||
1. After restoration, you are ready to start Plane Commercial (Airgapped) will all your previously saved data.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary><h2>Upgrading from v0.13.2 to v0.14.x</h2></summary>
|
<summary><h2>Upgrading from v0.13.2 to v0.14.x</h2></summary>
|
||||||
|
|
||||||
|
|||||||
@@ -1,144 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
+set -euo pipefail
|
|
||||||
|
|
||||||
function print_header() {
|
|
||||||
clear
|
|
||||||
|
|
||||||
cat <<"EOF"
|
|
||||||
--------------------------------------------
|
|
||||||
____ _ /////////
|
|
||||||
| _ \| | __ _ _ __ ___ /////////
|
|
||||||
| |_) | |/ _` | '_ \ / _ \ ///// /////
|
|
||||||
| __/| | (_| | | | | __/ ///// /////
|
|
||||||
|_| |_|\__,_|_| |_|\___| ////
|
|
||||||
////
|
|
||||||
--------------------------------------------
|
|
||||||
Project management tool from the future
|
|
||||||
--------------------------------------------
|
|
||||||
EOF
|
|
||||||
}
|
|
||||||
|
|
||||||
function restoreData() {
|
|
||||||
|
|
||||||
echo ""
|
|
||||||
echo "****************************************************"
|
|
||||||
echo "We are about to restore your data from the backup files."
|
|
||||||
echo "****************************************************"
|
|
||||||
echo ""
|
|
||||||
|
|
||||||
# set the backup folder path
|
|
||||||
BACKUP_FOLDER=${1}
|
|
||||||
|
|
||||||
if [ -z "$BACKUP_FOLDER" ]; then
|
|
||||||
BACKUP_FOLDER="$PWD/backup"
|
|
||||||
read -p "Enter the backup folder path [$BACKUP_FOLDER]: " BACKUP_FOLDER
|
|
||||||
if [ -z "$BACKUP_FOLDER" ]; then
|
|
||||||
BACKUP_FOLDER="$PWD/backup"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
# check if the backup folder exists
|
|
||||||
if [ ! -d "$BACKUP_FOLDER" ]; then
|
|
||||||
echo "Error: Backup folder not found at $BACKUP_FOLDER"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# check if there are any .tar.gz files in the backup folder
|
|
||||||
if ! ls "$BACKUP_FOLDER"/*.tar.gz 1> /dev/null 2>&1; then
|
|
||||||
echo "Error: Backup folder does not contain .tar.gz files"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo ""
|
|
||||||
echo "Using backup folder: $BACKUP_FOLDER"
|
|
||||||
echo ""
|
|
||||||
|
|
||||||
# ask for current install path
|
|
||||||
AIRGAPPED_INSTALL_PATH="$HOME/planeairgapped"
|
|
||||||
read -p "Enter the airgapped instance install path [$AIRGAPPED_INSTALL_PATH]: " AIRGAPPED_INSTALL_PATH
|
|
||||||
if [ -z "$AIRGAPPED_INSTALL_PATH" ]; then
|
|
||||||
AIRGAPPED_INSTALL_PATH="$HOME/planeairgapped"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# check if the airgapped instance install path exists
|
|
||||||
if [ ! -d "$AIRGAPPED_INSTALL_PATH" ]; then
|
|
||||||
echo "Error: Airgapped instance install path not found at $AIRGAPPED_INSTALL_PATH"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo ""
|
|
||||||
echo "Using airgapped instance install path: $AIRGAPPED_INSTALL_PATH"
|
|
||||||
echo ""
|
|
||||||
|
|
||||||
# check if the docker-compose.yaml exists
|
|
||||||
if [ ! -f "$AIRGAPPED_INSTALL_PATH/docker-compose.yml" ]; then
|
|
||||||
echo "Error: docker-compose.yml not found at $AIRGAPPED_INSTALL_PATH/docker-compose.yml"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
local dockerServiceStatus
|
|
||||||
if command -v jq &> /dev/null; then
|
|
||||||
dockerServiceStatus=$($COMPOSE_CMD ls --filter name=plane-airgapped --format=json | jq -r .[0].Status)
|
|
||||||
else
|
|
||||||
dockerServiceStatus=$($COMPOSE_CMD ls --filter name=plane-airgapped | grep -o "running" | head -n 1)
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ $dockerServiceStatus == "running" ]]; then
|
|
||||||
echo "Plane Airgapped is running. Please STOP the Plane Airgapped before restoring data."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
CURRENT_USER_ID=$(id -u)
|
|
||||||
CURRENT_GROUP_ID=$(id -g)
|
|
||||||
|
|
||||||
# if the data folder not exists, create it
|
|
||||||
if [ ! -d "$AIRGAPPED_INSTALL_PATH/data" ]; then
|
|
||||||
mkdir -p "$AIRGAPPED_INSTALL_PATH/data"
|
|
||||||
chown -R $CURRENT_USER_ID:$CURRENT_GROUP_ID "$AIRGAPPED_INSTALL_PATH/data"
|
|
||||||
fi
|
|
||||||
|
|
||||||
for BACKUP_FILE in "$BACKUP_FOLDER/*.tar.gz"; do
|
|
||||||
if [ -e "$BACKUP_FILE" ]; then
|
|
||||||
|
|
||||||
# get the basefilename without the extension
|
|
||||||
BASE_FILE_NAME=$(basename "$BACKUP_FILE" ".tar.gz")
|
|
||||||
|
|
||||||
# extract the restoreFile to the airgapped instance install path
|
|
||||||
echo "Restoring $BASE_FILE_NAME"
|
|
||||||
rm -rf "$AIRGAPPED_INSTALL_PATH/data/$BASE_FILE_NAME" || true
|
|
||||||
|
|
||||||
tar -xvzf "$BACKUP_FILE" -C "$AIRGAPPED_INSTALL_PATH/data/"
|
|
||||||
if [ $? -ne 0 ]; then
|
|
||||||
echo "Error: Failed to extract $BACKUP_FILE"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
chown -R $CURRENT_USER_ID:$CURRENT_GROUP_ID "$AIRGAPPED_INSTALL_PATH/data/$BASE_FILE_NAME"
|
|
||||||
if [ $? -ne 0 ]; then
|
|
||||||
echo "Error: Failed to change ownership of $AIRGAPPED_INSTALL_PATH/data/$BASE_FILE_NAME"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
echo "No .tar.gz files found in the current directory."
|
|
||||||
echo ""
|
|
||||||
echo "Please provide the path to the backup file."
|
|
||||||
echo ""
|
|
||||||
echo "Usage: $0 /path/to/backup"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
echo ""
|
|
||||||
echo "Restore completed successfully."
|
|
||||||
echo ""
|
|
||||||
}
|
|
||||||
|
|
||||||
# if docker-compose is installed
|
|
||||||
if command -v docker-compose &> /dev/null
|
|
||||||
then
|
|
||||||
COMPOSE_CMD="docker-compose"
|
|
||||||
else
|
|
||||||
COMPOSE_CMD="docker compose"
|
|
||||||
fi
|
|
||||||
|
|
||||||
print_header
|
|
||||||
restoreData "$@"
|
|
||||||
@@ -26,17 +26,10 @@ POSTGRES_PORT=5432
|
|||||||
############
|
############
|
||||||
# Supavisor -- Database pooler
|
# Supavisor -- Database pooler
|
||||||
############
|
############
|
||||||
# Port Supavisor listens on for transaction pooling connections
|
|
||||||
POOLER_PROXY_PORT_TRANSACTION=6543
|
POOLER_PROXY_PORT_TRANSACTION=6543
|
||||||
# Maximum number of PostgreSQL connections Supavisor opens per pool
|
|
||||||
POOLER_DEFAULT_POOL_SIZE=20
|
POOLER_DEFAULT_POOL_SIZE=20
|
||||||
# Maximum number of client connections Supavisor accepts per pool
|
|
||||||
POOLER_MAX_CLIENT_CONN=100
|
POOLER_MAX_CLIENT_CONN=100
|
||||||
# Unique tenant identifier
|
|
||||||
POOLER_TENANT_ID=your-tenant-id
|
POOLER_TENANT_ID=your-tenant-id
|
||||||
# Pool size for internal metadata storage used by Supavisor
|
|
||||||
# This is separate from client connections and used only by Supavisor itself
|
|
||||||
POOLER_DB_POOL_SIZE=5
|
|
||||||
|
|
||||||
|
|
||||||
############
|
############
|
||||||
@@ -113,14 +106,14 @@ FUNCTIONS_VERIFY_JWT=false
|
|||||||
|
|
||||||
|
|
||||||
############
|
############
|
||||||
# Logs - Configuration for Analytics
|
# Logs - Configuration for Logflare
|
||||||
# Please refer to https://supabase.com/docs/reference/self-hosting-analytics/introduction
|
# Please refer to https://supabase.com/docs/reference/self-hosting-analytics/introduction
|
||||||
############
|
############
|
||||||
|
|
||||||
|
LOGFLARE_LOGGER_BACKEND_API_KEY=your-super-secret-and-long-logflare-key
|
||||||
|
|
||||||
# Change vector.toml sinks to reflect this change
|
# Change vector.toml sinks to reflect this change
|
||||||
# these cannot be the same value
|
LOGFLARE_API_KEY=your-super-secret-and-long-logflare-key
|
||||||
LOGFLARE_PUBLIC_ACCESS_TOKEN=your-super-secret-and-long-logflare-key-public
|
|
||||||
LOGFLARE_PRIVATE_ACCESS_TOKEN=your-super-secret-and-long-logflare-key-private
|
|
||||||
|
|
||||||
# Docker socket location - this value will differ depending on your OS
|
# Docker socket location - this value will differ depending on your OS
|
||||||
DOCKER_SOCKET_LOCATION=/var/run/docker.sock
|
DOCKER_SOCKET_LOCATION=/var/run/docker.sock
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ services:
|
|||||||
studio:
|
studio:
|
||||||
build:
|
build:
|
||||||
context: ..
|
context: ..
|
||||||
dockerfile: apps/studio/Dockerfile
|
dockerfile: studio/Dockerfile
|
||||||
target: dev
|
target: dev
|
||||||
ports:
|
ports:
|
||||||
- 8082:8082
|
- 8082:8082
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ name: supabase
|
|||||||
services:
|
services:
|
||||||
|
|
||||||
studio:
|
studio:
|
||||||
image: supabase/studio:2025.06.30-sha-6f5982d
|
image: supabase/studio:2025.05.19-sha-3487831
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
healthcheck:
|
healthcheck:
|
||||||
test:
|
test:
|
||||||
@@ -41,7 +41,7 @@ services:
|
|||||||
SUPABASE_SERVICE_KEY: ${SERVICE_ROLE_KEY}
|
SUPABASE_SERVICE_KEY: ${SERVICE_ROLE_KEY}
|
||||||
AUTH_JWT_SECRET: ${JWT_SECRET}
|
AUTH_JWT_SECRET: ${JWT_SECRET}
|
||||||
|
|
||||||
LOGFLARE_PRIVATE_ACCESS_TOKEN: ${LOGFLARE_PRIVATE_ACCESS_TOKEN}
|
LOGFLARE_API_KEY: ${LOGFLARE_API_KEY}
|
||||||
LOGFLARE_URL: http://analytics:4000
|
LOGFLARE_URL: http://analytics:4000
|
||||||
NEXT_PUBLIC_ENABLE_LOGS: true
|
NEXT_PUBLIC_ENABLE_LOGS: true
|
||||||
# Comment to use Big Query backend for analytics
|
# Comment to use Big Query backend for analytics
|
||||||
@@ -75,7 +75,7 @@ services:
|
|||||||
/docker-entrypoint.sh kong docker-start'
|
/docker-entrypoint.sh kong docker-start'
|
||||||
|
|
||||||
auth:
|
auth:
|
||||||
image: supabase/gotrue:v2.176.1
|
image: supabase/gotrue:v2.172.1
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
healthcheck:
|
healthcheck:
|
||||||
test:
|
test:
|
||||||
@@ -100,7 +100,10 @@ services:
|
|||||||
GOTRUE_API_HOST: 0.0.0.0
|
GOTRUE_API_HOST: 0.0.0.0
|
||||||
GOTRUE_API_PORT: 9999
|
GOTRUE_API_PORT: 9999
|
||||||
API_EXTERNAL_URL: ${API_EXTERNAL_URL}
|
API_EXTERNAL_URL: ${API_EXTERNAL_URL}
|
||||||
|
GOTRUE_EXTERNAL_GOOGLE_ENABLED: ${GOOGLE_ENABLED}
|
||||||
|
GOTRUE_EXTERNAL_GOOGLE_CLIENT_ID: ${GOOGLE_CLIENT_ID}
|
||||||
|
GOTRUE_EXTERNAL_GOOGLE_SECRET: ${GOOGLE_SECRET}
|
||||||
|
GOTRUE_EXTERNAL_GOOGLE_REDIRECT_URI: ${API_EXTERNAL_URL}/auth/v1/callback
|
||||||
GOTRUE_DB_DRIVER: postgres
|
GOTRUE_DB_DRIVER: postgres
|
||||||
GOTRUE_DB_DATABASE_URL: postgres://supabase_auth_admin:${POSTGRES_PASSWORD}@${POSTGRES_HOST}:${POSTGRES_PORT}/${POSTGRES_DB}
|
GOTRUE_DB_DATABASE_URL: postgres://supabase_auth_admin:${POSTGRES_PASSWORD}@${POSTGRES_HOST}:${POSTGRES_PORT}/${POSTGRES_DB}
|
||||||
|
|
||||||
@@ -221,7 +224,7 @@ services:
|
|||||||
|
|
||||||
# To use S3 backed storage: docker compose -f docker-compose.yml -f docker-compose.s3.yml up
|
# To use S3 backed storage: docker compose -f docker-compose.yml -f docker-compose.s3.yml up
|
||||||
storage:
|
storage:
|
||||||
image: supabase/storage-api:v1.24.7
|
image: supabase/storage-api:v1.22.17
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
volumes:
|
volumes:
|
||||||
- ./volumes/storage:/var/lib/storage:z
|
- ./volumes/storage:/var/lib/storage:z
|
||||||
@@ -279,7 +282,7 @@ services:
|
|||||||
IMGPROXY_ENABLE_WEBP_DETECTION: ${IMGPROXY_ENABLE_WEBP_DETECTION}
|
IMGPROXY_ENABLE_WEBP_DETECTION: ${IMGPROXY_ENABLE_WEBP_DETECTION}
|
||||||
|
|
||||||
meta:
|
meta:
|
||||||
image: supabase/postgres-meta:v0.89.3
|
image: supabase/postgres-meta:v0.89.0
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
depends_on:
|
depends_on:
|
||||||
db:
|
db:
|
||||||
@@ -314,7 +317,7 @@ services:
|
|||||||
command: [ "start", "--main-service", "/home/deno/functions/main" ]
|
command: [ "start", "--main-service", "/home/deno/functions/main" ]
|
||||||
|
|
||||||
analytics:
|
analytics:
|
||||||
image: supabase/logflare:1.14.2
|
image: supabase/logflare:1.12.0
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
# Uncomment to use Big Query backend for analytics
|
# Uncomment to use Big Query backend for analytics
|
||||||
# volumes:
|
# volumes:
|
||||||
@@ -339,8 +342,7 @@ services:
|
|||||||
DB_PORT: ${POSTGRES_PORT}
|
DB_PORT: ${POSTGRES_PORT}
|
||||||
DB_PASSWORD: ${POSTGRES_PASSWORD}
|
DB_PASSWORD: ${POSTGRES_PASSWORD}
|
||||||
DB_SCHEMA: _analytics
|
DB_SCHEMA: _analytics
|
||||||
LOGFLARE_PUBLIC_ACCESS_TOKEN: ${LOGFLARE_PUBLIC_ACCESS_TOKEN}
|
LOGFLARE_API_KEY: ${LOGFLARE_API_KEY}
|
||||||
LOGFLARE_PRIVATE_ACCESS_TOKEN: ${LOGFLARE_PRIVATE_ACCESS_TOKEN}
|
|
||||||
LOGFLARE_SINGLE_TENANT: true
|
LOGFLARE_SINGLE_TENANT: true
|
||||||
LOGFLARE_SUPABASE_MODE: true
|
LOGFLARE_SUPABASE_MODE: true
|
||||||
LOGFLARE_MIN_CLUSTER_SIZE: 1
|
LOGFLARE_MIN_CLUSTER_SIZE: 1
|
||||||
@@ -422,14 +424,14 @@ services:
|
|||||||
interval: 5s
|
interval: 5s
|
||||||
retries: 3
|
retries: 3
|
||||||
environment:
|
environment:
|
||||||
LOGFLARE_PUBLIC_ACCESS_TOKEN: ${LOGFLARE_PUBLIC_ACCESS_TOKEN}
|
LOGFLARE_API_KEY: ${LOGFLARE_API_KEY}
|
||||||
command: [ "--config", "/etc/vector/vector.yml" ]
|
command: [ "--config", "/etc/vector/vector.yml" ]
|
||||||
security_opt:
|
security_opt:
|
||||||
- "label=disable"
|
- "label=disable"
|
||||||
|
|
||||||
# Update the DATABASE_URL if you are using an external Postgres database
|
# Update the DATABASE_URL if you are using an external Postgres database
|
||||||
supavisor:
|
supavisor:
|
||||||
image: supabase/supavisor:2.5.6
|
image: supabase/supavisor:2.5.1
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
volumes:
|
volumes:
|
||||||
- ./volumes/pooler/pooler.exs:/etc/pooler/pooler.exs:ro,z
|
- ./volumes/pooler/pooler.exs:/etc/pooler/pooler.exs:ro,z
|
||||||
@@ -457,7 +459,7 @@ services:
|
|||||||
POSTGRES_PORT: ${POSTGRES_PORT}
|
POSTGRES_PORT: ${POSTGRES_PORT}
|
||||||
POSTGRES_DB: ${POSTGRES_DB}
|
POSTGRES_DB: ${POSTGRES_DB}
|
||||||
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
|
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
|
||||||
DATABASE_URL: ecto://supabase_admin:${POSTGRES_PASSWORD}@${POSTGRES_HOST}:${POSTGRES_PORT}/_supabase
|
DATABASE_URL: ecto://supabase_admin:${POSTGRES_PASSWORD}@db:${POSTGRES_PORT}/_supabase
|
||||||
CLUSTER_POSTGRES: true
|
CLUSTER_POSTGRES: true
|
||||||
SECRET_KEY_BASE: ${SECRET_KEY_BASE}
|
SECRET_KEY_BASE: ${SECRET_KEY_BASE}
|
||||||
VAULT_ENC_KEY: ${VAULT_ENC_KEY}
|
VAULT_ENC_KEY: ${VAULT_ENC_KEY}
|
||||||
@@ -469,7 +471,6 @@ services:
|
|||||||
POOLER_DEFAULT_POOL_SIZE: ${POOLER_DEFAULT_POOL_SIZE}
|
POOLER_DEFAULT_POOL_SIZE: ${POOLER_DEFAULT_POOL_SIZE}
|
||||||
POOLER_MAX_CLIENT_CONN: ${POOLER_MAX_CLIENT_CONN}
|
POOLER_MAX_CLIENT_CONN: ${POOLER_MAX_CLIENT_CONN}
|
||||||
POOLER_POOL_MODE: transaction
|
POOLER_POOL_MODE: transaction
|
||||||
DB_POOL_SIZE: ${POOLER_DB_POOL_SIZE}
|
|
||||||
command:
|
command:
|
||||||
[
|
[
|
||||||
"/bin/sh",
|
"/bin/sh",
|
||||||
|
|||||||
@@ -165,9 +165,7 @@ sinks:
|
|||||||
method: 'post'
|
method: 'post'
|
||||||
request:
|
request:
|
||||||
retry_max_duration_secs: 10
|
retry_max_duration_secs: 10
|
||||||
headers:
|
uri: 'http://analytics:4000/api/logs?source_name=gotrue.logs.prod&api_key=${LOGFLARE_API_KEY?LOGFLARE_API_KEY is required}'
|
||||||
x-api-key: ${LOGFLARE_PUBLIC_ACCESS_TOKEN?LOGFLARE_PUBLIC_ACCESS_TOKEN is required}
|
|
||||||
uri: 'http://analytics:4000/api/logs?source_name=gotrue.logs.prod'
|
|
||||||
logflare_realtime:
|
logflare_realtime:
|
||||||
type: 'http'
|
type: 'http'
|
||||||
inputs:
|
inputs:
|
||||||
@@ -177,9 +175,7 @@ sinks:
|
|||||||
method: 'post'
|
method: 'post'
|
||||||
request:
|
request:
|
||||||
retry_max_duration_secs: 10
|
retry_max_duration_secs: 10
|
||||||
headers:
|
uri: 'http://analytics:4000/api/logs?source_name=realtime.logs.prod&api_key=${LOGFLARE_API_KEY?LOGFLARE_API_KEY is required}'
|
||||||
x-api-key: ${LOGFLARE_PUBLIC_ACCESS_TOKEN?LOGFLARE_PUBLIC_ACCESS_TOKEN is required}
|
|
||||||
uri: 'http://analytics:4000/api/logs?source_name=realtime.logs.prod'
|
|
||||||
logflare_rest:
|
logflare_rest:
|
||||||
type: 'http'
|
type: 'http'
|
||||||
inputs:
|
inputs:
|
||||||
@@ -189,9 +185,7 @@ sinks:
|
|||||||
method: 'post'
|
method: 'post'
|
||||||
request:
|
request:
|
||||||
retry_max_duration_secs: 10
|
retry_max_duration_secs: 10
|
||||||
headers:
|
uri: 'http://analytics:4000/api/logs?source_name=postgREST.logs.prod&api_key=${LOGFLARE_API_KEY?LOGFLARE_API_KEY is required}'
|
||||||
x-api-key: ${LOGFLARE_PUBLIC_ACCESS_TOKEN?LOGFLARE_PUBLIC_ACCESS_TOKEN is required}
|
|
||||||
uri: 'http://analytics:4000/api/logs?source_name=postgREST.logs.prod'
|
|
||||||
logflare_db:
|
logflare_db:
|
||||||
type: 'http'
|
type: 'http'
|
||||||
inputs:
|
inputs:
|
||||||
@@ -201,12 +195,10 @@ sinks:
|
|||||||
method: 'post'
|
method: 'post'
|
||||||
request:
|
request:
|
||||||
retry_max_duration_secs: 10
|
retry_max_duration_secs: 10
|
||||||
headers:
|
|
||||||
x-api-key: ${LOGFLARE_PUBLIC_ACCESS_TOKEN?LOGFLARE_PUBLIC_ACCESS_TOKEN is required}
|
|
||||||
# We must route the sink through kong because ingesting logs before logflare is fully initialised will
|
# We must route the sink through kong because ingesting logs before logflare is fully initialised will
|
||||||
# lead to broken queries from studio. This works by the assumption that containers are started in the
|
# lead to broken queries from studio. This works by the assumption that containers are started in the
|
||||||
# following order: vector > db > logflare > kong
|
# following order: vector > db > logflare > kong
|
||||||
uri: 'http://kong:8000/analytics/v1/api/logs?source_name=postgres.logs'
|
uri: 'http://kong:8000/analytics/v1/api/logs?source_name=postgres.logs&api_key=${LOGFLARE_API_KEY?LOGFLARE_API_KEY is required}'
|
||||||
logflare_functions:
|
logflare_functions:
|
||||||
type: 'http'
|
type: 'http'
|
||||||
inputs:
|
inputs:
|
||||||
@@ -216,9 +208,7 @@ sinks:
|
|||||||
method: 'post'
|
method: 'post'
|
||||||
request:
|
request:
|
||||||
retry_max_duration_secs: 10
|
retry_max_duration_secs: 10
|
||||||
headers:
|
uri: 'http://analytics:4000/api/logs?source_name=deno-relay-logs&api_key=${LOGFLARE_API_KEY?LOGFLARE_API_KEY is required}'
|
||||||
x-api-key: ${LOGFLARE_PUBLIC_ACCESS_TOKEN?LOGFLARE_PUBLIC_ACCESS_TOKEN is required}
|
|
||||||
uri: 'http://analytics:4000/api/logs?source_name=deno-relay-logs'
|
|
||||||
logflare_storage:
|
logflare_storage:
|
||||||
type: 'http'
|
type: 'http'
|
||||||
inputs:
|
inputs:
|
||||||
@@ -228,9 +218,7 @@ sinks:
|
|||||||
method: 'post'
|
method: 'post'
|
||||||
request:
|
request:
|
||||||
retry_max_duration_secs: 10
|
retry_max_duration_secs: 10
|
||||||
headers:
|
uri: 'http://analytics:4000/api/logs?source_name=storage.logs.prod.2&api_key=${LOGFLARE_API_KEY?LOGFLARE_API_KEY is required}'
|
||||||
x-api-key: ${LOGFLARE_PUBLIC_ACCESS_TOKEN?LOGFLARE_PUBLIC_ACCESS_TOKEN is required}
|
|
||||||
uri: 'http://analytics:4000/api/logs?source_name=storage.logs.prod.2'
|
|
||||||
logflare_kong:
|
logflare_kong:
|
||||||
type: 'http'
|
type: 'http'
|
||||||
inputs:
|
inputs:
|
||||||
@@ -241,6 +229,4 @@ sinks:
|
|||||||
method: 'post'
|
method: 'post'
|
||||||
request:
|
request:
|
||||||
retry_max_duration_secs: 10
|
retry_max_duration_secs: 10
|
||||||
headers:
|
uri: 'http://analytics:4000/api/logs?source_name=cloudflare.logs.prod&api_key=${LOGFLARE_API_KEY?LOGFLARE_API_KEY is required}'
|
||||||
x-api-key: ${LOGFLARE_PUBLIC_ACCESS_TOKEN?LOGFLARE_PUBLIC_ACCESS_TOKEN is required}
|
|
||||||
uri: 'http://analytics:4000/api/logs?source_name=cloudflare.logs.prod'
|
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ TAG=latest
|
|||||||
REDIS_URL=redis://redis:6379
|
REDIS_URL=redis://redis:6379
|
||||||
|
|
||||||
SERVER_URL=https://$(PRIMARY_DOMAIN)
|
SERVER_URL=https://$(PRIMARY_DOMAIN)
|
||||||
|
SIGN_IN_PREFILLED=false
|
||||||
|
|
||||||
# Use openssl rand -base64 32 for each secret
|
# Use openssl rand -base64 32 for each secret
|
||||||
APP_SECRET=replace_me_with_a_random_string
|
APP_SECRET=replace_me_with_a_random_string
|
||||||
|
|||||||
@@ -10,8 +10,6 @@ services:
|
|||||||
PG_DATABASE_URL: postgres://${PG_DATABASE_USER:-postgres}:${PG_DATABASE_PASSWORD:-postgres}@${PG_DATABASE_HOST:-db}:${PG_DATABASE_PORT:-5432}/default
|
PG_DATABASE_URL: postgres://${PG_DATABASE_USER:-postgres}:${PG_DATABASE_PASSWORD:-postgres}@${PG_DATABASE_HOST:-db}:${PG_DATABASE_PORT:-5432}/default
|
||||||
SERVER_URL: ${SERVER_URL}
|
SERVER_URL: ${SERVER_URL}
|
||||||
REDIS_URL: ${REDIS_URL:-redis://redis:6379}
|
REDIS_URL: ${REDIS_URL:-redis://redis:6379}
|
||||||
DISABLE_DB_MIGRATIONS: ${DISABLE_DB_MIGRATIONS}
|
|
||||||
DISABLE_CRON_JOBS_REGISTRATION: ${DISABLE_CRON_JOBS_REGISTRATION}
|
|
||||||
|
|
||||||
STORAGE_TYPE: ${STORAGE_TYPE}
|
STORAGE_TYPE: ${STORAGE_TYPE}
|
||||||
STORAGE_S3_REGION: ${STORAGE_S3_REGION}
|
STORAGE_S3_REGION: ${STORAGE_S3_REGION}
|
||||||
@@ -56,14 +54,13 @@ services:
|
|||||||
worker:
|
worker:
|
||||||
image: twentycrm/twenty:${TAG:-latest}
|
image: twentycrm/twenty:${TAG:-latest}
|
||||||
volumes:
|
volumes:
|
||||||
- server-local-data:/app/packages/twenty-server/.local-storage
|
- server-local-data:/app/packages/twenty-server/${STORAGE_LOCAL_PATH:-.local-storage}
|
||||||
command: [ "yarn", "worker:prod" ]
|
command: [ "yarn", "worker:prod" ]
|
||||||
environment:
|
environment:
|
||||||
PG_DATABASE_URL: postgres://${PG_DATABASE_USER:-postgres}:${PG_DATABASE_PASSWORD:-postgres}@${PG_DATABASE_HOST:-db}:${PG_DATABASE_PORT:-5432}/default
|
PG_DATABASE_URL: postgres://${PG_DATABASE_USER:-postgres}:${PG_DATABASE_PASSWORD:-postgres}@${PG_DATABASE_HOST:-db}:${PG_DATABASE_PORT:-5432}/default
|
||||||
SERVER_URL: ${SERVER_URL}
|
SERVER_URL: ${SERVER_URL}
|
||||||
REDIS_URL: ${REDIS_URL:-redis://redis:6379}
|
REDIS_URL: ${REDIS_URL:-redis://redis:6379}
|
||||||
DISABLE_DB_MIGRATIONS: "true" # it already runs on the server
|
DISABLE_DB_MIGRATIONS: "true" # it already runs on the server
|
||||||
DISABLE_CRON_JOBS_REGISTRATION: "true" # it already runs on the server
|
|
||||||
|
|
||||||
STORAGE_TYPE: ${STORAGE_TYPE}
|
STORAGE_TYPE: ${STORAGE_TYPE}
|
||||||
STORAGE_S3_REGION: ${STORAGE_S3_REGION}
|
STORAGE_S3_REGION: ${STORAGE_S3_REGION}
|
||||||
|
|||||||
@@ -1,15 +0,0 @@
|
|||||||
apiVersion: 1
|
|
||||||
|
|
||||||
datasources:
|
|
||||||
- name: ClickHouse
|
|
||||||
type: grafana-clickhouse-datasource
|
|
||||||
uid: clickhouse_datasource
|
|
||||||
jsonData:
|
|
||||||
server: twenty_clickhouse
|
|
||||||
defaultDatabase: twenty_dev
|
|
||||||
port: 9000
|
|
||||||
protocol: native
|
|
||||||
tlsSkipVerify: true
|
|
||||||
username: default
|
|
||||||
secureJsonData:
|
|
||||||
password: devPassword
|
|
||||||
@@ -1,24 +0,0 @@
|
|||||||
receivers:
|
|
||||||
otlp:
|
|
||||||
protocols:
|
|
||||||
http:
|
|
||||||
endpoint: "0.0.0.0:4318"
|
|
||||||
|
|
||||||
exporters:
|
|
||||||
clickhouse:
|
|
||||||
endpoint: tcp://twenty_clickhouse:9000
|
|
||||||
database: twenty_dev
|
|
||||||
username: default
|
|
||||||
password: devPassword
|
|
||||||
debug:
|
|
||||||
verbosity: detailed
|
|
||||||
|
|
||||||
processors:
|
|
||||||
batch:
|
|
||||||
|
|
||||||
service:
|
|
||||||
pipelines:
|
|
||||||
metrics:
|
|
||||||
receivers: [otlp]
|
|
||||||
processors: [batch]
|
|
||||||
exporters: [clickhouse, debug]
|
|
||||||
@@ -94,7 +94,7 @@ echo "# === Randomly generated secret ===" >> .env
|
|||||||
echo "APP_SECRET=$(openssl rand -base64 32)" >> .env
|
echo "APP_SECRET=$(openssl rand -base64 32)" >> .env
|
||||||
|
|
||||||
echo "" >> .env
|
echo "" >> .env
|
||||||
echo "PG_DATABASE_PASSWORD=$(openssl rand -hex 32)" >> .env
|
echo "PG_DATABASE_PASSWORD=$(openssl rand -hex 16)" >> .env
|
||||||
|
|
||||||
echo -e "\t• .env configuration completed"
|
echo -e "\t• .env configuration completed"
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
FROM node:22-alpine as twenty-website-build
|
FROM node:18.17.1-alpine as twenty-website-build
|
||||||
|
|
||||||
|
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
@@ -23,7 +23,7 @@ COPY ./packages/twenty-ui /app/packages/twenty-ui
|
|||||||
COPY ./packages/twenty-website /app/packages/twenty-website
|
COPY ./packages/twenty-website /app/packages/twenty-website
|
||||||
RUN npx nx build twenty-website
|
RUN npx nx build twenty-website
|
||||||
|
|
||||||
FROM node:22-alpine as twenty-website
|
FROM node:18.17.1-alpine as twenty-website
|
||||||
|
|
||||||
WORKDIR /app/packages/twenty-website
|
WORKDIR /app/packages/twenty-website
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
# Base image for common dependencies
|
# Base image for common dependencies
|
||||||
FROM node:22-alpine as common-deps
|
FROM node:18.17.1-alpine as common-deps
|
||||||
|
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
|
|
||||||
@@ -49,7 +49,7 @@ RUN npx nx build twenty-front
|
|||||||
|
|
||||||
|
|
||||||
# Final stage: Run the application
|
# Final stage: Run the application
|
||||||
FROM node:22-alpine as twenty
|
FROM node:18.17.1-alpine as twenty
|
||||||
|
|
||||||
# Used to run healthcheck in docker
|
# Used to run healthcheck in docker
|
||||||
RUN apk add --no-cache curl jq
|
RUN apk add --no-cache curl jq
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ setup_and_migrate_db() {
|
|||||||
PGPASS=$(echo $PG_DATABASE_URL | awk -F ':' '{print $3}' | awk -F '@' '{print $1}')
|
PGPASS=$(echo $PG_DATABASE_URL | awk -F ':' '{print $3}' | awk -F '@' '{print $1}')
|
||||||
PGHOST=$(echo $PG_DATABASE_URL | awk -F '@' '{print $2}' | awk -F ':' '{print $1}')
|
PGHOST=$(echo $PG_DATABASE_URL | awk -F '@' '{print $2}' | awk -F ':' '{print $1}')
|
||||||
PGPORT=$(echo $PG_DATABASE_URL | awk -F ':' '{print $4}' | awk -F '/' '{print $1}')
|
PGPORT=$(echo $PG_DATABASE_URL | awk -F ':' '{print $4}' | awk -F '/' '{print $1}')
|
||||||
PGDATABASE=$(echo $PG_DATABASE_URL | awk -F '/' '{print $NF}' | cut -d'?' -f1)
|
PGDATABASE=$(echo $PG_DATABASE_URL | awk -F ':' '{print $4}' | awk -F '/' '{print $2}')
|
||||||
|
|
||||||
# Creating the database if it doesn't exist
|
# Creating the database if it doesn't exist
|
||||||
db_count=$(PGPASSWORD=${PGPASS} psql -h ${PGHOST} -p ${PGPORT} -U ${PGUSER} -d postgres -tAc "SELECT COUNT(*) FROM pg_database WHERE datname = '${PGDATABASE}'")
|
db_count=$(PGPASSWORD=${PGPASS} psql -h ${PGHOST} -p ${PGPORT} -U ${PGUSER} -d postgres -tAc "SELECT COUNT(*) FROM pg_database WHERE datname = '${PGDATABASE}'")
|
||||||
@@ -22,29 +22,12 @@ setup_and_migrate_db() {
|
|||||||
|
|
||||||
# Run setup and migration scripts
|
# Run setup and migration scripts
|
||||||
NODE_OPTIONS="--max-old-space-size=1500" tsx ./scripts/setup-db.ts
|
NODE_OPTIONS="--max-old-space-size=1500" tsx ./scripts/setup-db.ts
|
||||||
yarn database:migrate:prod
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
yarn command:prod upgrade
|
yarn command:prod upgrade
|
||||||
echo "Successfully migrated DB!"
|
echo "Successfully migrated DB!"
|
||||||
}
|
}
|
||||||
|
|
||||||
register_background_jobs() {
|
|
||||||
if [ "${DISABLE_CRON_JOBS_REGISTRATION}" = "true" ]; then
|
|
||||||
echo "Cron job registration is disabled, skipping..."
|
|
||||||
return
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "Registering background sync jobs..."
|
|
||||||
if yarn command:prod cron:register:all; then
|
|
||||||
echo "Successfully registered all background sync jobs!"
|
|
||||||
else
|
|
||||||
echo "Warning: Failed to register background jobs, but continuing startup..."
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
setup_and_migrate_db
|
setup_and_migrate_db
|
||||||
register_background_jobs
|
|
||||||
|
|
||||||
# Continue with the original Docker command
|
# Continue with the original Docker command
|
||||||
exec "$@"
|
exec "$@"
|
||||||
|
|||||||
Reference in New Issue
Block a user