# documentation: https://appwrite.io # slogan: A backend-as-a-service platform that simplifies the web & mobile app development. # tags: backend-as-a-service, platform # logo: svgs/appwrite.svg x-logging: &x-logging logging: driver: 'json-file' options: max-file: '5' max-size: '10m' services: appwrite: image: appwrite/appwrite:1.6 container_name: appwrite <<: *x-logging 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: - appwrite-mariadb - appwrite-redis environment: - SERVICE_FQDN_APPWRITE=/ - _APP_ENV=${_APP_ENV:-production} - _APP_WORKER_PER_CORE=${_APP_WORKER_PER_CORE:-6} - _APP_LOCALE=${_APP_LOCALE:-en} - _APP_CONSOLE_WHITELIST_ROOT=${_APP_CONSOLE_WHITELIST_ROOT:-enabled} - _APP_CONSOLE_WHITELIST_EMAILS=${_APP_CONSOLE_WHITELIST_EMAILS} - _APP_CONSOLE_WHITELIST_IPS=${_APP_CONSOLE_WHITELIST_IPS} - _APP_CONSOLE_HOSTNAMES=${_APP_CONSOLE_HOSTNAMES:-localhost,appwrite.io,*.appwrite.io} - _APP_SYSTEM_EMAIL_NAME=${_APP_SYSTEM_EMAIL_NAME:-Appwrite} - _APP_SYSTEM_EMAIL_ADDRESS=${_APP_SYSTEM_EMAIL_ADDRESS:-team@appwrite.io} - _APP_SYSTEM_SECURITY_EMAIL_ADDRESS=${_APP_SYSTEM_SECURITY_EMAIL_ADDRESS:-certs@appwrite.io} - _APP_SYSTEM_RESPONSE_FORMAT=${_APP_SYSTEM_RESPONSE_FORMAT} - _APP_OPTIONS_ABUSE=${_APP_OPTIONS_ABUSE:-enabled} - _APP_OPTIONS_FORCE_HTTPS=${_APP_OPTIONS_FORCE_HTTPS:-disabled} - _APP_OPENSSL_KEY_V1=${_APP_OPENSSL_KEY_V1} - _APP_DOMAIN=$SERVICE_FQDN_APPWRITE - _APP_DOMAIN_TARGET=$SERVICE_FQDN_APPWRITE - _APP_DOMAIN_FUNCTIONS=$SERVICE_FQDN_APPWRITE - _APP_REDIS_HOST=${_APP_REDIS_HOST:-appwrite-redis} - _APP_REDIS_PORT=${_APP_REDIS_PORT:-6379} - _APP_REDIS_USER=${_APP_REDIS_USER} - _APP_REDIS_PASS=${_APP_REDIS_PASS} - _APP_DB_HOST=${_APP_DB_HOST:-appwrite-mariadb} - _APP_DB_PORT=${_APP_DB_PORT:-3306} - _APP_DB_SCHEMA=${_APP_DB_SCHEMA:-appwrite} - _APP_DB_USER=$SERVICE_USER_MARIADB - _APP_DB_PASS=$SERVICE_PASSWORD_MARIADB - _APP_DB_ROOT_PASS=$SERVICE_PASSWORD_MARIADBROOT - _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:-enabled} - _APP_STORAGE_LIMIT=${_APP_STORAGE_LIMIT:-30000000} - _APP_STORAGE_PREVIEW_LIMIT=${_APP_STORAGE_PREVIEW_LIMIT:-20000000} - _APP_STORAGE_ANTIVIRUS=${_APP_STORAGE_ANTIVIRUS:-disabled} - _APP_STORAGE_ANTIVIRUS_HOST=${_APP_STORAGE_ANTIVIRUS_HOST:-appwrite-clamav} - _APP_STORAGE_ANTIVIRUS_PORT=${_APP_STORAGE_ANTIVIRUS_PORT:-3310} - _APP_STORAGE_DEVICE=${_APP_STORAGE_DEVICE:-local} - _APP_STORAGE_S3_ACCESS_KEY=${_APP_STORAGE_S3_ACCESS_KEY} - _APP_STORAGE_S3_SECRET=${_APP_STORAGE_S3_SECRET} - _APP_STORAGE_S3_REGION=${_APP_STORAGE_S3_REGION:-us-east-1} - _APP_STORAGE_S3_BUCKET=${_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:-us-east-1} - _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:-us-west-004} - _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:-eu-central-1} - _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:-eu-central-1} - _APP_STORAGE_WASABI_BUCKET=${_APP_STORAGE_WASABI_BUCKET} - _APP_FUNCTIONS_SIZE_LIMIT=${_APP_FUNCTIONS_SIZE_LIMIT:-30000000} - _APP_FUNCTIONS_TIMEOUT=${_APP_FUNCTIONS_TIMEOUT:-900} - _APP_FUNCTIONS_BUILD_TIMEOUT=${_APP_FUNCTIONS_BUILD_TIMEOUT:-900} - _APP_FUNCTIONS_CPUS=${_APP_FUNCTIONS_CPUS:-0} - _APP_FUNCTIONS_MEMORY=${_APP_FUNCTIONS_MEMORY:-0} - _APP_FUNCTIONS_RUNTIMES=${_APP_FUNCTIONS_RUNTIMES:-node-20.0,php-8.2,python-3.11,ruby-3.2} - _APP_EXECUTOR_SECRET=$SERVICE_PASSWORD_64_APPWRITE - _APP_EXECUTOR_HOST=${_APP_EXECUTOR_HOST:-http://appwrite-executor/v1} - _APP_LOGGING_PROVIDER=${_APP_LOGGING_PROVIDER} - _APP_LOGGING_CONFIG=${_APP_LOGGING_CONFIG} - _APP_MAINTENANCE_INTERVAL=${_APP_MAINTENANCE_INTERVAL:-86400} - _APP_MAINTENANCE_DELAY=${_APP_MAINTENANCE_DELAY} - _APP_MAINTENANCE_RETENTION_EXECUTION=${_APP_MAINTENANCE_RETENTION_EXECUTION:-1209600} - _APP_MAINTENANCE_RETENTION_CACHE=${_APP_MAINTENANCE_RETENTION_CACHE:-2592000} - _APP_MAINTENANCE_RETENTION_ABUSE=${_APP_MAINTENANCE_RETENTION_ABUSE:-86400} - _APP_MAINTENANCE_RETENTION_AUDIT=${_APP_MAINTENANCE_RETENTION_AUDIT:-1209600} - _APP_MAINTENANCE_RETENTION_USAGE_HOURLY=${_APP_MAINTENANCE_RETENTION_USAGE_HOURLY:-8640000} - _APP_MAINTENANCE_RETENTION_SCHEDULES=${_APP_MAINTENANCE_RETENTION_SCHEDULES:-86400} - _APP_SMS_PROVIDER=${_APP_SMS_PROVIDER} - _APP_SMS_FROM=${_APP_SMS_FROM} - _APP_GRAPHQL_MAX_BATCH_SIZE=${_APP_GRAPHQL_MAX_BATCH_SIZE:-10} - _APP_GRAPHQL_MAX_COMPLEXITY=${_APP_GRAPHQL_MAX_COMPLEXITY:-250} - _APP_GRAPHQL_MAX_DEPTH=${_APP_GRAPHQL_MAX_DEPTH:-3} - _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: appwrite/appwrite:1.6 entrypoint: realtime <<: *x-logging depends_on: - appwrite-mariadb - appwrite-redis environment: - SERVICE_FQDN_APPWRITE=/v1/realtime - _APP_ENV=${_APP_ENV:-production} - _APP_WORKER_PER_CORE=${_APP_WORKER_PER_CORE:-6} - _APP_OPTIONS_ABUSE=${_APP_OPTIONS_ABUSE:-enabled} - _APP_OPENSSL_KEY_V1=${_APP_OPENSSL_KEY_V1} - _APP_REDIS_HOST=${_APP_REDIS_HOST:-appwrite-redis} - _APP_REDIS_PORT=${_APP_REDIS_PORT:-6379} - _APP_REDIS_USER=${_APP_REDIS_USER} - _APP_REDIS_PASS=${_APP_REDIS_PASS} - _APP_DB_HOST=${_APP_DB_HOST:-appwrite-mariadb} - _APP_DB_PORT=${_APP_DB_PORT:-3306} - _APP_DB_SCHEMA=${_APP_DB_SCHEMA:-appwrite} - _APP_DB_USER=$SERVICE_USER_MARIADB - _APP_DB_PASS=$SERVICE_PASSWORD_MARIADB - _APP_USAGE_STATS=${_APP_USAGE_STATS:-enabled} - _APP_LOGGING_PROVIDER=${_APP_LOGGING_PROVIDER} - _APP_LOGGING_CONFIG=${_APP_LOGGING_CONFIG} appwrite-worker-audits: image: appwrite/appwrite:1.6 entrypoint: worker-audits <<: *x-logging container_name: appwrite-worker-audits depends_on: - appwrite-redis - appwrite-mariadb environment: - _APP_ENV=${_APP_ENV:-production} - _APP_WORKER_PER_CORE=${_APP_WORKER_PER_CORE:-6} - _APP_OPENSSL_KEY_V1=${_APP_OPENSSL_KEY_V1} - _APP_REDIS_HOST=${_APP_REDIS_HOST:-appwrite-redis} - _APP_REDIS_PORT=${_APP_REDIS_PORT:-6379} - _APP_REDIS_USER=${_APP_REDIS_USER} - _APP_REDIS_PASS=${_APP_REDIS_PASS} - _APP_DB_HOST=${_APP_DB_HOST:-appwrite-mariadb} - _APP_DB_PORT=${_APP_DB_PORT:-3306} - _APP_DB_SCHEMA=${_APP_DB_SCHEMA:-appwrite} - _APP_DB_USER=$SERVICE_USER_MARIADB - _APP_DB_PASS=$SERVICE_PASSWORD_MARIADB - _APP_LOGGING_PROVIDER=${_APP_LOGGING_PROVIDER} - _APP_LOGGING_CONFIG=${_APP_LOGGING_CONFIG} appwrite-worker-webhooks: image: appwrite/appwrite:1.6 entrypoint: worker-webhooks <<: *x-logging container_name: appwrite-worker-webhooks depends_on: - appwrite-redis - appwrite-mariadb environment: - _APP_ENV=${_APP_ENV:-production} - _APP_WORKER_PER_CORE=${_APP_WORKER_PER_CORE:-6} - _APP_OPENSSL_KEY_V1=${_APP_OPENSSL_KEY_V1} - _APP_SYSTEM_SECURITY_EMAIL_ADDRESS=${_APP_SYSTEM_SECURITY_EMAIL_ADDRESS:-certs@appwrite.io} - _APP_REDIS_HOST=${_APP_REDIS_HOST:-appwrite-redis} - _APP_REDIS_PORT=${_APP_REDIS_PORT:-6379} - _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: appwrite/appwrite:1.6 entrypoint: worker-deletes <<: *x-logging container_name: appwrite-worker-deletes depends_on: - appwrite-redis - appwrite-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:-production} - _APP_WORKER_PER_CORE=${_APP_WORKER_PER_CORE:-6} - _APP_OPENSSL_KEY_V1=${_APP_OPENSSL_KEY_V1} - _APP_REDIS_HOST=${_APP_REDIS_HOST:-appwrite-redis} - _APP_REDIS_PORT=${_APP_REDIS_PORT:-6379} - _APP_REDIS_USER=${_APP_REDIS_USER} - _APP_REDIS_PASS=${_APP_REDIS_PASS} - _APP_DB_HOST=${_APP_DB_HOST:-appwrite-mariadb} - _APP_DB_PORT=${_APP_DB_PORT:-3306} - _APP_DB_SCHEMA=${_APP_DB_SCHEMA:-appwrite} - _APP_DB_USER=$SERVICE_USER_MARIADB - _APP_DB_PASS=$SERVICE_PASSWORD_MARIADB - _APP_STORAGE_DEVICE=${_APP_STORAGE_DEVICE:-local} - _APP_STORAGE_S3_ACCESS_KEY=${_APP_STORAGE_S3_ACCESS_KEY:-local} - _APP_STORAGE_S3_SECRET=${_APP_STORAGE_S3_SECRET} - _APP_STORAGE_S3_REGION=${_APP_STORAGE_S3_REGION:-us-east-1} - _APP_STORAGE_S3_BUCKET=${_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:-us-east-1} - _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:-us-west-004} - _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:-eu-central-1} - _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:-eu-central-1} - _APP_STORAGE_WASABI_BUCKET=${_APP_STORAGE_WASABI_BUCKET} - _APP_LOGGING_PROVIDER=${_APP_LOGGING_PROVIDER} - _APP_LOGGING_CONFIG=${_APP_LOGGING_CONFIG} - _APP_EXECUTOR_SECRET=$SERVICE_PASSWORD_64_APPWRITE - _APP_EXECUTOR_HOST=${_APP_EXECUTOR_HOST:-http://appwrite-executor/v1} appwrite-worker-databases: image: appwrite/appwrite:1.6 entrypoint: worker-databases <<: *x-logging container_name: appwrite-worker-databases depends_on: - appwrite-redis - appwrite-mariadb environment: - _APP_ENV=${_APP_ENV:-production} - _APP_WORKER_PER_CORE=${_APP_WORKER_PER_CORE:-6} - _APP_OPENSSL_KEY_V1=${_APP_OPENSSL_KEY_V1} - _APP_REDIS_HOST=${_APP_REDIS_HOST:-appwrite-redis} - _APP_REDIS_PORT=${_APP_REDIS_PORT:-6379} - _APP_REDIS_USER=${_APP_REDIS_USER} - _APP_REDIS_PASS=${_APP_REDIS_PASS} - _APP_DB_HOST=${_APP_DB_HOST:-appwrite-mariadb} - _APP_DB_PORT=${_APP_DB_PORT:-3306} - _APP_DB_SCHEMA=${_APP_DB_SCHEMA:-appwrite} - _APP_DB_USER=$SERVICE_USER_MARIADB - _APP_DB_PASS=$SERVICE_PASSWORD_MARIADB - _APP_LOGGING_PROVIDER=${_APP_LOGGING_PROVIDER} - _APP_LOGGING_CONFIG=${_APP_LOGGING_CONFIG} appwrite-worker-builds: image: appwrite/appwrite:1.6 entrypoint: worker-builds <<: *x-logging container_name: appwrite-worker-builds depends_on: - appwrite-redis - appwrite-mariadb volumes: - appwrite-functions:/storage/functions:rw - appwrite-builds:/storage/builds:rw environment: - _APP_ENV=${_APP_ENV:-production} - _APP_WORKER_PER_CORE=${_APP_WORKER_PER_CORE:-6} - _APP_OPENSSL_KEY_V1=${_APP_OPENSSL_KEY_V1} - _APP_EXECUTOR_SECRET=$SERVICE_PASSWORD_64_APPWRITE - _APP_EXECUTOR_HOST=${_APP_EXECUTOR_HOST:-http://appwrite-executor/v1} - _APP_REDIS_HOST=${_APP_REDIS_HOST:-appwrite-redis} - _APP_REDIS_PORT=${_APP_REDIS_PORT:-6379} - _APP_REDIS_USER=${_APP_REDIS_USER} - _APP_REDIS_PASS=${_APP_REDIS_PASS} - _APP_DB_HOST=${_APP_DB_HOST:-appwrite-mariadb} - _APP_DB_PORT=${_APP_DB_PORT:-3306} - _APP_DB_SCHEMA=${_APP_DB_SCHEMA:-appwrite} - _APP_DB_USER=$SERVICE_USER_MARIADB - _APP_DB_PASS=$SERVICE_PASSWORD_MARIADB - _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:-900} - _APP_FUNCTIONS_BUILD_TIMEOUT=${_APP_FUNCTIONS_BUILD_TIMEOUT:-900} - _APP_FUNCTIONS_CPUS=${_APP_FUNCTIONS_CPUS:-0} - _APP_FUNCTIONS_MEMORY=${_APP_FUNCTIONS_MEMORY:-0} - _APP_OPTIONS_FORCE_HTTPS=${_APP_OPTIONS_FORCE_HTTPS:-disabled} - _APP_DOMAIN=$SERVICE_FQDN_APPWRITE - _APP_STORAGE_DEVICE=${_APP_STORAGE_DEVICE:-local} - _APP_STORAGE_S3_ACCESS_KEY=${_APP_STORAGE_S3_ACCESS_KEY:-local} - _APP_STORAGE_S3_SECRET=${_APP_STORAGE_S3_SECRET} - _APP_STORAGE_S3_REGION=${_APP_STORAGE_S3_REGION:-us-east-1} - _APP_STORAGE_S3_BUCKET=${_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:-us-east-1} - _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:-us-west-004} - _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:-eu-central-1} - _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:-eu-central-1} - _APP_STORAGE_WASABI_BUCKET=${_APP_STORAGE_WASABI_BUCKET} appwrite-worker-certificates: image: appwrite/appwrite:1.6 entrypoint: worker-certificates <<: *x-logging container_name: appwrite-worker-certificates depends_on: - appwrite-redis - appwrite-mariadb volumes: - appwrite-config:/storage/config:rw - appwrite-certificates:/storage/certificates:rw environment: - _APP_ENV=${_APP_ENV:-production} - _APP_WORKER_PER_CORE=${_APP_WORKER_PER_CORE:-6} - _APP_OPENSSL_KEY_V1=${_APP_OPENSSL_KEY_V1} - _APP_DOMAIN=$SERVICE_FQDN_APPWRITE - _APP_DOMAIN_TARGET=$SERVICE_FQDN_APPWRITE - _APP_DOMAIN_FUNCTIONS=$SERVICE_FQDN_APPWRITE - _APP_SYSTEM_SECURITY_EMAIL_ADDRESS=${_APP_SYSTEM_SECURITY_EMAIL_ADDRESS:-certs@appwrite.io} - _APP_REDIS_HOST=${_APP_REDIS_HOST:-appwrite-redis} - _APP_REDIS_PORT=${_APP_REDIS_PORT:-6379} - _APP_REDIS_USER=${_APP_REDIS_USER} - _APP_REDIS_PASS=${_APP_REDIS_PASS} - _APP_DB_HOST=${_APP_DB_HOST:-appwrite-mariadb} - _APP_DB_PORT=${_APP_DB_PORT:-3306} - _APP_DB_SCHEMA=${_APP_DB_SCHEMA:-appwrite} - _APP_DB_USER=$SERVICE_USER_MARIADB - _APP_DB_PASS=$SERVICE_PASSWORD_MARIADB - _APP_LOGGING_PROVIDER=${_APP_LOGGING_PROVIDER} - _APP_LOGGING_CONFIG=${_APP_LOGGING_CONFIG} appwrite-worker-functions: image: appwrite/appwrite:1.6 entrypoint: worker-functions <<: *x-logging container_name: appwrite-worker-functions depends_on: - appwrite-redis - appwrite-mariadb - openruntimes-executor environment: - _APP_ENV=${_APP_ENV:-production} - _APP_WORKER_PER_CORE=${_APP_WORKER_PER_CORE:-6} - _APP_OPENSSL_KEY_V1=${_APP_OPENSSL_KEY_V1} - _APP_REDIS_HOST=${_APP_REDIS_HOST:-appwrite-redis} - _APP_REDIS_PORT=${_APP_REDIS_PORT:-6379} - _APP_REDIS_USER=${_APP_REDIS_USER} - _APP_REDIS_PASS=${_APP_REDIS_PASS} - _APP_DB_HOST=${_APP_DB_HOST:-appwrite-mariadb} - _APP_DB_PORT=${_APP_DB_PORT:-3306} - _APP_DB_SCHEMA=${_APP_DB_SCHEMA:-appwrite} - _APP_DB_USER=$SERVICE_USER_MARIADB - _APP_DB_PASS=$SERVICE_PASSWORD_MARIADB - _APP_FUNCTIONS_TIMEOUT=${_APP_FUNCTIONS_TIMEOUT:-900} - _APP_FUNCTIONS_BUILD_TIMEOUT=${_APP_FUNCTIONS_BUILD_TIMEOUT:-900} - _APP_FUNCTIONS_CPUS=${_APP_FUNCTIONS_CPUS:-0} - _APP_FUNCTIONS_MEMORY=${_APP_FUNCTIONS_MEMORY:-0} - _APP_EXECUTOR_SECRET=$SERVICE_PASSWORD_64_APPWRITE - _APP_EXECUTOR_HOST=${_APP_EXECUTOR_HOST:-http://appwrite-executor/v1} - _APP_USAGE_STATS=${_APP_USAGE_STATS:-enabled} - _APP_DOCKER_HUB_USERNAME=${_APP_DOCKER_HUB_USERNAME} - _APP_DOCKER_HUB_PASSWORD=${_APP_DOCKER_HUB_PASSWORD} - _APP_DOCKER_HUB_EMAIL=${_APP_DOCKER_HUB_EMAIL} - _APP_LOGGING_CONFIG=${_APP_LOGGING_CONFIG} - _APP_LOGGING_PROVIDER=${_APP_LOGGING_PROVIDER} appwrite-worker-mails: image: appwrite/appwrite:1.6 entrypoint: worker-mails <<: *x-logging container_name: appwrite-worker-mails depends_on: - appwrite-redis environment: - _APP_ENV=${_APP_ENV:-production} - _APP_WORKER_PER_CORE=${_APP_WORKER_PER_CORE:-6} - _APP_OPENSSL_KEY_V1=${_APP_OPENSSL_KEY_V1} - _APP_SYSTEM_EMAIL_NAME=${_APP_SYSTEM_EMAIL_NAME:-Appwrite} - _APP_SYSTEM_EMAIL_ADDRESS=${_APP_SYSTEM_EMAIL_ADDRESS:-team@appwrite.io} - _APP_REDIS_HOST=${_APP_REDIS_HOST:-appwrite-redis} - _APP_REDIS_PORT=${_APP_REDIS_PORT:-6379} - _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: appwrite/appwrite:1.6 entrypoint: worker-messaging <<: *x-logging container_name: appwrite-worker-messaging depends_on: - appwrite-redis environment: - _APP_ENV=${_APP_ENV:-production} - _APP_WORKER_PER_CORE=${_APP_WORKER_PER_CORE:-6} - _APP_OPENSSL_KEY_V1=${_APP_OPENSSL_KEY_V1} - _APP_REDIS_HOST=${_APP_REDIS_HOST:-appwrite-redis} - _APP_REDIS_PORT=${_APP_REDIS_PORT:-6379} - _APP_REDIS_USER=${_APP_REDIS_USER} - _APP_REDIS_PASS=${_APP_REDIS_PASS} - _APP_DB_HOST=${_APP_DB_HOST:-appwrite-mariadb} - _APP_DB_PORT=${_APP_DB_PORT:-3306} - _APP_DB_SCHEMA=${_APP_DB_SCHEMA:-appwrite} - _APP_DB_USER=$SERVICE_USER_MARIADB - _APP_DB_PASS=$SERVICE_PASSWORD_MARIADB - _APP_LOGGING_PROVIDER=${_APP_LOGGING_PROVIDER} - _APP_LOGGING_CONFIG=${_APP_LOGGING_CONFIG} - _APP_SMS_FROM=${_APP_SMS_FROM} - _APP_SMS_PROVIDER=${_APP_SMS_PROVIDER} appwrite-worker-migrations: image: appwrite/appwrite:1.6 entrypoint: worker-migrations <<: *x-logging container_name: appwrite-worker-migrations depends_on: - appwrite-mariadb environment: - _APP_ENV=${_APP_ENV:-production} - _APP_WORKER_PER_CORE=${_APP_WORKER_PER_CORE:-6} - _APP_OPENSSL_KEY_V1=${_APP_OPENSSL_KEY_V1} - _APP_DOMAIN=$SERVICE_FQDN_APPWRITE - _APP_DOMAIN_TARGET=$SERVICE_FQDN_APPWRITE - _APP_SYSTEM_SECURITY_EMAIL_ADDRESS=${_APP_SYSTEM_SECURITY_EMAIL_ADDRESS:-certs@appwrite.io} - _APP_REDIS_HOST=${_APP_REDIS_HOST:-appwrite-redis} - _APP_REDIS_PORT=${_APP_REDIS_PORT:-6379} - _APP_REDIS_USER=${_APP_REDIS_USER} - _APP_REDIS_PASS=${_APP_REDIS_PASS} - _APP_DB_HOST=${_APP_DB_HOST:-appwrite-mariadb} - _APP_DB_PORT=${_APP_DB_PORT:-3306} - _APP_DB_SCHEMA=${_APP_DB_SCHEMA:-appwrite} - _APP_DB_USER=$SERVICE_USER_MARIADB - _APP_DB_PASS=$SERVICE_PASSWORD_MARIADB - _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: appwrite/appwrite:1.6 entrypoint: maintenance <<: *x-logging container_name: appwrite-maintenance depends_on: - appwrite-redis environment: - _APP_ENV=${_APP_ENV:-production} - _APP_WORKER_PER_CORE=${_APP_WORKER_PER_CORE:-6} - _APP_DOMAIN=$SERVICE_FQDN_APPWRITE - _APP_DOMAIN_TARGET=$SERVICE_FQDN_APPWRITE - _APP_DOMAIN_FUNCTIONS=$SERVICE_FQDN_APPWRITE - _APP_OPENSSL_KEY_V1=${_APP_OPENSSL_KEY_V1} - _APP_REDIS_HOST=${_APP_REDIS_HOST:-appwrite-redis} - _APP_REDIS_PORT=${_APP_REDIS_PORT:-6379} - _APP_REDIS_USER=${_APP_REDIS_USER} - _APP_REDIS_PASS=${_APP_REDIS_PASS} - _APP_DB_HOST=${_APP_DB_HOST:-appwrite-mariadb} - _APP_DB_PORT=${_APP_DB_PORT:-3306} - _APP_DB_SCHEMA=${_APP_DB_SCHEMA:-appwrite} - _APP_DB_USER=$SERVICE_USER_MARIADB - _APP_DB_PASS=$SERVICE_PASSWORD_MARIADB - _APP_MAINTENANCE_INTERVAL=${_APP_MAINTENANCE_INTERVAL} - _APP_MAINTENANCE_RETENTION_EXECUTION=${_APP_MAINTENANCE_RETENTION_EXECUTION} - _APP_MAINTENANCE_RETENTION_CACHE=${_APP_MAINTENANCE_RETENTION_CACHE:-2592000} - _APP_MAINTENANCE_RETENTION_ABUSE=${_APP_MAINTENANCE_RETENTION_ABUSE:-86400} - _APP_MAINTENANCE_RETENTION_AUDIT=${_APP_MAINTENANCE_RETENTION_AUDIT:-1209600} - _APP_MAINTENANCE_RETENTION_USAGE_HOURLY=${_APP_MAINTENANCE_RETENTION_USAGE_HOURLY:-8640000} - _APP_MAINTENANCE_RETENTION_SCHEDULES=${_APP_MAINTENANCE_RETENTION_SCHEDULES:-86400} appwrite-worker-usage: image: appwrite/appwrite:1.6 entrypoint: worker-usage container_name: appwrite-worker-usage <<: *x-logging restart: unless-stopped depends_on: - appwrite-redis - appwrite-mariadb environment: - _APP_ENV=${_APP_ENV:-production} - _APP_WORKER_PER_CORE=${_APP_WORKER_PER_CORE:-6} - _APP_OPENSSL_KEY_V1=${_APP_OPENSSL_KEY_V1} - _APP_DB_HOST=${_APP_DB_HOST:-appwrite-mariadb} - _APP_DB_PORT=${_APP_DB_PORT:-3306} - _APP_DB_SCHEMA=${_APP_DB_SCHEMA:-appwrite} - _APP_DB_USER=$SERVICE_USER_MARIADB - _APP_DB_PASS=$SERVICE_PASSWORD_MARIADB - _APP_REDIS_HOST=${_APP_REDIS_HOST:-appwrite-redis} - _APP_REDIS_PORT=${_APP_REDIS_PORT:-6379} - _APP_REDIS_USER=${_APP_REDIS_USER} - _APP_REDIS_PASS=${_APP_REDIS_PASS} - _APP_USAGE_STATS=${_APP_USAGE_STATS:-enabled} - _APP_LOGGING_PROVIDER=${_APP_LOGGING_PROVIDER} - _APP_LOGGING_CONFIG=${_APP_LOGGING_CONFIG} - _APP_USAGE_AGGREGATION_INTERVAL=${_APP_USAGE_AGGREGATION_INTERVAL:-30} appwrite-worker-usage-dump: image: appwrite/appwrite:1.6 entrypoint: worker-usage-dump <<: *x-logging container_name: appwrite-worker-usage-dump depends_on: - appwrite-redis - appwrite-mariadb environment: - _APP_ENV=${_APP_ENV:-production} - _APP_WORKER_PER_CORE=${_APP_WORKER_PER_CORE:-6} - _APP_OPENSSL_KEY_V1=${_APP_OPENSSL_KEY_V1} - _APP_DB_HOST=${_APP_DB_HOST:-appwrite-mariadb} - _APP_DB_PORT=${_APP_DB_PORT:-3306} - _APP_DB_SCHEMA=${_APP_DB_SCHEMA:-appwrite} - _APP_DB_USER=$SERVICE_USER_MARIADB - _APP_DB_PASS=$SERVICE_PASSWORD_MARIADB - _APP_REDIS_HOST=${_APP_REDIS_HOST:-appwrite-redis} - _APP_REDIS_PORT=${_APP_REDIS_PORT:-6379} - _APP_REDIS_USER=${_APP_REDIS_USER} - _APP_REDIS_PASS=${_APP_REDIS_PASS} - _APP_USAGE_STATS=${_APP_USAGE_STATS:-enabled} - _APP_LOGGING_PROVIDER=${_APP_LOGGING_PROVIDER} - _APP_LOGGING_CONFIG=${_APP_LOGGING_CONFIG} - _APP_USAGE_AGGREGATION_INTERVAL=${_APP_USAGE_AGGREGATION_INTERVAL:-30} appwrite-scheduler-functions: image: appwrite/appwrite:1.6 entrypoint: schedule-functions container_name: appwrite-scheduler-functions <<: *x-logging restart: unless-stopped depends_on: - appwrite-mariadb - appwrite-redis environment: - _APP_ENV=${_APP_ENV:-production} - _APP_WORKER_PER_CORE=${_APP_WORKER_PER_CORE:-6} - _APP_OPENSSL_KEY_V1=${_APP_OPENSSL_KEY_V1} - _APP_REDIS_HOST=${_APP_REDIS_HOST:-appwrite-redis} - _APP_REDIS_PORT=${_APP_REDIS_PORT:-6379} - _APP_REDIS_USER=${_APP_REDIS_USER} - _APP_REDIS_PASS=${_APP_REDIS_PASS} - _APP_DB_HOST=${_APP_DB_HOST:-appwrite-mariadb} - _APP_DB_PORT=${_APP_DB_PORT:-3306} - _APP_DB_SCHEMA=${_APP_DB_SCHEMA:-appwrite} - _APP_DB_USER=$SERVICE_USER_MARIADB - _APP_DB_PASS=$SERVICE_PASSWORD_MARIADB appwrite-scheduler-messages: image: appwrite/appwrite:1.6 entrypoint: schedule-messages container_name: appwrite-scheduler-messages <<: *x-logging restart: unless-stopped depends_on: - appwrite-mariadb - appwrite-redis environment: - _APP_ENV=${_APP_ENV:-production} - _APP_WORKER_PER_CORE=${_APP_WORKER_PER_CORE:-6} - _APP_OPENSSL_KEY_V1=${_APP_OPENSSL_KEY_V1} - _APP_REDIS_HOST=${_APP_REDIS_HOST:-appwrite-redis} - _APP_REDIS_PORT=${_APP_REDIS_PORT:-6379} - _APP_REDIS_USER=${_APP_REDIS_USER} - _APP_REDIS_PASS=${_APP_REDIS_PASS} - _APP_DB_HOST=${_APP_DB_HOST:-appwrite-mariadb} - _APP_DB_PORT=${_APP_DB_PORT:-3306} - _APP_DB_SCHEMA=${_APP_DB_SCHEMA:-appwrite} - _APP_DB_USER=$SERVICE_USER_MARIADB - _APP_DB_PASS=$SERVICE_PASSWORD_MARIADB appwrite-assistant: image: appwrite/assistant:0.4.0 container_name: appwrite-assistant environment: - _APP_ASSISTANT_OPENAI_API_KEY openruntimes-executor: container_name: openruntimes-executor hostname: appwrite-executor <<: *x-logging stop_signal: SIGINT image: openruntimes/executor:0.4.9 volumes: - /var/run/docker.sock:/var/run/docker.sock - appwrite-builds:/storage/builds:rw - appwrite-functions:/storage/functions:rw - /tmp:/tmp:rw 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:-production} - OPR_EXECUTOR_RUNTIMES=${_APP_FUNCTIONS_RUNTIMES} - OPR_EXECUTOR_SECRET=$SERVICE_PASSWORD_64_APPWRITE - OPR_EXECUTOR_LOGGING_PROVIDER=${_APP_LOGGING_PROVIDER} - OPR_EXECUTOR_LOGGING_CONFIG=${_APP_LOGGING_CONFIG} - OPR_EXECUTOR_STORAGE_DEVICE=${_APP_STORAGE_DEVICE:-local} - OPR_EXECUTOR_STORAGE_S3_ACCESS_KEY=${_APP_STORAGE_S3_ACCESS_KEY:-local} - 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} appwrite-mariadb: image: mariadb:10.11 container_name: appwrite-mariadb <<: *x-logging volumes: - appwrite-mariadb:/var/lib/mysql:rw environment: - MYSQL_ROOT_PASSWORD=$SERVICE_PASSWORD_MARIADBROOT - MYSQL_DATABASE=${_APP_DB_SCHEMA:-appwrite} - MYSQL_USER=$SERVICE_USER_MARIADB - MYSQL_PASSWORD=$SERVICE_PASSWORD_MARIADB command: 'mysqld --innodb-flush-method=fsync' appwrite-redis: image: redis:7.2.4-alpine container_name: appwrite-redis <<: *x-logging command: > redis-server --maxmemory 512mb --maxmemory-policy allkeys-lru --maxmemory-samples 5 volumes: - appwrite-redis:/data:rw volumes: appwrite-mariadb: appwrite-redis: appwrite-cache: appwrite-uploads: appwrite-certificates: appwrite-functions: appwrite-builds: appwrite-config: