mirror of
https://github.com/Dokploy/templates.git
synced 2026-07-08 15:35:24 +02:00
* feat(appwrite): update template to 1.9.5
Move default datastore to MongoDB (DocumentsDB), add worker-screenshots,
worker-executions and task-interval, bump all images to 1.9.5, expand v5
function runtimes, and provide mongo bootstrap files via config.mounts.
MariaDB kept as a supported alternative. PostgreSQL/embedding (VectorsDB)
and bundled Traefik intentionally excluded.
* fix(appwrite): re-add compose version header and add mongodb tag
Address review: restore "version: 3.8" header (repo convention across
blueprints) and add the mongodb tag to meta.json to reflect the new
default datastore.
* (fix): add container_name to appwrite executor so it can find itself
The openruntimes executor v0.25 discovers its own container by listing
containers whose name matches its hostname (exc1). Without
container_name, compose names the container <project>-openruntimes-executor-1,
the lookup fails with 'Own container not found' and the executor
crash-loops, breaking all function/site builds and executions with
'Could not resolve host: exc1'. Matches upstream appwrite 1.9.5 compose.
Verified end-to-end on a fresh Dokploy v0.29.8 server: executor healthy,
function build + execution succeed.
* (fix): route wildcard sites/functions subdomains to appwrite
Dokploy domains only support exact hosts, so Appwrite-generated preview
and execution URLs (<id>.sites.<domain>, <id>.functions.<domain>) hit
Dokploy traefik with no matching router: 404 over HTTP and the traefik
default self-signed certificate over HTTPS ('site is insecure').
Add HostRegexp routers on the appwrite service for *.sites and
*.functions domains on both web and websecure entrypoints. HTTPS for
these subdomains still requires the user to provide a wildcard
certificate (DNS-01 resolver or uploaded wildcard/Origin CA cert);
with tls=true routers in place traefik picks it up via SNI once added.
Verified on a live Dokploy v0.29.8 deployment: site subdomains route
correctly over HTTP and HTTPS after adding the labels.
* (chore): remove wildcard routing comment
* (fix): drop container_name, use service-name hostname for executor self-discovery
container_name is disallowed by repo conventions and fails CI validation.
The executor discovers its own container by matching gethostname()
against Docker container names (substring filter), so hostname
openruntimes-executor matches <project>-openruntimes-executor-1 and
_APP_EXECUTOR_HOST can use the DNS-resolvable service name.
Also read the MongoDB healthcheck password from the container env
(MONGO_INITDB_ROOT_PASSWORD) instead of interpolating _APP_DB_ROOT_PASS
at render time, so shell-special characters in generated passwords
cannot break authentication.
Both verified on a live Dokploy v0.29.8 deployment: executor healthy,
function execution succeeds, mongodb healthcheck passes.
---------
Co-authored-by: ChiragAgg5k <chirag@appwrite.io>
1163 lines
34 KiB
YAML
1163 lines
34 KiB
YAML
version: "3.8"
|
|
|
|
x-logging: &x-logging
|
|
logging:
|
|
driver: "json-file"
|
|
options:
|
|
max-file: "5"
|
|
max-size: "10m"
|
|
services:
|
|
appwrite:
|
|
image: appwrite/appwrite:1.9.5
|
|
<<: *x-logging
|
|
restart: unless-stopped
|
|
labels:
|
|
- traefik.enable=true
|
|
- traefik.constraint-label-stack=appwrite
|
|
- 'traefik.http.routers.appwrite-sites-wildcard.rule=HostRegexp(`^.+\.${_APP_DOMAIN_SITES}$$`)'
|
|
- traefik.http.routers.appwrite-sites-wildcard.entrypoints=web
|
|
- traefik.http.routers.appwrite-sites-wildcard.service=appwrite-wildcard
|
|
- 'traefik.http.routers.appwrite-sites-wildcard-secure.rule=HostRegexp(`^.+\.${_APP_DOMAIN_SITES}$$`)'
|
|
- traefik.http.routers.appwrite-sites-wildcard-secure.entrypoints=websecure
|
|
- traefik.http.routers.appwrite-sites-wildcard-secure.tls=true
|
|
- traefik.http.routers.appwrite-sites-wildcard-secure.service=appwrite-wildcard
|
|
- 'traefik.http.routers.appwrite-functions-wildcard.rule=HostRegexp(`^.+\.${_APP_DOMAIN_FUNCTIONS}$$`)'
|
|
- traefik.http.routers.appwrite-functions-wildcard.entrypoints=web
|
|
- traefik.http.routers.appwrite-functions-wildcard.service=appwrite-wildcard
|
|
- 'traefik.http.routers.appwrite-functions-wildcard-secure.rule=HostRegexp(`^.+\.${_APP_DOMAIN_FUNCTIONS}$$`)'
|
|
- traefik.http.routers.appwrite-functions-wildcard-secure.entrypoints=websecure
|
|
- traefik.http.routers.appwrite-functions-wildcard-secure.tls=true
|
|
- traefik.http.routers.appwrite-functions-wildcard-secure.service=appwrite-wildcard
|
|
- traefik.http.services.appwrite-wildcard.loadbalancer.server.port=80
|
|
healthcheck:
|
|
test:
|
|
- CMD
|
|
- doctor
|
|
interval: 5s
|
|
timeout: 5s
|
|
retries: 12
|
|
volumes:
|
|
- appwrite-uploads:/storage/uploads:rw
|
|
- appwrite-imports:/storage/imports:rw
|
|
- appwrite-cache:/storage/cache:rw
|
|
- appwrite-config:/storage/config:rw
|
|
- appwrite-certificates:/storage/certificates:rw
|
|
- appwrite-functions:/storage/functions:rw
|
|
- appwrite-sites:/storage/sites:rw
|
|
- appwrite-builds:/storage/builds:rw
|
|
depends_on:
|
|
- redis
|
|
- ${_APP_DB_HOST:-mongodb}
|
|
environment:
|
|
- _APP_ENV
|
|
- _APP_EDITION
|
|
- _APP_WORKER_PER_CORE
|
|
- _APP_POOL_ADAPTER
|
|
- _APP_LOCALE
|
|
- _APP_COMPRESSION_ENABLED
|
|
- _APP_COMPRESSION_MIN_SIZE_BYTES
|
|
- _APP_CONSOLE_WHITELIST_ROOT
|
|
- _APP_CONSOLE_WHITELIST_EMAILS
|
|
- _APP_CONSOLE_SESSION_ALERTS
|
|
- _APP_CONSOLE_WHITELIST_IPS
|
|
- _APP_CONSOLE_HOSTNAMES
|
|
- _APP_CONSOLE_SCHEMA
|
|
- _APP_SYSTEM_EMAIL_NAME
|
|
- _APP_SYSTEM_EMAIL_ADDRESS
|
|
- _APP_SYSTEM_TEAM_EMAIL
|
|
- _APP_EMAIL_SECURITY
|
|
- _APP_SYSTEM_RESPONSE_FORMAT
|
|
- _APP_OPTIONS_ABUSE
|
|
- _APP_OPTIONS_ROUTER_PROTECTION
|
|
- _APP_OPTIONS_FORCE_HTTPS
|
|
- _APP_OPTIONS_ROUTER_FORCE_HTTPS
|
|
- _APP_OPENSSL_KEY_V1
|
|
- _APP_DOMAIN
|
|
- _APP_CONSOLE_DOMAIN
|
|
- _APP_CONSOLE_TRUSTED_PROJECTS
|
|
- _APP_DOMAIN_TARGET_CNAME
|
|
- _APP_DOMAIN_TARGET_AAAA
|
|
- _APP_DOMAIN_TARGET_A
|
|
- _APP_DOMAIN_TARGET_CAA
|
|
- _APP_DNS
|
|
- _APP_DOMAIN_FUNCTIONS
|
|
- _APP_REDIS_HOST
|
|
- _APP_REDIS_PORT
|
|
- _APP_REDIS_USER
|
|
- _APP_REDIS_PASS
|
|
- _APP_DB_ADAPTER
|
|
- _APP_DB_HOST
|
|
- _APP_DB_PORT
|
|
- _APP_DB_SCHEMA
|
|
- _APP_DB_USER
|
|
- _APP_DB_PASS
|
|
- _APP_DB_ADAPTER_VECTORSDB
|
|
- _APP_DB_HOST_VECTORSDB
|
|
- _APP_DB_PORT_VECTORSDB
|
|
- _APP_DB_SCHEMA_VECTORSDB
|
|
- _APP_DB_USER_VECTORSDB
|
|
- _APP_DB_PASS_VECTORSDB
|
|
- _APP_SMTP_HOST
|
|
- _APP_SMTP_PORT
|
|
- _APP_SMTP_SECURE
|
|
- _APP_SMTP_USERNAME
|
|
- _APP_SMTP_PASSWORD
|
|
- _APP_USAGE_STATS
|
|
- _APP_STORAGE_LIMIT
|
|
- _APP_STORAGE_PREVIEW_LIMIT
|
|
- _APP_STORAGE_ANTIVIRUS
|
|
- _APP_STORAGE_ANTIVIRUS_HOST
|
|
- _APP_STORAGE_ANTIVIRUS_PORT
|
|
- _APP_STORAGE_DEVICE
|
|
- _APP_STORAGE_S3_ACCESS_KEY
|
|
- _APP_STORAGE_S3_SECRET
|
|
- _APP_STORAGE_S3_REGION
|
|
- _APP_STORAGE_S3_BUCKET
|
|
- _APP_STORAGE_S3_ENDPOINT
|
|
- _APP_STORAGE_DO_SPACES_ACCESS_KEY
|
|
- _APP_STORAGE_DO_SPACES_SECRET
|
|
- _APP_STORAGE_DO_SPACES_REGION
|
|
- _APP_STORAGE_DO_SPACES_BUCKET
|
|
- _APP_STORAGE_BACKBLAZE_ACCESS_KEY
|
|
- _APP_STORAGE_BACKBLAZE_SECRET
|
|
- _APP_STORAGE_BACKBLAZE_REGION
|
|
- _APP_STORAGE_BACKBLAZE_BUCKET
|
|
- _APP_STORAGE_LINODE_ACCESS_KEY
|
|
- _APP_STORAGE_LINODE_SECRET
|
|
- _APP_STORAGE_LINODE_REGION
|
|
- _APP_STORAGE_LINODE_BUCKET
|
|
- _APP_STORAGE_WASABI_ACCESS_KEY
|
|
- _APP_STORAGE_WASABI_SECRET
|
|
- _APP_STORAGE_WASABI_REGION
|
|
- _APP_STORAGE_WASABI_BUCKET
|
|
- _APP_COMPUTE_SIZE_LIMIT
|
|
- _APP_FUNCTIONS_TIMEOUT
|
|
- _APP_SITES_TIMEOUT
|
|
- _APP_COMPUTE_BUILD_TIMEOUT
|
|
- _APP_COMPUTE_CPUS
|
|
- _APP_COMPUTE_MEMORY
|
|
- _APP_FUNCTIONS_RUNTIMES
|
|
- _APP_SITES_RUNTIMES
|
|
- _APP_DOMAIN_SITES
|
|
- _APP_EXECUTOR_SECRET
|
|
- _APP_EXECUTOR_HOST
|
|
- _APP_LOGGING_CONFIG
|
|
- _APP_MAINTENANCE_INTERVAL
|
|
- _APP_MAINTENANCE_RETENTION_EXECUTION
|
|
- _APP_MAINTENANCE_RETENTION_CACHE
|
|
- _APP_MAINTENANCE_RETENTION_ABUSE
|
|
- _APP_MAINTENANCE_RETENTION_AUDIT
|
|
- _APP_MAINTENANCE_RETENTION_AUDIT_CONSOLE
|
|
- _APP_MAINTENANCE_RETENTION_USAGE_HOURLY
|
|
- _APP_MAINTENANCE_RETENTION_SCHEDULES
|
|
- _APP_SMS_PROVIDER
|
|
- _APP_SMS_FROM
|
|
- _APP_GRAPHQL_INTROSPECTION
|
|
- _APP_GRAPHQL_MAX_BATCH_SIZE
|
|
- _APP_GRAPHQL_MAX_COMPLEXITY
|
|
- _APP_GRAPHQL_MAX_DEPTH
|
|
- _APP_VCS_GITHUB_APP_NAME
|
|
- _APP_VCS_GITHUB_PRIVATE_KEY
|
|
- _APP_VCS_GITHUB_APP_ID
|
|
- _APP_VCS_GITHUB_WEBHOOK_SECRET
|
|
- _APP_VCS_GITHUB_CLIENT_SECRET
|
|
- _APP_VCS_GITHUB_CLIENT_ID
|
|
- _APP_MIGRATIONS_FIREBASE_CLIENT_ID
|
|
- _APP_MIGRATIONS_FIREBASE_CLIENT_SECRET
|
|
- _APP_ASSISTANT_OPENAI_API_KEY
|
|
- _APP_CONSOLE_COUNTRIES_DENYLIST
|
|
- _APP_EXPERIMENT_LOGGING_PROVIDER
|
|
- _APP_EXPERIMENT_LOGGING_CONFIG
|
|
- _APP_DATABASE_SHARED_TABLES
|
|
- _APP_DATABASE_SHARED_NAMESPACE
|
|
- _APP_FUNCTIONS_CREATION_ABUSE_LIMIT
|
|
- _APP_CUSTOM_DOMAIN_DENY_LIST
|
|
- _APP_TRUSTED_HEADERS
|
|
- _APP_MIGRATION_HOST
|
|
|
|
appwrite-console:
|
|
<<: *x-logging
|
|
image: appwrite/console:8.7.5
|
|
restart: unless-stopped
|
|
labels:
|
|
- "traefik.enable=true"
|
|
- "traefik.constraint-label-stack=appwrite"
|
|
|
|
appwrite-realtime:
|
|
image: appwrite/appwrite:1.9.5
|
|
entrypoint: realtime
|
|
<<: *x-logging
|
|
restart: unless-stopped
|
|
labels:
|
|
- "traefik.enable=true"
|
|
- "traefik.constraint-label-stack=appwrite"
|
|
depends_on:
|
|
- ${_APP_DB_HOST:-mongodb}
|
|
- redis
|
|
environment:
|
|
- _APP_ENV
|
|
- _APP_WORKER_PER_CORE
|
|
- _APP_OPTIONS_ABUSE
|
|
- _APP_OPTIONS_ROUTER_PROTECTION
|
|
- _APP_OPENSSL_KEY_V1
|
|
- _APP_REDIS_HOST
|
|
- _APP_REDIS_PORT
|
|
- _APP_REDIS_USER
|
|
- _APP_REDIS_PASS
|
|
- _APP_DB_ADAPTER
|
|
- _APP_DB_HOST
|
|
- _APP_DB_PORT
|
|
- _APP_DB_SCHEMA
|
|
- _APP_DB_USER
|
|
- _APP_DB_PASS
|
|
- _APP_DB_ADAPTER_VECTORSDB
|
|
- _APP_DB_HOST_VECTORSDB
|
|
- _APP_DB_PORT_VECTORSDB
|
|
- _APP_DB_SCHEMA_VECTORSDB
|
|
- _APP_DB_USER_VECTORSDB
|
|
- _APP_DB_PASS_VECTORSDB
|
|
- _APP_USAGE_STATS
|
|
- _APP_LOGGING_CONFIG
|
|
- _APP_LOGGING_CONFIG_REALTIME
|
|
- _APP_DATABASE_SHARED_TABLES
|
|
- _APP_POOL_ADAPTER=swoole
|
|
|
|
appwrite-worker-audits:
|
|
image: appwrite/appwrite:1.9.5
|
|
entrypoint: worker-audits
|
|
<<: *x-logging
|
|
restart: unless-stopped
|
|
depends_on:
|
|
- redis
|
|
- ${_APP_DB_HOST:-mongodb}
|
|
environment:
|
|
- _APP_ENV
|
|
- _APP_WORKERS_NUM=1
|
|
- _APP_WORKER_MAX_COROUTINES=1
|
|
- _APP_WORKER_PER_CORE
|
|
- _APP_POOL_ADAPTER
|
|
- _APP_OPENSSL_KEY_V1
|
|
- _APP_REDIS_HOST
|
|
- _APP_REDIS_PORT
|
|
- _APP_REDIS_USER
|
|
- _APP_REDIS_PASS
|
|
- _APP_DB_ADAPTER
|
|
- _APP_DB_HOST
|
|
- _APP_DB_PORT
|
|
- _APP_DB_SCHEMA
|
|
- _APP_DB_USER
|
|
- _APP_DB_PASS
|
|
- _APP_LOGGING_CONFIG
|
|
- _APP_DATABASE_SHARED_TABLES
|
|
|
|
appwrite-worker-webhooks:
|
|
image: appwrite/appwrite:1.9.5
|
|
entrypoint: worker-webhooks
|
|
<<: *x-logging
|
|
restart: unless-stopped
|
|
depends_on:
|
|
- redis
|
|
- ${_APP_DB_HOST:-mongodb}
|
|
environment:
|
|
- _APP_ENV
|
|
- _APP_WORKERS_NUM=1
|
|
- _APP_WORKER_MAX_COROUTINES=8
|
|
- _APP_WORKER_PER_CORE
|
|
- _APP_POOL_ADAPTER
|
|
- _APP_OPENSSL_KEY_V1
|
|
- _APP_EMAIL_SECURITY
|
|
- _APP_DB_ADAPTER
|
|
- _APP_DB_HOST
|
|
- _APP_DB_PORT
|
|
- _APP_DB_SCHEMA
|
|
- _APP_DB_USER
|
|
- _APP_DB_PASS
|
|
- _APP_REDIS_HOST
|
|
- _APP_REDIS_PORT
|
|
- _APP_REDIS_USER
|
|
- _APP_REDIS_PASS
|
|
- _APP_LOGGING_CONFIG
|
|
- _APP_WEBHOOK_MAX_FAILED_ATTEMPTS
|
|
- _APP_DATABASE_SHARED_TABLES
|
|
|
|
appwrite-worker-deletes:
|
|
image: appwrite/appwrite:1.9.5
|
|
entrypoint: worker-deletes
|
|
<<: *x-logging
|
|
restart: unless-stopped
|
|
depends_on:
|
|
- redis
|
|
- ${_APP_DB_HOST:-mongodb}
|
|
volumes:
|
|
- appwrite-uploads:/storage/uploads:rw
|
|
- appwrite-cache:/storage/cache:rw
|
|
- appwrite-functions:/storage/functions:rw
|
|
- appwrite-sites:/storage/sites:rw
|
|
- appwrite-builds:/storage/builds:rw
|
|
- appwrite-certificates:/storage/certificates:rw
|
|
environment:
|
|
- _APP_ENV
|
|
- _APP_WORKERS_NUM=1
|
|
- _APP_WORKER_MAX_COROUTINES=8
|
|
- _APP_WORKER_PER_CORE
|
|
- _APP_POOL_ADAPTER
|
|
- _APP_OPENSSL_KEY_V1
|
|
- _APP_REDIS_HOST
|
|
- _APP_REDIS_PORT
|
|
- _APP_REDIS_USER
|
|
- _APP_REDIS_PASS
|
|
- _APP_DB_ADAPTER
|
|
- _APP_DB_HOST
|
|
- _APP_DB_PORT
|
|
- _APP_DB_SCHEMA
|
|
- _APP_DB_USER
|
|
- _APP_DB_PASS
|
|
- _APP_STORAGE_DEVICE
|
|
- _APP_STORAGE_S3_ACCESS_KEY
|
|
- _APP_STORAGE_S3_SECRET
|
|
- _APP_STORAGE_S3_REGION
|
|
- _APP_STORAGE_S3_BUCKET
|
|
- _APP_STORAGE_S3_ENDPOINT
|
|
- _APP_STORAGE_DO_SPACES_ACCESS_KEY
|
|
- _APP_STORAGE_DO_SPACES_SECRET
|
|
- _APP_STORAGE_DO_SPACES_REGION
|
|
- _APP_STORAGE_DO_SPACES_BUCKET
|
|
- _APP_STORAGE_BACKBLAZE_ACCESS_KEY
|
|
- _APP_STORAGE_BACKBLAZE_SECRET
|
|
- _APP_STORAGE_BACKBLAZE_REGION
|
|
- _APP_STORAGE_BACKBLAZE_BUCKET
|
|
- _APP_STORAGE_LINODE_ACCESS_KEY
|
|
- _APP_STORAGE_LINODE_SECRET
|
|
- _APP_STORAGE_LINODE_REGION
|
|
- _APP_STORAGE_LINODE_BUCKET
|
|
- _APP_STORAGE_WASABI_ACCESS_KEY
|
|
- _APP_STORAGE_WASABI_SECRET
|
|
- _APP_STORAGE_WASABI_REGION
|
|
- _APP_STORAGE_WASABI_BUCKET
|
|
- _APP_LOGGING_CONFIG
|
|
- _APP_EXECUTOR_SECRET
|
|
- _APP_EXECUTOR_HOST
|
|
- _APP_DATABASE_SHARED_TABLES
|
|
- _APP_EMAIL_CERTIFICATES
|
|
- _APP_MAINTENANCE_RETENTION_AUDIT
|
|
- _APP_MAINTENANCE_RETENTION_AUDIT_CONSOLE
|
|
|
|
appwrite-worker-databases:
|
|
image: appwrite/appwrite:1.9.5
|
|
entrypoint: worker-databases
|
|
<<: *x-logging
|
|
restart: unless-stopped
|
|
depends_on:
|
|
- redis
|
|
- ${_APP_DB_HOST:-mongodb}
|
|
environment:
|
|
- _APP_ENV
|
|
- _APP_WORKERS_NUM=1
|
|
- _APP_WORKER_MAX_COROUTINES=1
|
|
- _APP_WORKER_PER_CORE
|
|
- _APP_POOL_ADAPTER
|
|
- _APP_OPENSSL_KEY_V1
|
|
- _APP_REDIS_HOST
|
|
- _APP_REDIS_PORT
|
|
- _APP_REDIS_USER
|
|
- _APP_REDIS_PASS
|
|
- _APP_DB_ADAPTER
|
|
- _APP_DB_HOST
|
|
- _APP_DB_PORT
|
|
- _APP_DB_SCHEMA
|
|
- _APP_DB_USER
|
|
- _APP_DB_PASS
|
|
- _APP_DB_ADAPTER_VECTORSDB
|
|
- _APP_DB_HOST_VECTORSDB
|
|
- _APP_DB_PORT_VECTORSDB
|
|
- _APP_DB_SCHEMA_VECTORSDB
|
|
- _APP_DB_USER_VECTORSDB
|
|
- _APP_DB_PASS_VECTORSDB
|
|
- _APP_LOGGING_CONFIG
|
|
- _APP_QUEUE_NAME
|
|
- _APP_DATABASE_SHARED_TABLES
|
|
|
|
appwrite-worker-builds:
|
|
image: appwrite/appwrite:1.9.5
|
|
entrypoint: worker-builds
|
|
<<: *x-logging
|
|
restart: unless-stopped
|
|
depends_on:
|
|
- redis
|
|
- ${_APP_DB_HOST:-mongodb}
|
|
volumes:
|
|
- appwrite-functions:/storage/functions:rw
|
|
- appwrite-sites:/storage/sites:rw
|
|
- appwrite-builds:/storage/builds:rw
|
|
environment:
|
|
- _APP_ENV
|
|
- _APP_WORKERS_NUM=1
|
|
- _APP_WORKER_MAX_COROUTINES=8
|
|
- _APP_WORKER_PER_CORE
|
|
- _APP_POOL_ADAPTER
|
|
- _APP_OPENSSL_KEY_V1
|
|
- _APP_EXECUTOR_SECRET
|
|
- _APP_EXECUTOR_HOST
|
|
- _APP_REDIS_HOST
|
|
- _APP_REDIS_PORT
|
|
- _APP_REDIS_USER
|
|
- _APP_REDIS_PASS
|
|
- _APP_DB_ADAPTER
|
|
- _APP_DB_HOST
|
|
- _APP_DB_PORT
|
|
- _APP_DB_SCHEMA
|
|
- _APP_DB_USER
|
|
- _APP_DB_PASS
|
|
- _APP_LOGGING_CONFIG
|
|
- _APP_VCS_GITHUB_APP_NAME
|
|
- _APP_VCS_GITHUB_PRIVATE_KEY
|
|
- _APP_VCS_GITHUB_APP_ID
|
|
- _APP_FUNCTIONS_TIMEOUT
|
|
- _APP_SITES_TIMEOUT
|
|
- _APP_COMPUTE_BUILD_TIMEOUT
|
|
- _APP_COMPUTE_CPUS
|
|
- _APP_COMPUTE_MEMORY
|
|
- _APP_OPEN_RUNTIMES_NFT
|
|
- _APP_COMPUTE_SIZE_LIMIT
|
|
- _APP_OPTIONS_FORCE_HTTPS
|
|
- _APP_OPTIONS_ROUTER_FORCE_HTTPS
|
|
- _APP_DOMAIN
|
|
- _APP_CONSOLE_DOMAIN
|
|
- _APP_CONSOLE_TRUSTED_PROJECTS
|
|
- _APP_STORAGE_DEVICE
|
|
- _APP_STORAGE_S3_ACCESS_KEY
|
|
- _APP_STORAGE_S3_SECRET
|
|
- _APP_STORAGE_S3_REGION
|
|
- _APP_STORAGE_S3_BUCKET
|
|
- _APP_STORAGE_S3_ENDPOINT
|
|
- _APP_STORAGE_DO_SPACES_ACCESS_KEY
|
|
- _APP_STORAGE_DO_SPACES_SECRET
|
|
- _APP_STORAGE_DO_SPACES_REGION
|
|
- _APP_STORAGE_DO_SPACES_BUCKET
|
|
- _APP_STORAGE_BACKBLAZE_ACCESS_KEY
|
|
- _APP_STORAGE_BACKBLAZE_SECRET
|
|
- _APP_STORAGE_BACKBLAZE_REGION
|
|
- _APP_STORAGE_BACKBLAZE_BUCKET
|
|
- _APP_STORAGE_LINODE_ACCESS_KEY
|
|
- _APP_STORAGE_LINODE_SECRET
|
|
- _APP_STORAGE_LINODE_REGION
|
|
- _APP_STORAGE_LINODE_BUCKET
|
|
- _APP_STORAGE_WASABI_ACCESS_KEY
|
|
- _APP_STORAGE_WASABI_SECRET
|
|
- _APP_STORAGE_WASABI_REGION
|
|
- _APP_STORAGE_WASABI_BUCKET
|
|
- _APP_DATABASE_SHARED_TABLES
|
|
- _APP_DOMAIN_SITES
|
|
extra_hosts:
|
|
- host.docker.internal:host-gateway
|
|
|
|
appwrite-worker-screenshots:
|
|
image: appwrite/appwrite:1.9.5
|
|
entrypoint: worker-screenshots
|
|
<<: *x-logging
|
|
restart: unless-stopped
|
|
depends_on:
|
|
- redis
|
|
- ${_APP_DB_HOST:-mongodb}
|
|
volumes:
|
|
- appwrite-uploads:/storage/uploads:rw
|
|
environment:
|
|
- _APP_BROWSER_HOST
|
|
- _APP_WORKER_SCREENSHOTS_ROUTER
|
|
- _APP_OPTIONS_FORCE_HTTPS
|
|
- _APP_ENV
|
|
- _APP_WORKERS_NUM=1
|
|
- _APP_WORKER_MAX_COROUTINES=8
|
|
- _APP_WORKER_PER_CORE
|
|
- _APP_POOL_ADAPTER
|
|
- _APP_LOGGING_CONFIG
|
|
- _APP_OPENSSL_KEY_V1
|
|
- _APP_REDIS_HOST
|
|
- _APP_REDIS_PORT
|
|
- _APP_REDIS_USER
|
|
- _APP_REDIS_PASS
|
|
- _APP_DB_ADAPTER
|
|
- _APP_DB_HOST
|
|
- _APP_DB_PORT
|
|
- _APP_DB_SCHEMA
|
|
- _APP_DB_USER
|
|
- _APP_DB_PASS
|
|
- _APP_DATABASE_SHARED_TABLES
|
|
- _APP_STORAGE_DEVICE
|
|
- _APP_STORAGE_S3_ACCESS_KEY
|
|
- _APP_STORAGE_S3_SECRET
|
|
- _APP_STORAGE_S3_REGION
|
|
- _APP_STORAGE_S3_BUCKET
|
|
- _APP_STORAGE_S3_ENDPOINT
|
|
- _APP_STORAGE_DO_SPACES_ACCESS_KEY
|
|
- _APP_STORAGE_DO_SPACES_SECRET
|
|
- _APP_STORAGE_DO_SPACES_REGION
|
|
- _APP_STORAGE_DO_SPACES_BUCKET
|
|
- _APP_STORAGE_BACKBLAZE_ACCESS_KEY
|
|
- _APP_STORAGE_BACKBLAZE_SECRET
|
|
- _APP_STORAGE_BACKBLAZE_REGION
|
|
- _APP_STORAGE_BACKBLAZE_BUCKET
|
|
- _APP_STORAGE_LINODE_ACCESS_KEY
|
|
- _APP_STORAGE_LINODE_SECRET
|
|
- _APP_STORAGE_LINODE_REGION
|
|
- _APP_STORAGE_LINODE_BUCKET
|
|
- _APP_STORAGE_WASABI_ACCESS_KEY
|
|
- _APP_STORAGE_WASABI_SECRET
|
|
- _APP_STORAGE_WASABI_REGION
|
|
- _APP_STORAGE_WASABI_BUCKET
|
|
extra_hosts:
|
|
- host.docker.internal:host-gateway
|
|
|
|
appwrite-worker-certificates:
|
|
image: appwrite/appwrite:1.9.5
|
|
entrypoint: worker-certificates
|
|
<<: *x-logging
|
|
restart: unless-stopped
|
|
depends_on:
|
|
- redis
|
|
- ${_APP_DB_HOST:-mongodb}
|
|
volumes:
|
|
- appwrite-config:/storage/config:rw
|
|
- appwrite-certificates:/storage/certificates:rw
|
|
environment:
|
|
- _APP_ENV
|
|
- _APP_WORKERS_NUM=1
|
|
- _APP_WORKER_MAX_COROUTINES=8
|
|
- _APP_WORKER_PER_CORE
|
|
- _APP_POOL_ADAPTER
|
|
- _APP_OPENSSL_KEY_V1
|
|
- _APP_DOMAIN
|
|
- _APP_DOMAIN_TARGET_CNAME
|
|
- _APP_DOMAIN_TARGET_AAAA
|
|
- _APP_DOMAIN_TARGET_A
|
|
- _APP_DOMAIN_TARGET_CAA
|
|
- _APP_DNS
|
|
- _APP_DOMAIN_FUNCTIONS
|
|
- _APP_DOMAIN_SITES
|
|
- _APP_EMAIL_CERTIFICATES
|
|
- _APP_REDIS_HOST
|
|
- _APP_REDIS_PORT
|
|
- _APP_REDIS_USER
|
|
- _APP_REDIS_PASS
|
|
- _APP_DB_ADAPTER
|
|
- _APP_DB_HOST
|
|
- _APP_DB_PORT
|
|
- _APP_DB_SCHEMA
|
|
- _APP_DB_USER
|
|
- _APP_DB_PASS
|
|
- _APP_LOGGING_CONFIG
|
|
- _APP_DATABASE_SHARED_TABLES
|
|
|
|
appwrite-worker-executions:
|
|
image: appwrite/appwrite:1.9.5
|
|
entrypoint: worker-executions
|
|
<<: *x-logging
|
|
restart: unless-stopped
|
|
depends_on:
|
|
- redis
|
|
- ${_APP_DB_HOST:-mongodb}
|
|
environment:
|
|
- _APP_ENV
|
|
- _APP_WORKERS_NUM=1
|
|
- _APP_WORKER_MAX_COROUTINES=8
|
|
- _APP_WORKER_PER_CORE
|
|
- _APP_POOL_ADAPTER
|
|
- _APP_OPENSSL_KEY_V1
|
|
- _APP_REDIS_HOST
|
|
- _APP_REDIS_PORT
|
|
- _APP_REDIS_USER
|
|
- _APP_REDIS_PASS
|
|
- _APP_DB_ADAPTER
|
|
- _APP_DB_HOST
|
|
- _APP_DB_PORT
|
|
- _APP_DB_SCHEMA
|
|
- _APP_DB_USER
|
|
- _APP_DB_PASS
|
|
- _APP_LOGGING_CONFIG
|
|
- _APP_DATABASE_SHARED_TABLES
|
|
|
|
appwrite-worker-functions:
|
|
image: appwrite/appwrite:1.9.5
|
|
entrypoint: worker-functions
|
|
<<: *x-logging
|
|
restart: unless-stopped
|
|
depends_on:
|
|
- ${_APP_DB_HOST:-mongodb}
|
|
- redis
|
|
- openruntimes-executor
|
|
environment:
|
|
- _APP_ENV
|
|
- _APP_WORKERS_NUM=1
|
|
- _APP_WORKER_MAX_COROUTINES=8
|
|
- _APP_WORKER_PER_CORE
|
|
- _APP_POOL_ADAPTER
|
|
- _APP_OPENSSL_KEY_V1
|
|
- _APP_DOMAIN
|
|
- _APP_OPTIONS_FORCE_HTTPS
|
|
- _APP_REDIS_HOST
|
|
- _APP_REDIS_PORT
|
|
- _APP_REDIS_USER
|
|
- _APP_REDIS_PASS
|
|
- _APP_DB_ADAPTER
|
|
- _APP_DB_HOST
|
|
- _APP_DB_PORT
|
|
- _APP_DB_SCHEMA
|
|
- _APP_DB_USER
|
|
- _APP_DB_PASS
|
|
- _APP_FUNCTIONS_TIMEOUT
|
|
- _APP_SITES_TIMEOUT
|
|
- _APP_COMPUTE_BUILD_TIMEOUT
|
|
- _APP_COMPUTE_CPUS
|
|
- _APP_COMPUTE_MEMORY
|
|
- _APP_EXECUTOR_SECRET
|
|
- _APP_EXECUTOR_HOST
|
|
- _APP_USAGE_STATS
|
|
- _APP_DOCKER_HUB_USERNAME
|
|
- _APP_DOCKER_HUB_PASSWORD
|
|
- _APP_LOGGING_CONFIG
|
|
- _APP_LOGGING_PROVIDER
|
|
- _APP_DATABASE_SHARED_TABLES
|
|
|
|
appwrite-worker-mails:
|
|
image: appwrite/appwrite:1.9.5
|
|
entrypoint: worker-mails
|
|
<<: *x-logging
|
|
restart: unless-stopped
|
|
depends_on:
|
|
- redis
|
|
environment:
|
|
- _APP_ENV
|
|
- _APP_WORKERS_NUM=1
|
|
- _APP_WORKER_MAX_COROUTINES=1
|
|
- _APP_WORKER_PER_CORE
|
|
- _APP_POOL_ADAPTER
|
|
- _APP_OPENSSL_KEY_V1
|
|
- _APP_SYSTEM_EMAIL_NAME
|
|
- _APP_SYSTEM_EMAIL_ADDRESS
|
|
- _APP_REDIS_HOST
|
|
- _APP_REDIS_PORT
|
|
- _APP_REDIS_USER
|
|
- _APP_REDIS_PASS
|
|
- _APP_DB_HOST
|
|
- _APP_DB_PORT
|
|
- _APP_DB_SCHEMA
|
|
- _APP_DB_USER
|
|
- _APP_DB_PASS
|
|
- _APP_DB_ADAPTER
|
|
- _APP_SMTP_HOST
|
|
- _APP_SMTP_PORT
|
|
- _APP_SMTP_SECURE
|
|
- _APP_SMTP_USERNAME
|
|
- _APP_SMTP_PASSWORD
|
|
- _APP_LOGGING_CONFIG
|
|
- _APP_DOMAIN
|
|
- _APP_OPTIONS_FORCE_HTTPS
|
|
- _APP_DATABASE_SHARED_TABLES
|
|
|
|
appwrite-worker-messaging:
|
|
image: appwrite/appwrite:1.9.5
|
|
entrypoint: worker-messaging
|
|
<<: *x-logging
|
|
restart: unless-stopped
|
|
volumes:
|
|
- appwrite-uploads:/storage/uploads:rw
|
|
depends_on:
|
|
- redis
|
|
environment:
|
|
- _APP_ENV
|
|
- _APP_WORKERS_NUM=1
|
|
- _APP_WORKER_MAX_COROUTINES=1
|
|
- _APP_WORKER_PER_CORE
|
|
- _APP_POOL_ADAPTER
|
|
- _APP_OPENSSL_KEY_V1
|
|
- _APP_REDIS_HOST
|
|
- _APP_REDIS_PORT
|
|
- _APP_REDIS_USER
|
|
- _APP_REDIS_PASS
|
|
- _APP_DB_ADAPTER
|
|
- _APP_DB_HOST
|
|
- _APP_DB_PORT
|
|
- _APP_DB_SCHEMA
|
|
- _APP_DB_USER
|
|
- _APP_DB_PASS
|
|
- _APP_LOGGING_CONFIG
|
|
- _APP_SMS_FROM
|
|
- _APP_SMS_PROVIDER
|
|
- _APP_SMS_PROJECTS_DENY_LIST
|
|
- _APP_STORAGE_DEVICE
|
|
- _APP_STORAGE_S3_ACCESS_KEY
|
|
- _APP_STORAGE_S3_SECRET
|
|
- _APP_STORAGE_S3_REGION
|
|
- _APP_STORAGE_S3_BUCKET
|
|
- _APP_STORAGE_S3_ENDPOINT
|
|
- _APP_STORAGE_DO_SPACES_ACCESS_KEY
|
|
- _APP_STORAGE_DO_SPACES_SECRET
|
|
- _APP_STORAGE_DO_SPACES_REGION
|
|
- _APP_STORAGE_DO_SPACES_BUCKET
|
|
- _APP_STORAGE_BACKBLAZE_ACCESS_KEY
|
|
- _APP_STORAGE_BACKBLAZE_SECRET
|
|
- _APP_STORAGE_BACKBLAZE_REGION
|
|
- _APP_STORAGE_BACKBLAZE_BUCKET
|
|
- _APP_STORAGE_LINODE_ACCESS_KEY
|
|
- _APP_STORAGE_LINODE_SECRET
|
|
- _APP_STORAGE_LINODE_REGION
|
|
- _APP_STORAGE_LINODE_BUCKET
|
|
- _APP_STORAGE_WASABI_ACCESS_KEY
|
|
- _APP_STORAGE_WASABI_SECRET
|
|
- _APP_STORAGE_WASABI_REGION
|
|
- _APP_STORAGE_WASABI_BUCKET
|
|
- _APP_DATABASE_SHARED_TABLES
|
|
|
|
appwrite-worker-migrations:
|
|
image: appwrite/appwrite:1.9.5
|
|
entrypoint: worker-migrations
|
|
<<: *x-logging
|
|
restart: unless-stopped
|
|
volumes:
|
|
- appwrite-imports:/storage/imports:rw
|
|
- appwrite-uploads:/storage/uploads:rw
|
|
depends_on:
|
|
- ${_APP_DB_HOST:-mongodb}
|
|
environment:
|
|
- _APP_ENV
|
|
- _APP_WORKERS_NUM=1
|
|
- _APP_WORKER_MAX_COROUTINES=1
|
|
- _APP_WORKER_PER_CORE
|
|
- _APP_POOL_ADAPTER
|
|
- _APP_OPENSSL_KEY_V1
|
|
- _APP_DOMAIN
|
|
- _APP_DOMAIN_TARGET_CNAME
|
|
- _APP_DOMAIN_TARGET_AAAA
|
|
- _APP_DOMAIN_TARGET_A
|
|
- _APP_DOMAIN_TARGET_CAA
|
|
- _APP_DNS
|
|
- _APP_EMAIL_SECURITY
|
|
- _APP_REDIS_HOST
|
|
- _APP_REDIS_PORT
|
|
- _APP_REDIS_USER
|
|
- _APP_REDIS_PASS
|
|
- _APP_DB_ADAPTER
|
|
- _APP_DB_HOST
|
|
- _APP_DB_PORT
|
|
- _APP_DB_SCHEMA
|
|
- _APP_DB_USER
|
|
- _APP_DB_PASS
|
|
- _APP_LOGGING_CONFIG
|
|
- _APP_MIGRATIONS_FIREBASE_CLIENT_ID
|
|
- _APP_MIGRATIONS_FIREBASE_CLIENT_SECRET
|
|
- _APP_DATABASE_SHARED_TABLES
|
|
- _APP_OPTIONS_FORCE_HTTPS
|
|
- _APP_MIGRATION_HOST
|
|
|
|
appwrite-task-maintenance:
|
|
image: appwrite/appwrite:1.9.5
|
|
entrypoint: maintenance
|
|
<<: *x-logging
|
|
restart: unless-stopped
|
|
depends_on:
|
|
- ${_APP_DB_HOST:-mongodb}
|
|
- redis
|
|
environment:
|
|
- _APP_ENV
|
|
- _APP_WORKER_PER_CORE
|
|
- _APP_POOL_ADAPTER
|
|
- _APP_DOMAIN
|
|
- _APP_DOMAIN_TARGET_CNAME
|
|
- _APP_DOMAIN_TARGET_AAAA
|
|
- _APP_DOMAIN_TARGET_A
|
|
- _APP_DOMAIN_TARGET_CAA
|
|
- _APP_DNS
|
|
- _APP_DOMAIN_FUNCTIONS
|
|
- _APP_OPENSSL_KEY_V1
|
|
- _APP_REDIS_HOST
|
|
- _APP_REDIS_PORT
|
|
- _APP_REDIS_USER
|
|
- _APP_REDIS_PASS
|
|
- _APP_DB_ADAPTER
|
|
- _APP_DB_HOST
|
|
- _APP_DB_PORT
|
|
- _APP_DB_SCHEMA
|
|
- _APP_DB_USER
|
|
- _APP_DB_PASS
|
|
- _APP_MAINTENANCE_INTERVAL
|
|
- _APP_MAINTENANCE_RETENTION_EXECUTION
|
|
- _APP_MAINTENANCE_RETENTION_CACHE
|
|
- _APP_MAINTENANCE_RETENTION_ABUSE
|
|
- _APP_MAINTENANCE_RETENTION_AUDIT
|
|
- _APP_MAINTENANCE_RETENTION_AUDIT_CONSOLE
|
|
- _APP_MAINTENANCE_RETENTION_USAGE_HOURLY
|
|
- _APP_MAINTENANCE_RETENTION_SCHEDULES
|
|
- _APP_MAINTENANCE_START_TIME
|
|
- _APP_DATABASE_SHARED_TABLES
|
|
|
|
appwrite-task-interval:
|
|
image: appwrite/appwrite:1.9.5
|
|
entrypoint: interval
|
|
<<: *x-logging
|
|
restart: unless-stopped
|
|
depends_on:
|
|
- ${_APP_DB_HOST:-mongodb}
|
|
- redis
|
|
environment:
|
|
- _APP_ENV
|
|
- _APP_WORKER_PER_CORE
|
|
- _APP_POOL_ADAPTER
|
|
- _APP_DOMAIN
|
|
- _APP_DOMAIN_TARGET_CNAME
|
|
- _APP_DOMAIN_TARGET_AAAA
|
|
- _APP_DOMAIN_TARGET_A
|
|
- _APP_DOMAIN_TARGET_CAA
|
|
- _APP_DNS
|
|
- _APP_DOMAIN_FUNCTIONS
|
|
- _APP_DOMAIN_SITES
|
|
- _APP_OPENSSL_KEY_V1
|
|
- _APP_REDIS_HOST
|
|
- _APP_REDIS_PORT
|
|
- _APP_REDIS_USER
|
|
- _APP_REDIS_PASS
|
|
- _APP_DB_ADAPTER
|
|
- _APP_DB_HOST
|
|
- _APP_DB_PORT
|
|
- _APP_DB_SCHEMA
|
|
- _APP_DB_USER
|
|
- _APP_DB_PASS
|
|
- _APP_DATABASE_SHARED_TABLES
|
|
- _APP_INTERVAL_DOMAIN_VERIFICATION
|
|
- _APP_INTERVAL_CLEANUP_STALE_EXECUTIONS
|
|
|
|
appwrite-task-stats-resources:
|
|
image: appwrite/appwrite:1.9.5
|
|
entrypoint: stats-resources
|
|
<<: *x-logging
|
|
restart: unless-stopped
|
|
depends_on:
|
|
- redis
|
|
- ${_APP_DB_HOST:-mongodb}
|
|
environment:
|
|
- _APP_ENV
|
|
- _APP_WORKER_PER_CORE
|
|
- _APP_POOL_ADAPTER
|
|
- _APP_OPENSSL_KEY_V1
|
|
- _APP_DB_ADAPTER
|
|
- _APP_DB_HOST
|
|
- _APP_DB_PORT
|
|
- _APP_DB_SCHEMA
|
|
- _APP_DB_USER
|
|
- _APP_DB_PASS
|
|
- _APP_REDIS_HOST
|
|
- _APP_REDIS_PORT
|
|
- _APP_REDIS_USER
|
|
- _APP_REDIS_PASS
|
|
- _APP_USAGE_STATS
|
|
- _APP_LOGGING_CONFIG
|
|
- _APP_DATABASE_SHARED_TABLES
|
|
- _APP_STATS_RESOURCES_INTERVAL
|
|
|
|
appwrite-worker-stats-resources:
|
|
image: appwrite/appwrite:1.9.5
|
|
entrypoint: worker-stats-resources
|
|
<<: *x-logging
|
|
restart: unless-stopped
|
|
depends_on:
|
|
- redis
|
|
- ${_APP_DB_HOST:-mongodb}
|
|
environment:
|
|
- _APP_ENV
|
|
- _APP_WORKERS_NUM=1
|
|
- _APP_WORKER_MAX_COROUTINES=1
|
|
- _APP_WORKER_PER_CORE
|
|
- _APP_POOL_ADAPTER
|
|
- _APP_OPENSSL_KEY_V1
|
|
- _APP_DB_ADAPTER
|
|
- _APP_DB_HOST
|
|
- _APP_DB_PORT
|
|
- _APP_DB_SCHEMA
|
|
- _APP_DB_USER
|
|
- _APP_DB_PASS
|
|
- _APP_REDIS_HOST
|
|
- _APP_REDIS_PORT
|
|
- _APP_REDIS_USER
|
|
- _APP_REDIS_PASS
|
|
- _APP_USAGE_STATS
|
|
- _APP_LOGGING_CONFIG
|
|
- _APP_USAGE_AGGREGATION_INTERVAL
|
|
- _APP_DATABASE_SHARED_TABLES
|
|
|
|
appwrite-worker-stats-usage:
|
|
image: appwrite/appwrite:1.9.5
|
|
entrypoint: worker-stats-usage
|
|
<<: *x-logging
|
|
restart: unless-stopped
|
|
depends_on:
|
|
- redis
|
|
- ${_APP_DB_HOST:-mongodb}
|
|
environment:
|
|
- _APP_ENV
|
|
- _APP_WORKERS_NUM=1
|
|
- _APP_WORKER_MAX_COROUTINES=1
|
|
- _APP_WORKER_PER_CORE
|
|
- _APP_POOL_ADAPTER
|
|
- _APP_OPENSSL_KEY_V1
|
|
- _APP_DB_ADAPTER
|
|
- _APP_DB_HOST
|
|
- _APP_DB_PORT
|
|
- _APP_DB_SCHEMA
|
|
- _APP_DB_USER
|
|
- _APP_DB_PASS
|
|
- _APP_REDIS_HOST
|
|
- _APP_REDIS_PORT
|
|
- _APP_REDIS_USER
|
|
- _APP_REDIS_PASS
|
|
- _APP_USAGE_STATS
|
|
- _APP_LOGGING_CONFIG
|
|
- _APP_USAGE_AGGREGATION_INTERVAL
|
|
- _APP_DATABASE_SHARED_TABLES
|
|
|
|
appwrite-task-scheduler-functions:
|
|
image: appwrite/appwrite:1.9.5
|
|
entrypoint: schedule-functions
|
|
<<: *x-logging
|
|
restart: unless-stopped
|
|
depends_on:
|
|
- ${_APP_DB_HOST:-mongodb}
|
|
- redis
|
|
environment:
|
|
- _APP_ENV
|
|
- _APP_WORKER_PER_CORE
|
|
- _APP_POOL_ADAPTER
|
|
- _APP_OPENSSL_KEY_V1
|
|
- _APP_OPTIONS_FORCE_HTTPS
|
|
- _APP_DOMAIN
|
|
- _APP_CONSOLE_DOMAIN
|
|
- _APP_DOMAIN_FUNCTIONS
|
|
- _APP_DOMAIN_SITES
|
|
- _APP_MIGRATION_HOST
|
|
- _APP_CONSOLE_SCHEMA
|
|
- _APP_REDIS_HOST
|
|
- _APP_REDIS_PORT
|
|
- _APP_REDIS_USER
|
|
- _APP_REDIS_PASS
|
|
- _APP_DB_ADAPTER
|
|
- _APP_DB_HOST
|
|
- _APP_DB_PORT
|
|
- _APP_DB_SCHEMA
|
|
- _APP_DB_USER
|
|
- _APP_DB_PASS
|
|
- _APP_DATABASE_SHARED_TABLES
|
|
|
|
appwrite-task-scheduler-executions:
|
|
image: appwrite/appwrite:1.9.5
|
|
entrypoint: schedule-executions
|
|
<<: *x-logging
|
|
restart: unless-stopped
|
|
depends_on:
|
|
- ${_APP_DB_HOST:-mongodb}
|
|
- redis
|
|
environment:
|
|
- _APP_ENV
|
|
- _APP_WORKER_PER_CORE
|
|
- _APP_POOL_ADAPTER
|
|
- _APP_OPENSSL_KEY_V1
|
|
- _APP_OPTIONS_FORCE_HTTPS
|
|
- _APP_DOMAIN
|
|
- _APP_CONSOLE_DOMAIN
|
|
- _APP_DOMAIN_FUNCTIONS
|
|
- _APP_DOMAIN_SITES
|
|
- _APP_MIGRATION_HOST
|
|
- _APP_CONSOLE_SCHEMA
|
|
- _APP_REDIS_HOST
|
|
- _APP_REDIS_PORT
|
|
- _APP_REDIS_USER
|
|
- _APP_REDIS_PASS
|
|
- _APP_DB_ADAPTER
|
|
- _APP_DB_HOST
|
|
- _APP_DB_PORT
|
|
- _APP_DB_SCHEMA
|
|
- _APP_DB_USER
|
|
- _APP_DB_PASS
|
|
- _APP_DATABASE_SHARED_TABLES
|
|
|
|
appwrite-task-scheduler-messages:
|
|
image: appwrite/appwrite:1.9.5
|
|
entrypoint: schedule-messages
|
|
<<: *x-logging
|
|
restart: unless-stopped
|
|
depends_on:
|
|
- ${_APP_DB_HOST:-mongodb}
|
|
- redis
|
|
environment:
|
|
- _APP_ENV
|
|
- _APP_WORKER_PER_CORE
|
|
- _APP_POOL_ADAPTER
|
|
- _APP_OPENSSL_KEY_V1
|
|
- _APP_REDIS_HOST
|
|
- _APP_REDIS_PORT
|
|
- _APP_REDIS_USER
|
|
- _APP_REDIS_PASS
|
|
- _APP_DB_ADAPTER
|
|
- _APP_DB_HOST
|
|
- _APP_DB_PORT
|
|
- _APP_DB_SCHEMA
|
|
- _APP_DB_USER
|
|
- _APP_DB_PASS
|
|
- _APP_DATABASE_SHARED_TABLES
|
|
|
|
appwrite-assistant:
|
|
image: appwrite/assistant:0.8.4
|
|
<<: *x-logging
|
|
restart: unless-stopped
|
|
environment:
|
|
- _APP_ASSISTANT_OPENAI_API_KEY
|
|
|
|
appwrite-browser:
|
|
image: appwrite/browser:0.3.2
|
|
<<: *x-logging
|
|
restart: unless-stopped
|
|
|
|
openruntimes-executor:
|
|
hostname: openruntimes-executor
|
|
<<: *x-logging
|
|
restart: unless-stopped
|
|
stop_signal: SIGINT
|
|
image: openruntimes/executor:0.25.1
|
|
volumes:
|
|
- /var/run/docker.sock:/var/run/docker.sock
|
|
- appwrite-builds:/storage/builds:rw
|
|
- appwrite-functions:/storage/functions:rw
|
|
- appwrite-sites:/storage/sites:rw
|
|
# Host mount necessary 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)
|
|
- /tmp:/tmp:rw
|
|
environment:
|
|
- OPR_EXECUTOR_CONNECTION_STORAGE=local://localhost
|
|
- OPR_EXECUTOR_CONNECTION_BUILD_CACHE_STORAGE=
|
|
- OPR_EXECUTOR_IMAGES=$_APP_EXECUTOR_IMAGES
|
|
- OPR_EXECUTOR_INACTIVE_THRESHOLD=$_APP_COMPUTE_INACTIVE_THRESHOLD
|
|
- OPR_EXECUTOR_MAINTENANCE_INTERVAL=$_APP_COMPUTE_MAINTENANCE_INTERVAL
|
|
- OPR_EXECUTOR_NETWORK=$_APP_COMPUTE_RUNTIMES_NETWORK
|
|
- OPR_EXECUTOR_DOCKER_HUB_USERNAME=$_APP_DOCKER_HUB_USERNAME
|
|
- OPR_EXECUTOR_DOCKER_HUB_PASSWORD=$_APP_DOCKER_HUB_PASSWORD
|
|
- OPR_EXECUTOR_ENV=$_APP_ENV
|
|
- OPR_EXECUTOR_RUNTIMES=$_APP_FUNCTIONS_RUNTIMES,$_APP_SITES_RUNTIMES
|
|
- OPR_EXECUTOR_SECRET=$_APP_EXECUTOR_SECRET
|
|
- OPR_EXECUTOR_RUNTIME_VERSIONS=v5
|
|
- OPEN_RUNTIMES_NFT=$_APP_OPEN_RUNTIMES_NFT
|
|
- OPR_EXECUTOR_LOGGING_CONFIG=$_APP_LOGGING_CONFIG
|
|
- OPR_EXECUTOR_STORAGE_DEVICE=$_APP_STORAGE_DEVICE
|
|
- OPR_EXECUTOR_STORAGE_S3_ACCESS_KEY=$_APP_STORAGE_S3_ACCESS_KEY
|
|
- OPR_EXECUTOR_STORAGE_S3_SECRET=$_APP_STORAGE_S3_SECRET
|
|
- OPR_EXECUTOR_STORAGE_S3_REGION=$_APP_STORAGE_S3_REGION
|
|
- OPR_EXECUTOR_STORAGE_S3_BUCKET=$_APP_STORAGE_S3_BUCKET
|
|
- OPR_EXECUTOR_STORAGE_S3_ENDPOINT=$_APP_STORAGE_S3_ENDPOINT
|
|
- OPR_EXECUTOR_STORAGE_DO_SPACES_ACCESS_KEY=$_APP_STORAGE_DO_SPACES_ACCESS_KEY
|
|
- OPR_EXECUTOR_STORAGE_DO_SPACES_SECRET=$_APP_STORAGE_DO_SPACES_SECRET
|
|
- OPR_EXECUTOR_STORAGE_DO_SPACES_REGION=$_APP_STORAGE_DO_SPACES_REGION
|
|
- OPR_EXECUTOR_STORAGE_DO_SPACES_BUCKET=$_APP_STORAGE_DO_SPACES_BUCKET
|
|
- OPR_EXECUTOR_STORAGE_BACKBLAZE_ACCESS_KEY=$_APP_STORAGE_BACKBLAZE_ACCESS_KEY
|
|
- OPR_EXECUTOR_STORAGE_BACKBLAZE_SECRET=$_APP_STORAGE_BACKBLAZE_SECRET
|
|
- OPR_EXECUTOR_STORAGE_BACKBLAZE_REGION=$_APP_STORAGE_BACKBLAZE_REGION
|
|
- OPR_EXECUTOR_STORAGE_BACKBLAZE_BUCKET=$_APP_STORAGE_BACKBLAZE_BUCKET
|
|
- OPR_EXECUTOR_STORAGE_LINODE_ACCESS_KEY=$_APP_STORAGE_LINODE_ACCESS_KEY
|
|
- OPR_EXECUTOR_STORAGE_LINODE_SECRET=$_APP_STORAGE_LINODE_SECRET
|
|
- OPR_EXECUTOR_STORAGE_LINODE_REGION=$_APP_STORAGE_LINODE_REGION
|
|
- OPR_EXECUTOR_STORAGE_LINODE_BUCKET=$_APP_STORAGE_LINODE_BUCKET
|
|
- OPR_EXECUTOR_STORAGE_WASABI_ACCESS_KEY=$_APP_STORAGE_WASABI_ACCESS_KEY
|
|
- OPR_EXECUTOR_STORAGE_WASABI_SECRET=$_APP_STORAGE_WASABI_SECRET
|
|
- OPR_EXECUTOR_STORAGE_WASABI_REGION=$_APP_STORAGE_WASABI_REGION
|
|
- OPR_EXECUTOR_STORAGE_WASABI_BUCKET=$_APP_STORAGE_WASABI_BUCKET
|
|
healthcheck:
|
|
test:
|
|
- CMD-SHELL
|
|
- 'curl -fsS -H "Authorization: Bearer $$OPR_EXECUTOR_SECRET" http://localhost/v1/health >/dev/null'
|
|
interval: 5s
|
|
timeout: 3s
|
|
retries: 20
|
|
start_period: 5s
|
|
|
|
mongodb:
|
|
image: mongo:8.2.5
|
|
<<: *x-logging
|
|
restart: unless-stopped
|
|
volumes:
|
|
- appwrite-mongodb:/data/db
|
|
- appwrite-mongodb-keyfile:/data/keyfile
|
|
- ../files/mongo-init.js:/docker-entrypoint-initdb.d/mongo-init.js:ro
|
|
- ../files/mongo-entrypoint.sh:/mongo-entrypoint.sh:ro
|
|
environment:
|
|
- MONGO_INITDB_ROOT_USERNAME=root
|
|
- MONGO_INITDB_ROOT_PASSWORD=${_APP_DB_ROOT_PASS}
|
|
- MONGO_INITDB_DATABASE=${_APP_DB_SCHEMA}
|
|
- MONGO_INITDB_USERNAME=${_APP_DB_USER}
|
|
- MONGO_INITDB_PASSWORD=${_APP_DB_PASS}
|
|
entrypoint:
|
|
- /bin/bash
|
|
- /mongo-entrypoint.sh
|
|
healthcheck:
|
|
test: |
|
|
bash -c "
|
|
mongosh -u root -p \"$$MONGO_INITDB_ROOT_PASSWORD\" --authenticationDatabase admin --quiet --eval \"
|
|
try {
|
|
const hello = db.adminCommand({hello: 1});
|
|
if (hello.isWritablePrimary) {
|
|
quit(0);
|
|
}
|
|
} catch (e) {}
|
|
|
|
try {
|
|
rs.initiate({_id: 'rs0', members: [{_id: 0, host: 'mongodb:27017'}]});
|
|
} catch (e) {}
|
|
|
|
quit(1);
|
|
\" 2>/dev/null
|
|
"
|
|
interval: 10s
|
|
timeout: 10s
|
|
retries: 10
|
|
start_period: 30s
|
|
|
|
mariadb:
|
|
image: mariadb:10.11 # fix issues when upgrading using: mysql_upgrade -u root -p
|
|
<<: *x-logging
|
|
restart: unless-stopped
|
|
volumes:
|
|
- appwrite-mariadb:/var/lib/mysql:rw
|
|
environment:
|
|
- MYSQL_ROOT_PASSWORD=${_APP_DB_ROOT_PASS}
|
|
- MYSQL_DATABASE=${_APP_DB_SCHEMA}
|
|
- MYSQL_USER=${_APP_DB_USER}
|
|
- MYSQL_PASSWORD=${_APP_DB_PASS}
|
|
- MARIADB_AUTO_UPGRADE=1
|
|
command: "mysqld --innodb-flush-method=fsync"
|
|
|
|
redis:
|
|
image: redis:7.4.7-alpine
|
|
<<: *x-logging
|
|
restart: unless-stopped
|
|
command: >
|
|
redis-server
|
|
--maxmemory 512mb
|
|
--maxmemory-policy allkeys-lru
|
|
--maxmemory-samples 5
|
|
volumes:
|
|
- appwrite-redis:/data:rw
|
|
|
|
# clamav:
|
|
# image: appwrite/clamav:1.2.0
|
|
# restart: unless-stopped
|
|
# volumes:
|
|
# - appwrite-uploads:/storage/uploads
|
|
|
|
volumes:
|
|
appwrite-mariadb:
|
|
appwrite-mongodb:
|
|
appwrite-mongodb-keyfile:
|
|
appwrite-redis:
|
|
appwrite-cache:
|
|
appwrite-uploads:
|
|
appwrite-imports:
|
|
appwrite-certificates:
|
|
appwrite-functions:
|
|
appwrite-sites:
|
|
appwrite-builds:
|
|
appwrite-config:
|