838 lines
33 KiB
YAML
838 lines
33 KiB
YAML
# WARNING!
|
|
x-logging: &x-logging
|
|
logging:
|
|
driver: 'json-file'
|
|
options:
|
|
max-file: '5'
|
|
max-size: '10m'
|
|
version: '3'
|
|
|
|
services:
|
|
traefik:
|
|
image: docker.io/traefik:2.9
|
|
container_name: appwrite-traefik
|
|
<<: *x-logging
|
|
command:
|
|
- --providers.file.directory=/storage/config
|
|
- --providers.file.watch=true
|
|
- --providers.docker=true
|
|
- --providers.docker.exposedByDefault=false
|
|
- --providers.docker.constraints=Label(`traefik.constraint-label-stack`,`appwrite`)
|
|
- --entrypoints.appwrite_web.address=:80
|
|
- --entrypoints.appwrite_websecure.address=:443
|
|
- --entrypoints.appwrite_websecure.forwardedHeaders.trustedIPs=10.0.0.0/8
|
|
- --entrypoints.appwrite_websecure.proxyProtocol.trustedIPs=10.0.0.0/8
|
|
# - --entrypoints.appwrite_web.forwardedHeaders.trustedIPs=192.168.2.1/32
|
|
# - --entrypoints.appwrite_web.proxyProtocol.trustedIPs=192.168.2.1/32
|
|
# - --entrypoints.appwrite_websecure.forwardedHeaders.trustedIPs=192.168.2.1/32
|
|
# - --entrypoints.appwrite_websecure.proxyProtocol.trustedIPs=192.168.2.1/32
|
|
- --accesslog=true
|
|
restart: unless-stopped
|
|
ports:
|
|
- 8080:80
|
|
- 8443:443
|
|
security_opt:
|
|
- label=disable
|
|
volumes:
|
|
- /run/user/1000/podman/podman.sock:/var/run/docker.sock:z
|
|
- appwrite-config:/storage/config:ro
|
|
- appwrite-certificates:/storage/certificates:ro
|
|
depends_on:
|
|
- appwrite
|
|
networks:
|
|
- gateway
|
|
- appwrite
|
|
|
|
appwrite:
|
|
image: docker.io/appwrite/appwrite:1.4.13
|
|
container_name: appwrite
|
|
<<: *x-logging
|
|
restart: unless-stopped
|
|
networks:
|
|
- appwrite
|
|
labels:
|
|
- traefik.enable=true
|
|
- traefik.constraint-label-stack=appwrite
|
|
- traefik.docker.network=appwrite
|
|
- traefik.http.services.appwrite_api.loadbalancer.server.port=80
|
|
#http
|
|
- traefik.http.routers.appwrite_api_http.entrypoints=appwrite_web
|
|
- traefik.http.routers.appwrite_api_http.rule=PathPrefix(`/`)
|
|
- traefik.http.routers.appwrite_api_http.service=appwrite_api
|
|
# https
|
|
- traefik.http.routers.appwrite_api_https.entrypoints=appwrite_websecure
|
|
- traefik.http.routers.appwrite_api_https.rule=PathPrefix(`/`)
|
|
- traefik.http.routers.appwrite_api_https.service=appwrite_api
|
|
- traefik.http.routers.appwrite_api_https.tls=true
|
|
volumes:
|
|
- appwrite-uploads:/storage/uploads:rw
|
|
- appwrite-cache:/storage/cache:rw
|
|
- appwrite-config:/storage/config:rw
|
|
- appwrite-certificates:/storage/certificates:rw
|
|
- appwrite-functions:/storage/functions:rw
|
|
depends_on:
|
|
- mariadb
|
|
- redis
|
|
# - clamav
|
|
- influxdb
|
|
# entrypoint:
|
|
# - php
|
|
# - -e
|
|
# - app/http.php
|
|
# - -dopcache.preload=opcache.preload=/usr/src/code/app/preload.php
|
|
environment:
|
|
- _APP_ENV=${_APP_ENV}
|
|
- _APP_WORKER_PER_CORE=${_APP_WORKER_PER_CORE}
|
|
- _APP_LOCALE=${_APP_LOCALE}
|
|
- _APP_CONSOLE_WHITELIST_ROOT=${_APP_CONSOLE_WHITELIST_ROOT}
|
|
- _APP_CONSOLE_WHITELIST_EMAILS=${_APP_CONSOLE_WHITELIST_EMAILS}
|
|
- _APP_CONSOLE_WHITELIST_IPS=${_APP_CONSOLE_WHITELIST_IPS}
|
|
- _APP_SYSTEM_EMAIL_NAME=${_APP_SYSTEM_EMAIL_NAME}
|
|
- _APP_SYSTEM_EMAIL_ADDRESS=${_APP_SYSTEM_EMAIL_ADDRESS}
|
|
- _APP_SYSTEM_SECURITY_EMAIL_ADDRESS=${_APP_SYSTEM_SECURITY_EMAIL_ADDRESS}
|
|
- _APP_SYSTEM_RESPONSE_FORMAT=${_APP_SYSTEM_RESPONSE_FORMAT}
|
|
- _APP_OPTIONS_ABUSE=${_APP_OPTIONS_ABUSE}
|
|
- _APP_OPTIONS_ROUTER_PROTECTION=${_APP_OPTIONS_ROUTER_PROTECTION}
|
|
- _APP_OPTIONS_FORCE_HTTPS=${_APP_OPTIONS_FORCE_HTTPS}
|
|
- _APP_OPTIONS_FUNCTIONS_FORCE_HTTPS=${_APP_OPTIONS_FUNCTIONS_FORCE_HTTPS}
|
|
- _APP_OPENSSL_KEY_V1=${_APP_OPENSSL_KEY_V1}
|
|
- _APP_DOMAIN=${_APP_DOMAIN}
|
|
- _APP_DOMAIN_TARGET=${_APP_DOMAIN_TARGET}
|
|
- _APP_DOMAIN_FUNCTIONS=${_APP_DOMAIN_FUNCTIONS}
|
|
- _APP_REDIS_HOST=${_APP_REDIS_HOST}
|
|
- _APP_REDIS_PORT=${_APP_REDIS_PORT}
|
|
- _APP_REDIS_USER=${_APP_REDIS_USER}
|
|
- _APP_REDIS_PASS=${_APP_REDIS_PASS}
|
|
- _APP_DB_HOST=${_APP_DB_HOST}
|
|
- _APP_DB_PORT=${_APP_DB_PORT}
|
|
- _APP_DB_SCHEMA=${_APP_DB_SCHEMA}
|
|
- _APP_DB_USER=${_APP_DB_USER}
|
|
- _APP_DB_PASS=${_APP_DB_PASS}
|
|
- _APP_SMTP_HOST=${_APP_SMTP_HOST}
|
|
- _APP_SMTP_PORT=${_APP_SMTP_PORT}
|
|
- _APP_SMTP_SECURE=${_APP_SMTP_SECURE}
|
|
- _APP_SMTP_USERNAME=${_APP_SMTP_USERNAME}
|
|
- _APP_SMTP_PASSWORD=${_APP_SMTP_PASSWORD}
|
|
- _APP_USAGE_STATS=${_APP_USAGE_STATS}
|
|
- _APP_INFLUXDB_HOST=${_APP_INFLUXDB_HOST}
|
|
- _APP_INFLUXDB_PORT=${_APP_INFLUXDB_PORT}
|
|
- _APP_STORAGE_LIMIT=${_APP_STORAGE_LIMIT}
|
|
- _APP_STORAGE_PREVIEW_LIMIT=${_APP_STORAGE_PREVIEW_LIMIT}
|
|
- _APP_STORAGE_ANTIVIRUS=${_APP_STORAGE_ANTIVIRUS}
|
|
- _APP_STORAGE_ANTIVIRUS_HOST=${_APP_STORAGE_ANTIVIRUS_HOST}
|
|
- _APP_STORAGE_ANTIVIRUS_PORT=${_APP_STORAGE_ANTIVIRUS_PORT}
|
|
- _APP_STORAGE_DEVICE=${_APP_STORAGE_DEVICE}
|
|
- _APP_STORAGE_S=${_APP_STORAGE_S3_ACCESS_KEY}
|
|
- _APP_STORAGE_S=${_APP_STORAGE_S3_SECRET}
|
|
- _APP_STORAGE_S=${_APP_STORAGE_S3_REGION}
|
|
- _APP_STORAGE_S=${_APP_STORAGE_S3_BUCKET}
|
|
- _APP_STORAGE_DO_SPACES_ACCESS_KEY=${_APP_STORAGE_DO_SPACES_ACCESS_KEY}
|
|
- _APP_STORAGE_DO_SPACES_SECRET=${_APP_STORAGE_DO_SPACES_SECRET}
|
|
- _APP_STORAGE_DO_SPACES_REGION=${_APP_STORAGE_DO_SPACES_REGION}
|
|
- _APP_STORAGE_DO_SPACES_BUCKET=${_APP_STORAGE_DO_SPACES_BUCKET}
|
|
- _APP_STORAGE_BACKBLAZE_ACCESS_KEY=${_APP_STORAGE_BACKBLAZE_ACCESS_KEY}
|
|
- _APP_STORAGE_BACKBLAZE_SECRET=${_APP_STORAGE_BACKBLAZE_SECRET}
|
|
- _APP_STORAGE_BACKBLAZE_REGION=${_APP_STORAGE_BACKBLAZE_REGION}
|
|
- _APP_STORAGE_BACKBLAZE_BUCKET=${_APP_STORAGE_BACKBLAZE_BUCKET}
|
|
- _APP_STORAGE_LINODE_ACCESS_KEY=${_APP_STORAGE_LINODE_ACCESS_KEY}
|
|
- _APP_STORAGE_LINODE_SECRET=${_APP_STORAGE_LINODE_SECRET}
|
|
- _APP_STORAGE_LINODE_REGION=${_APP_STORAGE_LINODE_REGION}
|
|
- _APP_STORAGE_LINODE_BUCKET=${_APP_STORAGE_LINODE_BUCKET}
|
|
- _APP_STORAGE_WASABI_ACCESS_KEY=${_APP_STORAGE_WASABI_ACCESS_KEY}
|
|
- _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_FUNCTIONS_SIZE_LIMIT=${_APP_FUNCTIONS_SIZE_LIMIT}
|
|
- _APP_FUNCTIONS_TIMEOUT=${_APP_FUNCTIONS_TIMEOUT}
|
|
- _APP_FUNCTIONS_BUILD_TIMEOUT=${_APP_FUNCTIONS_BUILD_TIMEOUT}
|
|
- _APP_FUNCTIONS_CPUS=${_APP_FUNCTIONS_CPUS}
|
|
- _APP_FUNCTIONS_MEMORY=${_APP_FUNCTIONS_MEMORY}
|
|
- _APP_FUNCTIONS_RUNTIMES=${_APP_FUNCTIONS_RUNTIMES}
|
|
- _APP_EXECUTOR_SECRET=${_APP_EXECUTOR_SECRET}
|
|
- _APP_EXECUTOR_HOST=${_APP_EXECUTOR_HOST}
|
|
- _APP_LOGGING_PROVIDER=${_APP_LOGGING_PROVIDER}
|
|
- _APP_LOGGING_CONFIG=${_APP_LOGGING_CONFIG}
|
|
- _APP_STATSD_HOST=${_APP_STATSD_HOST}
|
|
- _APP_STATSD_PORT=${_APP_STATSD_PORT}
|
|
- _APP_MAINTENANCE_INTERVAL=${_APP_MAINTENANCE_INTERVAL}
|
|
- _APP_MAINTENANCE_RETENTION_EXECUTION=${_APP_MAINTENANCE_RETENTION_EXECUTION}
|
|
- _APP_MAINTENANCE_RETENTION_CACHE=${_APP_MAINTENANCE_RETENTION_CACHE}
|
|
- _APP_MAINTENANCE_RETENTION_ABUSE=${_APP_MAINTENANCE_RETENTION_ABUSE}
|
|
- _APP_MAINTENANCE_RETENTION_AUDIT=${_APP_MAINTENANCE_RETENTION_AUDIT}
|
|
- _APP_MAINTENANCE_RETENTION_USAGE_HOURLY=${_APP_MAINTENANCE_RETENTION_USAGE_HOURLY}
|
|
- _APP_MAINTENANCE_RETENTION_SCHEDULES=${_APP_MAINTENANCE_RETENTION_SCHEDULES}
|
|
- _APP_SMS_PROVIDER=${_APP_SMS_PROVIDER}
|
|
- _APP_SMS_FROM=${_APP_SMS_FROM}
|
|
- _APP_GRAPHQL_MAX_BATCH_SIZE=${_APP_GRAPHQL_MAX_BATCH_SIZE}
|
|
- _APP_GRAPHQL_MAX_COMPLEXITY=${_APP_GRAPHQL_MAX_COMPLEXITY}
|
|
- _APP_GRAPHQL_MAX_DEPTH=${_APP_GRAPHQL_MAX_DEPTH}
|
|
- _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}
|
|
- _APP_VCS_GITHUB_WEBHOOK_SECRET=${_APP_VCS_GITHUB_WEBHOOK_SECRET}
|
|
- _APP_VCS_GITHUB_CLIENT_SECRET=${_APP_VCS_GITHUB_CLIENT_SECRET}
|
|
- _APP_VCS_GITHUB_CLIENT_ID=${_APP_VCS_GITHUB_CLIENT_ID}
|
|
- _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-realtime:
|
|
image: docker.io/appwrite/appwrite:1.4.13
|
|
entrypoint: realtime
|
|
container_name: appwrite-realtime
|
|
<<: *x-logging
|
|
restart: unless-stopped
|
|
labels:
|
|
- "traefik.enable=true"
|
|
- "traefik.constraint-label-stack=appwrite"
|
|
- "traefik.docker.network=appwrite"
|
|
- "traefik.http.services.appwrite_realtime.loadbalancer.server.port=80"
|
|
#ws
|
|
- traefik.http.routers.appwrite_realtime_ws.entrypoints=appwrite_web
|
|
- traefik.http.routers.appwrite_realtime_ws.rule=PathPrefix(`/v1/realtime`)
|
|
- traefik.http.routers.appwrite_realtime_ws.service=appwrite_realtime
|
|
# wss
|
|
- traefik.http.routers.appwrite_realtime_wss.entrypoints=appwrite_websecure
|
|
- traefik.http.routers.appwrite_realtime_wss.rule=PathPrefix(`/v1/realtime`)
|
|
- traefik.http.routers.appwrite_realtime_wss.service=appwrite_realtime
|
|
- traefik.http.routers.appwrite_realtime_wss.tls=true
|
|
networks:
|
|
- appwrite
|
|
depends_on:
|
|
- mariadb
|
|
- redis
|
|
environment:
|
|
- _APP_ENV=${_APP_ENV}
|
|
- _APP_WORKER_PER_CORE=${_APP_WORKER_PER_CORE}
|
|
- _APP_OPTIONS_ABUSE=${_APP_OPTIONS_ABUSE}
|
|
- _APP_OPTIONS_ROUTER_PROTECTION=${_APP_OPTIONS_ROUTER_PROTECTION}
|
|
- _APP_OPENSSL_KEY_V1=${_APP_OPENSSL_KEY_V1}
|
|
- _APP_REDIS_HOST=${_APP_REDIS_HOST}
|
|
- _APP_REDIS_PORT=${_APP_REDIS_PORT}
|
|
- _APP_REDIS_USER=${_APP_REDIS_USER}
|
|
- _APP_REDIS_PASS=${_APP_REDIS_PASS}
|
|
- _APP_DB_HOST=${_APP_DB_HOST}
|
|
- _APP_DB_PORT=${_APP_DB_PORT}
|
|
- _APP_DB_SCHEMA=${_APP_DB_SCHEMA}
|
|
- _APP_DB_USER=${_APP_DB_USER}
|
|
- _APP_DB_PASS=${_APP_DB_PASS}
|
|
- _APP_USAGE_STATS=${_APP_USAGE_STATS}
|
|
- _APP_LOGGING_PROVIDER=${_APP_LOGGING_PROVIDER}
|
|
- _APP_LOGGING_CONFIG=${_APP_LOGGING_CONFIG}
|
|
|
|
appwrite-worker-audits:
|
|
image: docker.io/appwrite/appwrite:1.4.13
|
|
entrypoint: worker-audits
|
|
<<: *x-logging
|
|
container_name: appwrite-worker-audits
|
|
restart: unless-stopped
|
|
networks:
|
|
- appwrite
|
|
depends_on:
|
|
- redis
|
|
- mariadb
|
|
environment:
|
|
- _APP_ENV=${_APP_ENV}
|
|
- _APP_WORKER_PER_CORE=${_APP_WORKER_PER_CORE}
|
|
- _APP_OPENSSL_KEY_V1=${_APP_OPENSSL_KEY_V1}
|
|
- _APP_REDIS_HOST=${_APP_REDIS_HOST}
|
|
- _APP_REDIS_PORT=${_APP_REDIS_PORT}
|
|
- _APP_REDIS_USER=${_APP_REDIS_USER}
|
|
- _APP_REDIS_PASS=${_APP_REDIS_PASS}
|
|
- _APP_DB_HOST=${_APP_DB_HOST}
|
|
- _APP_DB_PORT=${_APP_DB_PORT}
|
|
- _APP_DB_SCHEMA=${_APP_DB_SCHEMA}
|
|
- _APP_DB_USER=${_APP_DB_USER}
|
|
- _APP_DB_PASS=${_APP_DB_PASS}
|
|
- _APP_LOGGING_PROVIDER=${_APP_LOGGING_PROVIDER}
|
|
- _APP_LOGGING_CONFIG=${_APP_LOGGING_CONFIG}
|
|
|
|
appwrite-worker-webhooks:
|
|
entrypoint: worker-webhooks
|
|
<<: *x-logging
|
|
container_name: appwrite-worker-webhooks
|
|
image: docker.io/appwrite/appwrite:1.4.13
|
|
networks:
|
|
- appwrite
|
|
# volumes:
|
|
# - ./app:/usr/src/code/app
|
|
# - ./src:/usr/src/code/src
|
|
depends_on:
|
|
- redis
|
|
- mariadb
|
|
environment:
|
|
- _APP_ENV=${_APP_ENV}
|
|
- _APP_WORKER_PER_CORE=${_APP_WORKER_PER_CORE}
|
|
- _APP_OPENSSL_KEY_V1=${_APP_OPENSSL_KEY_V1}
|
|
- _APP_SYSTEM_SECURITY_EMAIL_ADDRESS=${_APP_SYSTEM_SECURITY_EMAIL_ADDRESS}
|
|
- _APP_REDIS_HOST=${_APP_REDIS_HOST}
|
|
- _APP_REDIS_PORT=${_APP_REDIS_PORT}
|
|
- _APP_REDIS_USER=${_APP_REDIS_USER}
|
|
- _APP_REDIS_PASS=${_APP_REDIS_PASS}
|
|
- _APP_LOGGING_PROVIDER=${_APP_LOGGING_PROVIDER}
|
|
- _APP_LOGGING_CONFIG=${_APP_LOGGING_CONFIG}
|
|
|
|
appwrite-worker-deletes:
|
|
image: docker.io/appwrite/appwrite:1.4.13
|
|
entrypoint: worker-deletes
|
|
<<: *x-logging
|
|
container_name: appwrite-worker-deletes
|
|
restart: unless-stopped
|
|
networks:
|
|
- appwrite
|
|
depends_on:
|
|
- redis
|
|
- mariadb
|
|
volumes:
|
|
- appwrite-uploads:/storage/uploads:rw
|
|
- appwrite-cache:/storage/cache:rw
|
|
- appwrite-functions:/storage/functions:rw
|
|
- appwrite-builds:/storage/builds:rw
|
|
- appwrite-certificates:/storage/certificates:rw
|
|
environment:
|
|
- _APP_ENV=${_APP_ENV}
|
|
- _APP_WORKER_PER_CORE=${_APP_WORKER_PER_CORE}
|
|
- _APP_OPENSSL_KEY_V1=${_APP_OPENSSL_KEY_V1}
|
|
- _APP_REDIS_HOST=${_APP_REDIS_HOST}
|
|
- _APP_REDIS_PORT=${_APP_REDIS_PORT}
|
|
- _APP_REDIS_USER=${_APP_REDIS_USER}
|
|
- _APP_REDIS_PASS=${_APP_REDIS_PASS}
|
|
- _APP_DB_HOST=${_APP_DB_HOST}
|
|
- _APP_DB_PORT=${_APP_DB_PORT}
|
|
- _APP_DB_SCHEMA=${_APP_DB_SCHEMA}
|
|
- _APP_DB_USER=${_APP_DB_USER}
|
|
- _APP_DB_PASS=${_APP_DB_PASS}
|
|
- _APP_STORAGE_DEVICE=${_APP_STORAGE_DEVICE}
|
|
- _APP_STORAGE_S=${_APP_STORAGE_S3_ACCESS_KEY}
|
|
- _APP_STORAGE_S=${_APP_STORAGE_S3_SECRET}
|
|
- _APP_STORAGE_S=${_APP_STORAGE_S3_REGION}
|
|
- _APP_STORAGE_S=${_APP_STORAGE_S3_BUCKET}
|
|
- _APP_STORAGE_DO_SPACES_ACCESS_KEY=${_APP_STORAGE_DO_SPACES_ACCESS_KEY}
|
|
- _APP_STORAGE_DO_SPACES_SECRET=${_APP_STORAGE_DO_SPACES_SECRET}
|
|
- _APP_STORAGE_DO_SPACES_REGION=${_APP_STORAGE_DO_SPACES_REGION}
|
|
- _APP_STORAGE_DO_SPACES_BUCKET=${_APP_STORAGE_DO_SPACES_BUCKET}
|
|
- _APP_STORAGE_BACKBLAZE_ACCESS_KEY=${_APP_STORAGE_BACKBLAZE_ACCESS_KEY}
|
|
- _APP_STORAGE_BACKBLAZE_SECRET=${_APP_STORAGE_BACKBLAZE_SECRET}
|
|
- _APP_STORAGE_BACKBLAZE_REGION=${_APP_STORAGE_BACKBLAZE_REGION}
|
|
- _APP_STORAGE_BACKBLAZE_BUCKET=${_APP_STORAGE_BACKBLAZE_BUCKET}
|
|
- _APP_STORAGE_LINODE_ACCESS_KEY=${_APP_STORAGE_LINODE_ACCESS_KEY}
|
|
- _APP_STORAGE_LINODE_SECRET=${_APP_STORAGE_LINODE_SECRET}
|
|
- _APP_STORAGE_LINODE_REGION=${_APP_STORAGE_LINODE_REGION}
|
|
- _APP_STORAGE_LINODE_BUCKET=${_APP_STORAGE_LINODE_BUCKET}
|
|
- _APP_STORAGE_WASABI_ACCESS_KEY=${_APP_STORAGE_WASABI_ACCESS_KEY}
|
|
- _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_LOGGING_PROVIDER=${_APP_LOGGING_PROVIDER}
|
|
- _APP_LOGGING_CONFIG=${_APP_LOGGING_CONFIG}
|
|
- _APP_EXECUTOR_SECRET=${_APP_EXECUTOR_SECRET}
|
|
- _APP_EXECUTOR_HOST=${_APP_EXECUTOR_HOST}
|
|
|
|
appwrite-worker-databases:
|
|
image: docker.io/appwrite/appwrite:1.4.13
|
|
entrypoint: worker-databases
|
|
<<: *x-logging
|
|
container_name: appwrite-worker-databases
|
|
restart: unless-stopped
|
|
networks:
|
|
- appwrite
|
|
depends_on:
|
|
- redis
|
|
- mariadb
|
|
environment:
|
|
- _APP_ENV=${_APP_ENV}
|
|
- _APP_WORKER_PER_CORE=${_APP_WORKER_PER_CORE}
|
|
- _APP_OPENSSL_KEY_V1=${_APP_OPENSSL_KEY_V1}
|
|
- _APP_REDIS_HOST=${_APP_REDIS_HOST}
|
|
- _APP_REDIS_PORT=${_APP_REDIS_PORT}
|
|
- _APP_REDIS_USER=${_APP_REDIS_USER}
|
|
- _APP_REDIS_PASS=${_APP_REDIS_PASS}
|
|
- _APP_DB_HOST=${_APP_DB_HOST}
|
|
- _APP_DB_PORT=${_APP_DB_PORT}
|
|
- _APP_DB_SCHEMA=${_APP_DB_SCHEMA}
|
|
- _APP_DB_USER=${_APP_DB_USER}
|
|
- _APP_DB_PASS=${_APP_DB_PASS}
|
|
- _APP_LOGGING_PROVIDER=${_APP_LOGGING_PROVIDER}
|
|
- _APP_LOGGING_CONFIG=${_APP_LOGGING_CONFIG}
|
|
|
|
appwrite-worker-builds:
|
|
image: docker.io/appwrite/appwrite:1.4.13
|
|
entrypoint: worker-builds
|
|
<<: *x-logging
|
|
container_name: appwrite-worker-builds
|
|
restart: unless-stopped
|
|
networks:
|
|
- appwrite
|
|
depends_on:
|
|
- redis
|
|
- mariadb
|
|
volumes:
|
|
- appwrite-functions:/storage/functions:rw
|
|
- appwrite-builds:/storage/builds:rw
|
|
environment:
|
|
- _APP_ENV=${_APP_ENV}
|
|
- _APP_WORKER_PER_CORE=${_APP_WORKER_PER_CORE}
|
|
- _APP_OPENSSL_KEY_V1=${_APP_OPENSSL_KEY_V1}
|
|
- _APP_EXECUTOR_SECRET=${_APP_EXECUTOR_SECRET}
|
|
- _APP_EXECUTOR_HOST=${_APP_EXECUTOR_HOST}
|
|
- _APP_REDIS_HOST=${_APP_REDIS_HOST}
|
|
- _APP_REDIS_PORT=${_APP_REDIS_PORT}
|
|
- _APP_REDIS_USER=${_APP_REDIS_USER}
|
|
- _APP_REDIS_PASS=${_APP_REDIS_PASS}
|
|
- _APP_DB_HOST=${_APP_DB_HOST}
|
|
- _APP_DB_PORT=${_APP_DB_PORT}
|
|
- _APP_DB_SCHEMA=${_APP_DB_SCHEMA}
|
|
- _APP_DB_USER=${_APP_DB_USER}
|
|
- _APP_DB_PASS=${_APP_DB_PASS}
|
|
- _APP_LOGGING_PROVIDER=${_APP_LOGGING_PROVIDER}
|
|
- _APP_LOGGING_CONFIG=${_APP_LOGGING_CONFIG}
|
|
- _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}
|
|
- _APP_FUNCTIONS_TIMEOUT=${_APP_FUNCTIONS_TIMEOUT}
|
|
- _APP_FUNCTIONS_BUILD_TIMEOUT=${_APP_FUNCTIONS_BUILD_TIMEOUT}
|
|
- _APP_FUNCTIONS_CPUS=${_APP_FUNCTIONS_CPUS}
|
|
- _APP_FUNCTIONS_MEMORY=${_APP_FUNCTIONS_MEMORY}
|
|
- _APP_FUNCTIONS_SIZE_LIMIT=${_APP_FUNCTIONS_SIZE_LIMIT}
|
|
- _APP_OPTIONS_FORCE_HTTPS=${_APP_OPTIONS_FORCE_HTTPS}
|
|
- _APP_OPTIONS_FUNCTIONS_FORCE_HTTPS=${_APP_OPTIONS_FUNCTIONS_FORCE_HTTPS}
|
|
- _APP_DOMAIN=${_APP_DOMAIN}
|
|
- _APP_STORAGE_DEVICE=${_APP_STORAGE_DEVICE}
|
|
- _APP_STORAGE_S=${_APP_STORAGE_S3_ACCESS_KEY}
|
|
- _APP_STORAGE_S=${_APP_STORAGE_S3_SECRET}
|
|
- _APP_STORAGE_S=${_APP_STORAGE_S3_REGION}
|
|
- _APP_STORAGE_S=${_APP_STORAGE_S3_BUCKET}
|
|
- _APP_STORAGE_DO_SPACES_ACCESS_KEY=${_APP_STORAGE_DO_SPACES_ACCESS_KEY}
|
|
- _APP_STORAGE_DO_SPACES_SECRET=${_APP_STORAGE_DO_SPACES_SECRET}
|
|
- _APP_STORAGE_DO_SPACES_REGION=${_APP_STORAGE_DO_SPACES_REGION}
|
|
- _APP_STORAGE_DO_SPACES_BUCKET=${_APP_STORAGE_DO_SPACES_BUCKET}
|
|
- _APP_STORAGE_BACKBLAZE_ACCESS_KEY=${_APP_STORAGE_BACKBLAZE_ACCESS_KEY}
|
|
- _APP_STORAGE_BACKBLAZE_SECRET=${_APP_STORAGE_BACKBLAZE_SECRET}
|
|
- _APP_STORAGE_BACKBLAZE_REGION=${_APP_STORAGE_BACKBLAZE_REGION}
|
|
- _APP_STORAGE_BACKBLAZE_BUCKET=${_APP_STORAGE_BACKBLAZE_BUCKET}
|
|
- _APP_STORAGE_LINODE_ACCESS_KEY=${_APP_STORAGE_LINODE_ACCESS_KEY}
|
|
- _APP_STORAGE_LINODE_SECRET=${_APP_STORAGE_LINODE_SECRET}
|
|
- _APP_STORAGE_LINODE_REGION=${_APP_STORAGE_LINODE_REGION}
|
|
- _APP_STORAGE_LINODE_BUCKET=${_APP_STORAGE_LINODE_BUCKET}
|
|
- _APP_STORAGE_WASABI_ACCESS_KEY=${_APP_STORAGE_WASABI_ACCESS_KEY}
|
|
- _APP_STORAGE_WASABI_SECRET=${_APP_STORAGE_WASABI_SECRET}
|
|
- _APP_STORAGE_WASABI_REGION=${_APP_STORAGE_WASABI_REGION}
|
|
- _APP_STORAGE_WASABI_BUCKET=${_APP_STORAGE_WASABI_BUCKET}
|
|
|
|
appwrite-worker-certificates:
|
|
entrypoint: worker-certificates
|
|
<<: *x-logging
|
|
container_name: appwrite-worker-certificates
|
|
image: docker.io/appwrite/appwrite:1.4.13
|
|
networks:
|
|
- appwrite
|
|
depends_on:
|
|
- redis
|
|
- mariadb
|
|
volumes:
|
|
- appwrite-config:/storage/config:rw
|
|
- appwrite-certificates:/storage/certificates:rw
|
|
environment:
|
|
- _APP_ENV=${_APP_ENV}
|
|
- _APP_WORKER_PER_CORE=${_APP_WORKER_PER_CORE}
|
|
- _APP_OPENSSL_KEY_V1=${_APP_OPENSSL_KEY_V1}
|
|
- _APP_DOMAIN=${_APP_DOMAIN}
|
|
- _APP_DOMAIN_TARGET=${_APP_DOMAIN_TARGET}
|
|
- _APP_DOMAIN_FUNCTIONS=${_APP_DOMAIN_FUNCTIONS}
|
|
- _APP_SYSTEM_SECURITY_EMAIL_ADDRESS=${_APP_SYSTEM_SECURITY_EMAIL_ADDRESS}
|
|
- _APP_REDIS_HOST=${_APP_REDIS_HOST}
|
|
- _APP_REDIS_PORT=${_APP_REDIS_PORT}
|
|
- _APP_REDIS_USER=${_APP_REDIS_USER}
|
|
- _APP_REDIS_PASS=${_APP_REDIS_PASS}
|
|
- _APP_DB_HOST=${_APP_DB_HOST}
|
|
- _APP_DB_PORT=${_APP_DB_PORT}
|
|
- _APP_DB_SCHEMA=${_APP_DB_SCHEMA}
|
|
- _APP_DB_USER=${_APP_DB_USER}
|
|
- _APP_DB_PASS=${_APP_DB_PASS}
|
|
- _APP_LOGGING_PROVIDER=${_APP_LOGGING_PROVIDER}
|
|
- _APP_LOGGING_CONFIG=${_APP_LOGGING_CONFIG}
|
|
|
|
appwrite-worker-functions:
|
|
entrypoint: worker-functions
|
|
<<: *x-logging
|
|
container_name: appwrite-worker-functions
|
|
image: docker.io/appwrite/appwrite:1.4.13
|
|
networks:
|
|
- appwrite
|
|
depends_on:
|
|
- redis
|
|
- mariadb
|
|
- openruntimes-executor
|
|
environment:
|
|
- _APP_ENV=${_APP_ENV}
|
|
- _APP_WORKER_PER_CORE=${_APP_WORKER_PER_CORE}
|
|
- _APP_OPENSSL_KEY_V1=${_APP_OPENSSL_KEY_V1}
|
|
- _APP_REDIS_HOST=${_APP_REDIS_HOST}
|
|
- _APP_REDIS_PORT=${_APP_REDIS_PORT}
|
|
- _APP_REDIS_USER=${_APP_REDIS_USER}
|
|
- _APP_REDIS_PASS=${_APP_REDIS_PASS}
|
|
- _APP_DB_HOST=${_APP_DB_HOST}
|
|
- _APP_DB_PORT=${_APP_DB_PORT}
|
|
- _APP_DB_SCHEMA=${_APP_DB_SCHEMA}
|
|
- _APP_DB_USER=${_APP_DB_USER}
|
|
- _APP_DB_PASS=${_APP_DB_PASS}
|
|
- _APP_FUNCTIONS_TIMEOUT=${_APP_FUNCTIONS_TIMEOUT}
|
|
- _APP_FUNCTIONS_BUILD_TIMEOUT=${_APP_FUNCTIONS_BUILD_TIMEOUT}
|
|
- _APP_FUNCTIONS_CPUS=${_APP_FUNCTIONS_CPUS}
|
|
- _APP_FUNCTIONS_MEMORY=${_APP_FUNCTIONS_MEMORY}
|
|
- _APP_EXECUTOR_SECRET=${_APP_EXECUTOR_SECRET}
|
|
- _APP_EXECUTOR_HOST=${_APP_EXECUTOR_HOST}
|
|
- _APP_USAGE_STATS=${_APP_USAGE_STATS}
|
|
- _APP_DOCKER_HUB_USERNAME=${_APP_DOCKER_HUB_USERNAME}
|
|
- _APP_DOCKER_HUB_PASSWORD=${_APP_DOCKER_HUB_PASSWORD}
|
|
- _APP_LOGGING_CONFIG=${_APP_LOGGING_CONFIG}
|
|
- _APP_LOGGING_PROVIDER=${_APP_LOGGING_PROVIDER}
|
|
|
|
appwrite-worker-mails:
|
|
image: docker.io/appwrite/appwrite:1.4.13
|
|
entrypoint: worker-mails
|
|
<<: *x-logging
|
|
container_name: appwrite-worker-mails
|
|
restart: unless-stopped
|
|
networks:
|
|
- appwrite
|
|
depends_on:
|
|
- redis
|
|
environment:
|
|
- _APP_ENV=${_APP_ENV}
|
|
- _APP_WORKER_PER_CORE=${_APP_WORKER_PER_CORE}
|
|
- _APP_OPENSSL_KEY_V1=${_APP_OPENSSL_KEY_V1}
|
|
- _APP_SYSTEM_EMAIL_NAME=${_APP_SYSTEM_EMAIL_NAME}
|
|
- _APP_SYSTEM_EMAIL_ADDRESS=${_APP_SYSTEM_EMAIL_ADDRESS}
|
|
- _APP_REDIS_HOST=${_APP_REDIS_HOST}
|
|
- _APP_REDIS_PORT=${_APP_REDIS_PORT}
|
|
- _APP_REDIS_USER=${_APP_REDIS_USER}
|
|
- _APP_REDIS_PASS=${_APP_REDIS_PASS}
|
|
- _APP_SMTP_HOST=${_APP_SMTP_HOST}
|
|
- _APP_SMTP_PORT=${_APP_SMTP_PORT}
|
|
- _APP_SMTP_SECURE=${_APP_SMTP_SECURE}
|
|
- _APP_SMTP_USERNAME=${_APP_SMTP_USERNAME}
|
|
- _APP_SMTP_PASSWORD=${_APP_SMTP_PASSWORD}
|
|
- _APP_LOGGING_PROVIDER=${_APP_LOGGING_PROVIDER}
|
|
- _APP_LOGGING_CONFIG=${_APP_LOGGING_CONFIG}
|
|
|
|
appwrite-worker-messaging:
|
|
image: docker.io/appwrite/appwrite:1.4.13
|
|
entrypoint: worker-messaging
|
|
<<: *x-logging
|
|
container_name: appwrite-worker-messaging
|
|
restart: unless-stopped
|
|
networks:
|
|
- appwrite
|
|
depends_on:
|
|
- redis
|
|
environment:
|
|
- _APP_ENV=${_APP_ENV}
|
|
- _APP_WORKER_PER_CORE=${_APP_WORKER_PER_CORE}
|
|
- _APP_REDIS_HOST=${_APP_REDIS_HOST}
|
|
- _APP_REDIS_PORT=${_APP_REDIS_PORT}
|
|
- _APP_REDIS_USER=${_APP_REDIS_USER}
|
|
- _APP_REDIS_PASS=${_APP_REDIS_PASS}
|
|
- _APP_SMS_PROVIDER=${_APP_SMS_PROVIDER}
|
|
- _APP_SMS_FROM=${_APP_SMS_FROM}
|
|
- _APP_LOGGING_PROVIDER=${_APP_LOGGING_PROVIDER}
|
|
- _APP_LOGGING_CONFIG=${_APP_LOGGING_CONFIG}
|
|
|
|
appwrite-worker-migrations:
|
|
image: docker.io/appwrite/appwrite:1.4.13
|
|
entrypoint: worker-migrations
|
|
<<: *x-logging
|
|
container_name: appwrite-worker-migrations
|
|
restart: unless-stopped
|
|
networks:
|
|
- appwrite
|
|
depends_on:
|
|
- mariadb
|
|
environment:
|
|
- _APP_ENV=${_APP_ENV}
|
|
- _APP_WORKER_PER_CORE=${_APP_WORKER_PER_CORE}
|
|
- _APP_OPENSSL_KEY_V1=${_APP_OPENSSL_KEY_V1}
|
|
- _APP_DOMAIN=${_APP_DOMAIN}
|
|
- _APP_DOMAIN_TARGET=${_APP_DOMAIN_TARGET}
|
|
- _APP_SYSTEM_SECURITY_EMAIL_ADDRESS=${_APP_SYSTEM_SECURITY_EMAIL_ADDRESS}
|
|
- _APP_REDIS_HOST=${_APP_REDIS_HOST}
|
|
- _APP_REDIS_PORT=${_APP_REDIS_PORT}
|
|
- _APP_REDIS_USER=${_APP_REDIS_USER}
|
|
- _APP_REDIS_PASS=${_APP_REDIS_PASS}
|
|
- _APP_DB_HOST=${_APP_DB_HOST}
|
|
- _APP_DB_PORT=${_APP_DB_PORT}
|
|
- _APP_DB_SCHEMA=${_APP_DB_SCHEMA}
|
|
- _APP_DB_USER=${_APP_DB_USER}
|
|
- _APP_DB_PASS=${_APP_DB_PASS}
|
|
- _APP_LOGGING_PROVIDER=${_APP_LOGGING_PROVIDER}
|
|
- _APP_LOGGING_CONFIG=${_APP_LOGGING_CONFIG}
|
|
- _APP_MIGRATIONS_FIREBASE_CLIENT_ID=${_APP_MIGRATIONS_FIREBASE_CLIENT_ID}
|
|
- _APP_MIGRATIONS_FIREBASE_CLIENT_SECRET=${_APP_MIGRATIONS_FIREBASE_CLIENT_SECRET}
|
|
|
|
appwrite-maintenance:
|
|
image: docker.io/appwrite/appwrite:1.4.13
|
|
entrypoint: maintenance
|
|
<<: *x-logging
|
|
container_name: appwrite-maintenance
|
|
restart: unless-stopped
|
|
networks:
|
|
- appwrite
|
|
depends_on:
|
|
- redis
|
|
environment:
|
|
- _APP_ENV=${_APP_ENV}
|
|
- _APP_WORKER_PER_CORE=${_APP_WORKER_PER_CORE}
|
|
- _APP_DOMAIN=${_APP_DOMAIN}
|
|
- _APP_DOMAIN_TARGET=${_APP_DOMAIN_TARGET}
|
|
- _APP_DOMAIN_FUNCTIONS=${_APP_DOMAIN_FUNCTIONS}
|
|
- _APP_OPENSSL_KEY_V1=${_APP_OPENSSL_KEY_V1}
|
|
- _APP_REDIS_HOST=${_APP_REDIS_HOST}
|
|
- _APP_REDIS_PORT=${_APP_REDIS_PORT}
|
|
- _APP_REDIS_USER=${_APP_REDIS_USER}
|
|
- _APP_REDIS_PASS=${_APP_REDIS_PASS}
|
|
- _APP_DB_HOST=${_APP_DB_HOST}
|
|
- _APP_DB_PORT=${_APP_DB_PORT}
|
|
- _APP_DB_SCHEMA=${_APP_DB_SCHEMA}
|
|
- _APP_DB_USER=${_APP_DB_USER}
|
|
- _APP_DB_PASS=${_APP_DB_PASS}
|
|
- _APP_MAINTENANCE_INTERVAL=${_APP_MAINTENANCE_INTERVAL}
|
|
- _APP_MAINTENANCE_RETENTION_EXECUTION=${_APP_MAINTENANCE_RETENTION_EXECUTION}
|
|
- _APP_MAINTENANCE_RETENTION_CACHE=${_APP_MAINTENANCE_RETENTION_CACHE}
|
|
- _APP_MAINTENANCE_RETENTION_ABUSE=${_APP_MAINTENANCE_RETENTION_ABUSE}
|
|
- _APP_MAINTENANCE_RETENTION_AUDIT=${_APP_MAINTENANCE_RETENTION_AUDIT}
|
|
- _APP_MAINTENANCE_RETENTION_USAGE_HOURLY=${_APP_MAINTENANCE_RETENTION_USAGE_HOURLY}
|
|
- _APP_MAINTENANCE_RETENTION_SCHEDULES=${_APP_MAINTENANCE_RETENTION_SCHEDULES}
|
|
|
|
appwrite-usage:
|
|
image: docker.io/appwrite/appwrite:1.4.13
|
|
entrypoint: usage
|
|
<<: *x-logging
|
|
container_name: appwrite-usage
|
|
restart: unless-stopped
|
|
networks:
|
|
- appwrite
|
|
depends_on:
|
|
- influxdb
|
|
- mariadb
|
|
environment:
|
|
- _APP_ENV=${_APP_ENV}
|
|
- _APP_WORKER_PER_CORE=${_APP_WORKER_PER_CORE}
|
|
- _APP_OPENSSL_KEY_V1=${_APP_OPENSSL_KEY_V1}
|
|
- _APP_DB_HOST=${_APP_DB_HOST}
|
|
- _APP_DB_PORT=${_APP_DB_PORT}
|
|
- _APP_DB_SCHEMA=${_APP_DB_SCHEMA}
|
|
- _APP_DB_USER=${_APP_DB_USER}
|
|
- _APP_DB_PASS=${_APP_DB_PASS}
|
|
- _APP_INFLUXDB_HOST=${_APP_INFLUXDB_HOST}
|
|
- _APP_INFLUXDB_PORT=${_APP_INFLUXDB_PORT}
|
|
- _APP_USAGE_AGGREGATION_INTERVAL=${_APP_USAGE_AGGREGATION_INTERVAL}
|
|
- _APP_REDIS_HOST=${_APP_REDIS_HOST}
|
|
- _APP_REDIS_PORT=${_APP_REDIS_PORT}
|
|
- _APP_REDIS_USER=${_APP_REDIS_USER}
|
|
- _APP_REDIS_PASS=${_APP_REDIS_PASS}
|
|
- _APP_USAGE_STATS=${_APP_USAGE_STATS}
|
|
- _APP_LOGGING_PROVIDER=${_APP_LOGGING_PROVIDER}
|
|
- _APP_LOGGING_CONFIG=${_APP_LOGGING_CONFIG}
|
|
|
|
appwrite-schedule:
|
|
image: docker.io/appwrite/appwrite:1.4.13
|
|
entrypoint: schedule
|
|
<<: *x-logging
|
|
container_name: appwrite-schedule
|
|
restart: unless-stopped
|
|
networks:
|
|
- appwrite
|
|
depends_on:
|
|
- mariadb
|
|
- redis
|
|
environment:
|
|
- _APP_ENV=${_APP_ENV}
|
|
- _APP_WORKER_PER_CORE=${_APP_WORKER_PER_CORE}
|
|
- _APP_OPENSSL_KEY_V1=${_APP_OPENSSL_KEY_V1}
|
|
- _APP_REDIS_HOST=${_APP_REDIS_HOST}
|
|
- _APP_REDIS_PORT=${_APP_REDIS_PORT}
|
|
- _APP_REDIS_USER=${_APP_REDIS_USER}
|
|
- _APP_REDIS_PASS=${_APP_REDIS_PASS}
|
|
- _APP_DB_HOST=${_APP_DB_HOST}
|
|
- _APP_DB_PORT=${_APP_DB_PORT}
|
|
- _APP_DB_SCHEMA=${_APP_DB_SCHEMA}
|
|
- _APP_DB_USER=${_APP_DB_USER}
|
|
- _APP_DB_PASS=${_APP_DB_PASS}
|
|
|
|
appwrite-assistant:
|
|
image: docker.io/appwrite/assistant:0.2.2
|
|
container_name: appwrite-assistant
|
|
restart: unless-stopped
|
|
networks:
|
|
- appwrite
|
|
environment:
|
|
- _APP_ASSISTANT_OPENAI_API_KEY=${_APP_ASSISTANT_OPENAI_API_KEY}
|
|
|
|
openruntimes-executor:
|
|
container_name: openruntimes-executor
|
|
hostname: appwrite-executor
|
|
<<: *x-logging
|
|
restart: unless-stopped
|
|
stop_signal: SIGINT
|
|
image: docker.io/openruntimes/executor:0.4.5
|
|
networks:
|
|
- appwrite
|
|
- runtimes
|
|
security_opt:
|
|
- label=disable
|
|
volumes:
|
|
- /run/user/1000/podman/podman.sock:/var/run/docker.sock:z
|
|
- appwrite-builds:/storage/builds:rw
|
|
- appwrite-functions:/storage/functions:rw
|
|
# 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)
|
|
- /home/ptoal/appwrite/tmp:/tmp:z
|
|
environment:
|
|
- OPR_EXECUTOR_INACTIVE_TRESHOLD=${_APP_FUNCTIONS_INACTIVE_THRESHOLD}}
|
|
- OPR_EXECUTOR_MAINTENANCE_INTERVAL=${_APP_FUNCTIONS_MAINTENANCE_INTERVAL}
|
|
- OPR_EXECUTOR_NETWORK=${_APP_FUNCTIONS_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}
|
|
- OPR_EXECUTOR_SECRET=${_APP_EXECUTOR_SECRET}
|
|
- OPR_EXECUTOR_RUNTIME_VERSIONS=v2,v3
|
|
- OPR_EXECUTOR_LOGGING_PROVIDER=${_APP_LOGGING_PROVIDER}
|
|
- 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_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}
|
|
|
|
# openruntimes-proxy:
|
|
# container_name: openruntimes-proxy
|
|
# hostname: proxy
|
|
# <<: *x-logging
|
|
# stop_signal: SIGINT
|
|
# image: docker.io/openruntimes/proxy:0.3.1
|
|
# networks:
|
|
# - appwrite
|
|
# - runtimes
|
|
# environment:
|
|
# - OPR_PROXY_WORKER_PER_CORE=${_APP_WORKER_PER_CORE}
|
|
# - OPR_PROXY_ENV=${_APP_ENV}
|
|
# - OPR_PROXY_EXECUTOR_SECRET=${_APP_EXECUTOR_SECRET}
|
|
# - OPR_PROXY_SECRET=${_APP_EXECUTOR_SECRET}
|
|
# - OPR_PROXY_LOGGING_PROVIDER=${_APP_LOGGING_PROVIDER}
|
|
# - OPR_PROXY_LOGGING_CONFIG=${_APP_LOGGING_CONFIG}
|
|
# - OPR_PROXY_ALGORITHM=random
|
|
# - OPR_PROXY_EXECUTORS=appwrite-executor
|
|
# - OPR_PROXY_HEALTHCHECK_INTERVAL=10000
|
|
# - OPR_PROXY_MAX_TIMEOUT=600
|
|
# - OPR_PROXY_HEALTHCHECK=enabled
|
|
|
|
mariadb:
|
|
image: docker.io/mariadb:10.7 # fix issues when upgrading using: mysql_upgrade -u root -p
|
|
container_name: appwrite-mariadb
|
|
<<: *x-logging
|
|
restart: unless-stopped
|
|
networks:
|
|
- appwrite
|
|
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}
|
|
command: 'mysqld --innodb-flush-method=fsync'
|
|
|
|
# smtp:
|
|
# image: appwrite/smtp:1.2.0
|
|
# container_name: appwrite-smtp
|
|
# restart: unless-stopped
|
|
# networks:
|
|
# - appwrite
|
|
# environment:
|
|
# - LOCAL_DOMAINS=@
|
|
# - RELAY_FROM_HOSTS=192.168.0.0/16 ; *.yourdomain.com
|
|
# - SMARTHOST_HOST=smtp
|
|
# - SMARTHOST_PORT=587
|
|
|
|
redis:
|
|
image: docker.io/redis:7.0.4-alpine
|
|
<<: *x-logging
|
|
container_name: appwrite-redis
|
|
restart: unless-stopped
|
|
command: >
|
|
redis-server
|
|
--maxmemory 512mb
|
|
--maxmemory-policy allkeys-lru
|
|
--maxmemory-samples 5
|
|
networks:
|
|
- appwrite
|
|
volumes:
|
|
- appwrite-redis:/data:rw
|
|
|
|
# clamav:
|
|
# image: docker.io/appwrite/clamav:1.2.0
|
|
# container_name: appwrite-clamav
|
|
# networks:
|
|
# - appwrite
|
|
# volumes:
|
|
# - appwrite-uploads:/storage/uploads
|
|
|
|
influxdb:
|
|
image: docker.io/appwrite/influxdb:1.5.0
|
|
container_name: appwrite-influxdb
|
|
<<: *x-logging
|
|
restart: unless-stopped
|
|
networks:
|
|
- appwrite
|
|
volumes:
|
|
- appwrite-influxdb:/var/lib/influxdb:rw
|
|
|
|
telegraf:
|
|
image: docker.io/appwrite/telegraf:1.4.0
|
|
container_name: appwrite-telegraf
|
|
<<: *x-logging
|
|
restart: unless-stopped
|
|
networks:
|
|
- appwrite
|
|
environment:
|
|
- _APP_INFLUXDB_HOST=${_APP_INFLUXDB_HOST}
|
|
- _APP_INFLUXDB_PORT=${_APP_INFLUXDB_PORT}
|
|
|
|
networks:
|
|
gateway:
|
|
name: gateway
|
|
appwrite:
|
|
name: appwrite
|
|
runtimes:
|
|
name: runtimes
|
|
|
|
volumes:
|
|
appwrite-mariadb:
|
|
appwrite-redis:
|
|
appwrite-cache:
|
|
appwrite-uploads:
|
|
appwrite-certificates:
|
|
appwrite-functions:
|
|
appwrite-builds:
|
|
appwrite-influxdb:
|
|
appwrite-config:
|
|
# appwrite-chronograf:
|
|
|