- templateVersion: 1.0.0
defaultVersion: 1.0.3
name: Appwrite
documentation: https://appwrite.io/docs
description: Secure Backend Server for Web, Mobile & Flutter Developers.
services:
"$$id":
image: appwrite/appwrite:$$core_version
environment:
- _APP_ENV=$$config__app_env
- _APP_WORKER_PER_CORE=$$config__app_worker_per_core
- _APP_LOCALE=$$config__app_locale
- _APP_CONSOLE_WHITELIST_ROOT=$$config__app_console_whitelist_root
- _APP_CONSOLE_WHITELIST_EMAILS=$$config__app_console_whitelist_emails
- _APP_CONSOLE_WHITELIST_IPS=$$config__app_console_whitelist_ips
- _APP_SYSTEM_EMAIL_NAME=$$config__app_system_email_name
- _APP_SYSTEM_EMAIL_ADDRESS=$$config__app_system_email_address
- _APP_SYSTEM_SECURITY_EMAIL_ADDRESS=$$config__app_system_security_email_address
- _APP_SYSTEM_RESPONSE_FORMAT=$$config__app_system_response_format
- _APP_OPTIONS_ABUSE=$$config__app_options_abuse
- _APP_OPTIONS_FORCE_HTTPS=$$config__app_options_force_https
- _APP_OPENSSL_KEY_V1=$$secret__app_openssl_key_v1
- _APP_DOMAIN=$$generate_fqdn
- _APP_DOMAIN_TARGET=$$generate_fqdn
- _APP_REDIS_HOST=$$config__app_redis_host
- _APP_REDIS_PORT=$$config__app_redis_port
- _APP_REDIS_USER=$$config__app_redis_user
- _APP_REDIS_PASS=$$secret__app_redis_pass
- _APP_DB_HOST=$$config__app_db_host
- _APP_DB_PORT=$$config__app_db_port
- _APP_DB_SCHEMA=$$config__app_db_schema
- _APP_DB_USER=$$config__app_db_user
- _APP_DB_PASS=$$secret__app_db_pass
- _APP_SMTP_HOST=$$config__app_smtp_host
- _APP_SMTP_PORT=$$config__app_smtp_port
- _APP_SMTP_SECURE=$$config__app_smtp_secure
- _APP_SMTP_USERNAME=$$config__app_smtp_username
- _APP_SMTP_PASSWORD=$$secret__app_smtp_password
- _APP_USAGE_STATS=$$config__app_usage_stats
- _APP_INFLUXDB_HOST=$$config__app_influxdb_host
- _APP_INFLUXDB_PORT=$$config__app_influxdb_port
- _APP_STORAGE_LIMIT=$$config__app_storage_limit
- _APP_STORAGE_PREVIEW_LIMIT=$$config__app_storage_preview_limit
- _APP_STORAGE_ANTIVIRUS=$$config__app_storage_antivirus_enabled
- _APP_STORAGE_ANTIVIRUS_HOST=$$config__app_storage_antivirus_host
- _APP_STORAGE_ANTIVIRUS_PORT=$$config__app_storage_antivirus_port
- _APP_STORAGE_DEVICE=$$config__app_storage_device
- _APP_STORAGE_S3_ACCESS_KEY=$$secret__app_storage_s3_access_key
- _APP_STORAGE_S3_SECRET=$$secret__app_storage_s3_secret
- _APP_STORAGE_S3_REGION=$$config__app_storage_s3_region
- _APP_STORAGE_S3_BUCKET=$$config__app_storage_s3_bucket
- _APP_STORAGE_DO_SPACES_ACCESS_KEY=$$secret__app_storage_do_spaces_access_key
- _APP_STORAGE_DO_SPACES_SECRET=$$secret__app_storage_do_spaces_secret
- _APP_STORAGE_DO_SPACES_REGION=$$config__app_storage_do_spaces_region
- _APP_STORAGE_DO_SPACES_BUCKET=$$config__app_storage_do_spaces_bucket
- _APP_STORAGE_BACKBLAZE_ACCESS_KEY=$$secret__app_storage_backblaze_access_key
- _APP_STORAGE_BACKBLAZE_SECRET=$$secret__app_storage_backblaze_secret
- _APP_STORAGE_BACKBLAZE_REGION=$$config__app_storage_backblaze_region
- _APP_STORAGE_BACKBLAZE_BUCKET=$$config__app_storage_backblaze_bucket
- _APP_STORAGE_LINODE_ACCESS_KEY=$$secret__app_storage_linode_access_key
- _APP_STORAGE_LINODE_SECRET=$$secret__app_storage_linode_secret
- _APP_STORAGE_LINODE_REGION=$$config__app_storage_linode_region
- _APP_STORAGE_LINODE_BUCKET=$$config__app_storage_linode_bucket
- _APP_STORAGE_WASABI_ACCESS_KEY=$$secret__app_storage_wasabi_access_key
- _APP_STORAGE_WASABI_SECRET=$$secret__app_storage_wasabi_secret
- _APP_STORAGE_WASABI_REGION=$$config__app_storage_wasabi_region
- _APP_STORAGE_WASABI_BUCKET=$$config__app_storage_wasabi_bucket
- _APP_FUNCTIONS_SIZE_LIMIT=$$config__app_functions_size_limit
- _APP_FUNCTIONS_TIMEOUT=$$config__app_functions_timeout
- _APP_FUNCTIONS_BUILD_TIMEOUT=$$config__app_functions_build_timeout
- _APP_FUNCTIONS_CONTAINERS=$$config__app_functions_containers
- _APP_FUNCTIONS_CPUS=$$config__app_functions_cpus
- _APP_FUNCTIONS_MEMORY=$$config__app_functions_memory_allocated
- _APP_FUNCTIONS_MEMORY_SWAP=$$config__app_functions_memory_swap
- _APP_FUNCTIONS_RUNTIMES=$$config__app_functions_runtimes
- _APP_EXECUTOR_SECRET=$$secret__app_executor_secret
- _APP_EXECUTOR_HOST=$$config__app_executor_host
- _APP_LOGGING_PROVIDER=$$config__app_logging_provider
- _APP_LOGGING_CONFIG=$$config__app_logging_config
- _APP_STATSD_HOST=$$config__app_statsd_host
- _APP_STATSD_PORT=$$config__app_statsd_port
- _APP_MAINTENANCE_INTERVAL=$$config__app_maintenance_interval
- _APP_MAINTENANCE_RETENTION_EXECUTION=$$config__app_maintenance_retention_execution
- _APP_MAINTENANCE_RETENTION_CACHE=$$config__app_maintenance_retention_cache
- _APP_MAINTENANCE_RETENTION_ABUSE=$$config__app_maintenance_retention_abuse
- _APP_MAINTENANCE_RETENTION_AUDIT=$$config__app_maintenance_retention_audit
- _APP_SMS_PROVIDER=$$config__app_sms_provider
- _APP_SMS_FROM=$$config__app_sms_from
- OPEN_RUNTIMES_NETWORK=$$config_open_runtimes_network
volumes:
- "$$id-uploads:/storage/uploads"
- "$$id-cache:/storage/cache"
- "$$id-config:/storage/config"
- "$$id-certificates:/storage/certificates"
- "$$id-functions:/storage/functions"
ports:
- '80'
proxy:
- port: '80'
"$$id-executor":
image: appwrite/appwrite:$$core_version
environment:
- _APP_ENV=$$config__app_env
- _APP_FUNCTIONS_TIMEOUT=$$config__app_functions_timeout
- _APP_FUNCTIONS_BUILD_TIMEOUT=$$config__app_functions_build_timeout
- _APP_FUNCTIONS_CONTAINERS=$$config__app_functions_containers
- _APP_FUNCTIONS_RUNTIMES=$$config__app_functions_runtimes
- _APP_FUNCTIONS_CPUS=$$config__app_functions_cpus
- _APP_FUNCTIONS_MEMORY=$$config__app_functions_memory_allocated
- _APP_FUNCTIONS_MEMORY_SWAP=$$config__app_functions_memory_swap
- _APP_FUNCTIONS_INACTIVE_THRESHOLD=$$config__app_functions_inactive_threshold
- _APP_EXECUTOR_SECRET=$$secret__app_executor_secret
- _APP_LOGGING_PROVIDER=$$config__app_logging_provider
- _APP_LOGGING_CONFIG=$$config__app_logging_config
- _APP_STORAGE_DEVICE=$$config__app_storage_device
- _APP_STORAGE_S3_ACCESS_KEY=$$secret__app_storage_s3_access_key
- _APP_STORAGE_S3_SECRET=$$secret__app_storage_s3_secret
- _APP_STORAGE_S3_REGION=$$config__app_storage_s3_region
- _APP_STORAGE_S3_BUCKET=$$config__app_storage_s3_bucket
- _APP_STORAGE_DO_SPACES_ACCESS_KEY=$$secret__app_storage_do_spaces_access_key
- _APP_STORAGE_DO_SPACES_SECRET=$$secret__app_storage_do_spaces_secret
- _APP_STORAGE_DO_SPACES_REGION=$$config__app_storage_do_spaces_region
- _APP_STORAGE_DO_SPACES_BUCKET=$$config__app_storage_do_spaces_bucket
- _APP_STORAGE_BACKBLAZE_ACCESS_KEY=$$secret__app_storage_backblaze_access_key
- _APP_STORAGE_BACKBLAZE_SECRET=$$secret__app_storage_backblaze_secret
- _APP_STORAGE_BACKBLAZE_REGION=$$config__app_storage_backblaze_region
- _APP_STORAGE_BACKBLAZE_BUCKET=$$config__app_storage_backblaze_bucket
- _APP_STORAGE_LINODE_ACCESS_KEY=$$secret__app_storage_linode_access_key
- _APP_STORAGE_LINODE_SECRET=$$secret__app_storage_linode_secret
- _APP_STORAGE_LINODE_REGION=$$config__app_storage_linode_region
- _APP_STORAGE_LINODE_BUCKET=$$config__app_storage_linode_bucket
- _APP_STORAGE_WASABI_ACCESS_KEY=$$secret__app_storage_wasabi_access_key
- _APP_STORAGE_WASABI_SECRET=$$secret__app_storage_wasabi_secret
- _APP_STORAGE_WASABI_REGION=$$config__app_storage_wasabi_region
- _APP_STORAGE_WASABI_BUCKET=$$config__app_storage_wasabi_bucket
- DOCKERHUB_PULL_USERNAME=$$config_dockerhub_pull_username
- DOCKERHUB_PULL_PASSWORD=$$secret_dockerhub_pull_password
- OPEN_RUNTIMES_NETWORK=$$config_open_runtimes_network
volumes:
- "$$id-functions:/storage/functions"
- "$$id-builds:/storage/builds"
- "/var/run/docker.sock:/var/run/docker.sock"
entrypoint: executor
"$$id-influxdb":
image: appwrite/influxdb:1.5.0
environment: []
volumes:
- "$$id-influxdb:/var/lib/influxdb"
"$$id-maintenance":
image: appwrite/appwrite:$$core_version
environment:
- _APP_ENV=$$config__app_env
- _APP_OPENSSL_KEY_V1=$$secret__app_openssl_key_v1
- _APP_DOMAIN=$$generate_fqdn
- _APP_DOMAIN_TARGET=$$generate_fqdn
- _APP_REDIS_HOST=$$config__app_redis_host
- _APP_REDIS_PORT=$$config__app_redis_port
- _APP_REDIS_USER=$$config__app_redis_user
- _APP_REDIS_PASS=$$secret__app_redis_pass
- _APP_DB_HOST=$$config__app_db_host
- _APP_DB_PORT=$$config__app_db_port
- _APP_DB_SCHEMA=$$config__app_db_schema
- _APP_DB_USER=$$config__app_db_user
- _APP_DB_PASS=$$secret__app_db_pass
- _APP_MAINTENANCE_INTERVAL=$$config__app_maintenance_interval
- _APP_MAINTENANCE_RETENTION_EXECUTION=$$config__app_maintenance_retention_execution
- _APP_MAINTENANCE_RETENTION_CACHE=$$config__app_maintenance_retention_cache
- _APP_MAINTENANCE_RETENTION_ABUSE=$$config__app_maintenance_retention_abuse
- _APP_MAINTENANCE_RETENTION_AUDIT=$$config__app_maintenance_retention_audit
- OPEN_RUNTIMES_NETWORK=$$config_open_runtimes_network
volumes: []
entrypoint: maintenance
"$$id-mariadb":
image: mariadb:10.7
command: "--innodb-flush-method fsync"
environment:
- MARIADB_ROOT_PASSWORD=$$secret__app_db_root_pass
- MARIADB_DATABASE=$$config__app_db_schema
- MARIADB_USER=$$config__app_db_user
- MARIADB_PASSWORD=$$secret__app_db_pass
- OPEN_RUNTIMES_NETWORK=$$config_open_runtimes_network
volumes:
- "$$id-mariadb:/var/lib/mysql"
"$$id-realtime":
image: appwrite/appwrite:$$core_version
environment:
- _APP_ENV=$$config__app_env
- _APP_WORKER_PER_CORE=$$config__app_worker_per_core
- _APP_OPTIONS_ABUSE=$$config__app_options_abuse
- _APP_OPENSSL_KEY_V1=$$secret__app_openssl_key_v1
- _APP_REDIS_HOST=$$config__app_redis_host
- _APP_REDIS_PORT=$$config__app_redis_port
- _APP_DB_HOST=$$config__app_db_host
- _APP_DB_PORT=$$config__app_db_port
- _APP_DB_SCHEMA=$$config__app_db_schema
- _APP_DB_USER=$$config__app_db_user
- _APP_DB_PASS=$$secret__app_db_pass
- _APP_USAGE_STATS=$$config__app_usage_stats
- _APP_LOGGING_PROVIDER=$$config__app_logging_provider
- _APP_LOGGING_CONFIG=$$config__app_logging_config
- OPEN_RUNTIMES_NETWORK=$$config_open_runtimes_network
volumes: []
entrypoint: realtime
proxy:
- port: '80'
pathPrefix: "/v1/realtime"
"$$id-redis":
image: redis:7.0.4-alpine
command: "--maxmemory 512mb --maxmemory-policy allkeys-lru --maxmemory-samples
5"
environment: []
volumes:
- "$$id-redis:/data"
"$$id-schedule":
image: appwrite/appwrite:$$core_version
environment:
- _APP_ENV=$$config__app_env
- _APP_REDIS_HOST=$$config__app_redis_host
- _APP_REDIS_PORT=$$config__app_redis_port
- _APP_REDIS_USER=$$config__app_redis_user
- _APP_REDIS_PASS=$$secret__app_redis_pass
- OPEN_RUNTIMES_NETWORK=$$config_open_runtimes_network
volumes: []
entrypoint: schedule
"$$id-telegraf":
image: appwrite/telegraf:1.4.0
environment:
- _APP_INFLUXDB_HOST=$$config__app_influxdb_host
- _APP_INFLUXDB_PORT=$$config__app_influxdb_port
- OPEN_RUNTIMES_NETWORK=$$config_open_runtimes_network
volumes:
- "$$id-influxdb:/var/lib/influxdb"
"$$id-usage-database":
image: appwrite/appwrite:$$core_version
environment:
- _APP_ENV=$$config__app_env
- _APP_OPENSSL_KEY_V1=$$secret__app_openssl_key_v1
- _APP_DB_HOST=$$config__app_db_host
- _APP_DB_PORT=$$config__app_db_port
- _APP_DB_SCHEMA=$$config__app_db_schema
- _APP_DB_USER=$$config__app_db_user
- _APP_DB_PASS=$$secret__app_db_pass
- _APP_INFLUXDB_HOST=$$config__app_influxdb_host
- _APP_INFLUXDB_PORT=$$config__app_influxdb_port
- _APP_USAGE_TIMESERIES_INTERVAL=$$config__app_usage_timeseries_interval
- _APP_USAGE_DATABASE_INTERVAL=$$config__app_usage_database_interval
- _APP_REDIS_HOST=$$config__app_redis_host
- _APP_REDIS_PORT=$$config__app_redis_port
- _APP_REDIS_USER=$$config__app_redis_user
- _APP_REDIS_PASS=$$secret__app_redis_pass
- _APP_LOGGING_PROVIDER=$$config__app_logging_provider
- _APP_LOGGING_CONFIG=$$config__app_logging_config
- OPEN_RUNTIMES_NETWORK=$$config_open_runtimes_network
volumes: []
entrypoint: usage --type database
"$$id-usage-timeseries":
image: appwrite/appwrite:$$core_version
environment:
- _APP_ENV=$$config__app_env
- _APP_OPENSSL_KEY_V1=$$secret__app_openssl_key_v1
- _APP_DB_HOST=$$config__app_db_host
- _APP_DB_PORT=$$config__app_db_port
- _APP_DB_SCHEMA=$$config__app_db_schema
- _APP_DB_USER=$$config__app_db_user
- _APP_DB_PASS=$$secret__app_db_pass
- _APP_INFLUXDB_HOST=$$config__app_influxdb_host
- _APP_INFLUXDB_PORT=$$config__app_influxdb_port
- _APP_USAGE_TIMESERIES_INTERVAL=$$config__app_usage_timeseries_interval
- _APP_USAGE_DATABASE_INTERVAL=$$config__app_usage_database_interval
- _APP_REDIS_HOST=$$config__app_redis_host
- _APP_REDIS_PORT=$$config__app_redis_port
- _APP_REDIS_USER=$$config__app_redis_user
- _APP_REDIS_PASS=$$secret__app_redis_pass
- _APP_LOGGING_PROVIDER=$$config__app_logging_provider
- _APP_LOGGING_CONFIG=$$config__app_logging_config
- OPEN_RUNTIMES_NETWORK=$$config_open_runtimes_network
volumes: []
entrypoint: usage --type timeseries
"$$id-worker-audits":
image: appwrite/appwrite:$$core_version
environment:
- _APP_ENV=$$config__app_env
- _APP_OPENSSL_KEY_V1=$$secret__app_openssl_key_v1
- _APP_REDIS_HOST=$$config__app_redis_host
- _APP_REDIS_PORT=$$config__app_redis_port
- _APP_REDIS_USER=$$config__app_redis_user
- _APP_REDIS_PASS=$$secret__app_redis_pass
- _APP_DB_HOST=$$config__app_db_host
- _APP_DB_PORT=$$config__app_db_port
- _APP_DB_SCHEMA=$$config__app_db_schema
- _APP_DB_USER=$$config__app_db_user
- _APP_DB_PASS=$$secret__app_db_pass
- _APP_LOGGING_PROVIDER=$$config__app_logging_provider
- _APP_LOGGING_CONFIG=$$config__app_logging_config
- OPEN_RUNTIMES_NETWORK=$$config_open_runtimes_network
volumes: []
entrypoint: worker-audits
"$$id-worker-builds":
image: appwrite/appwrite:$$core_version
environment:
- _APP_ENV=$$config__app_env
- _APP_OPENSSL_KEY_V1=$$secret__app_openssl_key_v1
- _APP_EXECUTOR_SECRET=$$secret__app_executor_secret
- _APP_EXECUTOR_HOST=$$config__app_executor_host
- _APP_REDIS_HOST=$$config__app_redis_host
- _APP_REDIS_PORT=$$config__app_redis_port
- _APP_REDIS_USER=$$config__app_redis_user
- _APP_REDIS_PASS=$$secret__app_redis_pass
- _APP_DB_HOST=$$config__app_db_host
- _APP_DB_PORT=$$config__app_db_port
- _APP_DB_SCHEMA=$$config__app_db_schema
- _APP_DB_USER=$$config__app_db_user
- _APP_DB_PASS=$$secret__app_db_pass
- _APP_LOGGING_PROVIDER=$$config__app_logging_provider
- _APP_LOGGING_CONFIG=$$config__app_logging_config
- OPEN_RUNTIMES_NETWORK=$$config_open_runtimes_network
volumes: []
entrypoint: worker-builds
"$$id-worker-certificates":
image: appwrite/appwrite:$$core_version
environment:
- _APP_ENV=$$config__app_env
- _APP_OPENSSL_KEY_V1=$$secret__app_openssl_key_v1
- _APP_DOMAIN=$$generate_fqdn
- _APP_DOMAIN_TARGET=$$generate_fqdn
- _APP_SYSTEM_SECURITY_EMAIL_ADDRESS=$$config__app_system_security_email_address
- _APP_REDIS_HOST=$$config__app_redis_host
- _APP_REDIS_PORT=$$config__app_redis_port
- _APP_REDIS_USER=$$config__app_redis_user
- _APP_REDIS_PASS=$$secret__app_redis_pass
- _APP_DB_HOST=$$config__app_db_host
- _APP_DB_PORT=$$config__app_db_port
- _APP_DB_SCHEMA=$$config__app_db_schema
- _APP_DB_USER=$$config__app_db_user
- _APP_DB_PASS=$$secret__app_db_pass
- _APP_LOGGING_PROVIDER=$$config__app_logging_provider
- _APP_LOGGING_CONFIG=$$config__app_logging_config
- OPEN_RUNTIMES_NETWORK=$$config_open_runtimes_network
volumes:
- "$$id-config:/storage/config"
- "$$id-certificates:/storage/certificates"
entrypoint: worker-certificates
"$$id-worker-databases":
image: appwrite/appwrite:$$core_version
environment:
- _APP_ENV=$$config__app_env
- _APP_OPENSSL_KEY_V1=$$secret__app_openssl_key_v1
- _APP_REDIS_HOST=$$config__app_redis_host
- _APP_REDIS_PORT=$$config__app_redis_port
- _APP_REDIS_USER=$$config__app_redis_user
- _APP_REDIS_PASS=$$secret__app_redis_pass
- _APP_DB_HOST=$$config__app_db_host
- _APP_DB_PORT=$$config__app_db_port
- _APP_DB_SCHEMA=$$config__app_db_schema
- _APP_DB_USER=$$config__app_db_user
- _APP_DB_PASS=$$secret__app_db_pass
- _APP_LOGGING_PROVIDER=$$config__app_logging_provider
- _APP_LOGGING_CONFIG=$$config__app_logging_config
- OPEN_RUNTIMES_NETWORK=$$config_open_runtimes_network
volumes: []
entrypoint: worker-databases
"$$id-worker-deletes":
image: appwrite/appwrite:$$core_version
environment:
- _APP_ENV=$$config__app_env
- _APP_OPENSSL_KEY_V1=$$secret__app_openssl_key_v1
- _APP_REDIS_HOST=$$config__app_redis_host
- _APP_REDIS_PORT=$$config__app_redis_port
- _APP_REDIS_USER=$$config__app_redis_user
- _APP_REDIS_PASS=$$secret__app_redis_pass
- _APP_DB_HOST=$$config__app_db_host
- _APP_DB_PORT=$$config__app_db_port
- _APP_DB_SCHEMA=$$config__app_db_schema
- _APP_DB_USER=$$config__app_db_user
- _APP_DB_PASS=$$secret__app_db_pass
- _APP_STORAGE_DEVICE=$$config__app_storage_device
- _APP_STORAGE_S3_ACCESS_KEY=$$secret__app_storage_s3_access_key
- _APP_STORAGE_S3_SECRET=$$secret__app_storage_s3_secret
- _APP_STORAGE_S3_REGION=$$config__app_storage_s3_region
- _APP_STORAGE_S3_BUCKET=$$config__app_storage_s3_bucket
- _APP_STORAGE_DO_SPACES_ACCESS_KEY=$$secret__app_storage_do_spaces_access_key
- _APP_STORAGE_DO_SPACES_SECRET=$$secret__app_storage_do_spaces_secret
- _APP_STORAGE_DO_SPACES_REGION=$$config__app_storage_do_spaces_region
- _APP_STORAGE_DO_SPACES_BUCKET=$$config__app_storage_do_spaces_bucket
- _APP_STORAGE_BACKBLAZE_ACCESS_KEY=$$secret__app_storage_backblaze_access_key
- _APP_STORAGE_BACKBLAZE_SECRET=$$secret__app_storage_backblaze_secret
- _APP_STORAGE_BACKBLAZE_REGION=$$config__app_storage_backblaze_region
- _APP_STORAGE_BACKBLAZE_BUCKET=$$config__app_storage_backblaze_bucket
- _APP_STORAGE_LINODE_ACCESS_KEY=$$secret__app_storage_linode_access_key
- _APP_STORAGE_LINODE_SECRET=$$secret__app_storage_linode_secret
- _APP_STORAGE_LINODE_REGION=$$config__app_storage_linode_region
- _APP_STORAGE_LINODE_BUCKET=$$config__app_storage_linode_bucket
- _APP_STORAGE_WASABI_ACCESS_KEY=$$secret__app_storage_wasabi_access_key
- _APP_STORAGE_WASABI_SECRET=$$secret__app_storage_wasabi_secret
- _APP_STORAGE_WASABI_REGION=$$config__app_storage_wasabi_region
- _APP_STORAGE_WASABI_BUCKET=$$config__app_storage_wasabi_bucket
- _APP_LOGGING_PROVIDER=$$config__app_logging_provider
- _APP_LOGGING_CONFIG=$$config__app_logging_config
- _APP_EXECUTOR_SECRET=$$secret__app_executor_secret
- _APP_EXECUTOR_HOST=$$config__app_executor_host
- OPEN_RUNTIMES_NETWORK=$$config_open_runtimes_network
volumes:
- "$$id-uploads:/storage/uploads"
- "$$id-cache:/storage/cache"
- "$$id-functions:/storage/functions"
- "$$id-builds:/storage/builds"
- "$$id-certificates:/storage/certificates"
entrypoint: worker-deletes
"$$id-worker-functions":
image: appwrite/appwrite:$$core_version
environment:
- _APP_ENV=$$config__app_env
- _APP_OPENSSL_KEY_V1=$$secret__app_openssl_key_v1
- _APP_REDIS_HOST=$$config__app_redis_host
- _APP_REDIS_PORT=$$config__app_redis_port
- _APP_REDIS_USER=$$config__app_redis_user
- _APP_REDIS_PASS=$$secret__app_redis_pass
- _APP_DB_HOST=$$config__app_db_host
- _APP_DB_PORT=$$config__app_db_port
- _APP_DB_SCHEMA=$$config__app_db_schema
- _APP_DB_USER=$$config__app_db_user
- _APP_DB_PASS=$$secret__app_db_pass
- _APP_FUNCTIONS_TIMEOUT=$$config__app_functions_timeout
- _APP_EXECUTOR_SECRET=$$secret__app_executor_secret
- _APP_EXECUTOR_HOST=$$config__app_executor_host
- _APP_USAGE_STATS=$$config__app_usage_stats
- DOCKERHUB_PULL_USERNAME=$$config_dockerhub_pull_username
- DOCKERHUB_PULL_PASSWORD=$$secret_dockerhub_pull_password
- OPEN_RUNTIMES_NETWORK=$$config_open_runtimes_network
volumes: []
entrypoint: worker-functions
"$$id-worker-mails":
image: appwrite/appwrite:$$core_version
environment:
- _APP_ENV=$$config__app_env
- _APP_OPENSSL_KEY_V1=$$secret__app_openssl_key_v1
- _APP_SYSTEM_EMAIL_NAME=$$config__app_system_email_name
- _APP_SYSTEM_EMAIL_ADDRESS=$$config__app_system_email_address
- _APP_REDIS_HOST=$$config__app_redis_host
- _APP_REDIS_PORT=$$config__app_redis_port
- _APP_REDIS_USER=$$config__app_redis_user
- _APP_REDIS_PASS=$$secret__app_redis_pass
- _APP_SMTP_HOST=$$config__app_smtp_host
- _APP_SMTP_PORT=$$config__app_smtp_port
- _APP_SMTP_SECURE=$$config__app_smtp_secure
- _APP_SMTP_USERNAME=$$config__app_smtp_username
- _APP_SMTP_PASSWORD=$$secret__app_smtp_password
- _APP_LOGGING_PROVIDER=$$config__app_logging_provider
- _APP_LOGGING_CONFIG=$$config__app_logging_config
- OPEN_RUNTIMES_NETWORK=$$config_open_runtimes_network
volumes: []
entrypoint: worker-mails
"$$id-worker-messaging":
image: appwrite/appwrite:$$core_version
environment:
- _APP_ENV=$$config__app_env
- _APP_REDIS_HOST=$$config__app_redis_host
- _APP_REDIS_PORT=$$config__app_redis_port
- _APP_REDIS_USER=$$config__app_redis_user
- _APP_REDIS_PASS=$$secret__app_redis_pass
- _APP_SMS_PROVIDER=$$config__app_sms_provider
- _APP_SMS_FROM=$$config__app_sms_from
- _APP_LOGGING_PROVIDER=$$config__app_logging_provider
- _APP_LOGGING_CONFIG=$$config__app_logging_config
- OPEN_RUNTIMES_NETWORK=$$config_open_runtimes_network
volumes: []
entrypoint: worker-messaging
"$$id-worker-webhooks":
image: appwrite/appwrite:$$core_version
environment:
- _APP_ENV=$$config__app_env
- _APP_OPENSSL_KEY_V1=$$secret__app_openssl_key_v1
- _APP_SYSTEM_SECURITY_EMAIL_ADDRESS=$$config__app_system_security_email_address
- _APP_REDIS_HOST=$$config__app_redis_host
- _APP_REDIS_PORT=$$config__app_redis_port
- _APP_REDIS_USER=$$config__app_redis_user
- _APP_REDIS_PASS=$$secret__app_redis_pass
- _APP_LOGGING_PROVIDER=$$config__app_logging_provider
- _APP_LOGGING_CONFIG=$$config__app_logging_config
- OPEN_RUNTIMES_NETWORK=$$config_open_runtimes_network
volumes: []
entrypoint: worker-webhooks
variables:
- id: "$$secret__app_db_root_pass"
name: MARIADB_ROOT_PASSWORD
label: MariaDB | _APP_DB_ROOT_PASS
defaultValue: "$$generate_hex(16)"
description: MariaDB server root password.
- id: "$$config__app_db_schema"
name: MARIADB_DATABASE
label: MariaDB | _APP_DB_SCHEMA
defaultValue: appwrite
description: MariaDB server database schema.
- id: "$$config__app_db_user"
name: MARIADB_USER
label: MariaDB | _APP_DB_USER
defaultValue: user
description: MariaDB server user name.
- id: "$$secret__app_db_pass"
name: MARIADB_PASSWORD
label: MariaDB | _APP_DB_PASS
defaultValue: "$$generate_hex(16)"
description: MariaDB server user password.
- id: "$$config__app_influxdb_host"
name: _APP_INFLUXDB_HOST
label: InfluxDB | _APP_INFLUXDB_HOST
defaultValue: "$$id-influxdb"
description: ''
- id: "$$config__app_influxdb_port"
name: _APP_INFLUXDB_PORT
label: InfluxDB | _APP_INFLUXDB_PORT
defaultValue: '8086'
description: InfluxDB server TCP port.
- id: "$$config__app_env"
name: _APP_ENV
label: General | _APP_ENV
defaultValue: production
description: Set your server running environment.
- id: "$$config__app_worker_per_core"
name: _APP_WORKER_PER_CORE
label: General | _APP_WORKER_PER_CORE
defaultValue: '6'
description: Internal Worker per core for the API, Realtime and Executor containers.
Can be configured to optimize performance.
- id: "$$config__app_locale"
name: _APP_LOCALE
label: General | _APP_LOCALE
defaultValue: en
description: Set your Appwrite's locale. By default, the locale is set to 'en'.
- id: "$$config__app_console_whitelist_root"
name: _APP_CONSOLE_WHITELIST_ROOT
label: General | _APP_CONSOLE_WHITELIST_ROOT
defaultValue: enabled
description: This option allows you to disable the creation of new users on the
Appwrite console. When enabled only 1 user will be able to use the registration
form. New users can be added by inviting them to your project. By default this
option is enabled.
- id: "$$config__app_console_whitelist_emails"
name: _APP_CONSOLE_WHITELIST_EMAILS
label: General | _APP_CONSOLE_WHITELIST_EMAILS
defaultValue: ''
description: This option allows you to limit creation of new users on the Appwrite
console. This option is very useful for small teams or sole developers. To enable
it, pass a list of allowed email addresses separated by a comma.
- id: "$$config__app_console_whitelist_ips"
name: _APP_CONSOLE_WHITELIST_IPS
label: General | _APP_CONSOLE_WHITELIST_IPS
defaultValue: ''
description: This last option allows you to limit creation of users in Appwrite
console for users sharing the same set of IP addresses. This option is very
useful for team working with a VPN service or a company IP.\n\nTo enable/activate
this option, pass a list of allowed IP addresses separated by a comma.
- id: "$$config__app_system_email_name"
name: _APP_SYSTEM_EMAIL_NAME
label: General | _APP_SYSTEM_EMAIL_NAME
defaultValue: Appwrite
description: This is the sender name value that will appear on email messages
sent to developers from the Appwrite console. You can use url encoded strings
for spaces and special chars.
- id: "$$config__app_system_email_address"
name: _APP_SYSTEM_EMAIL_ADDRESS
label: General | _APP_SYSTEM_EMAIL_ADDRESS
defaultValue: team@appwrite.io
description: This is the sender email address that will appear on email messages
sent to developers from the Appwrite console. You should choose an email address
that is allowed to be used from your SMTP server to avoid the server email ending
in the users' SPAM folders.
- id: "$$config__app_system_security_email_address"
name: _APP_SYSTEM_SECURITY_EMAIL_ADDRESS
label: General | _APP_SYSTEM_SECURITY_EMAIL_ADDRESS
defaultValue: certs@appwrite.io
description: This is the email address used to issue SSL certificates for custom
domains or the user agent in your webhooks payload.
- id: "$$config__app_system_response_format"
name: _APP_SYSTEM_RESPONSE_FORMAT
label: General | _APP_SYSTEM_RESPONSE_FORMAT
defaultValue: ''
description: Use this environment variable to set the default Appwrite HTTP response
format to support an older version of Appwrite. This option is useful to overcome
breaking changes between versions. You can also use the X-Appwrite-Response-Format
HTTP request header to overwrite the response for a specific request. This variable
accepts any valid Appwrite version. To use the current version format, leave
the value of the variable empty.
- id: "$$config__app_options_abuse"
name: _APP_OPTIONS_ABUSE
label: General | _APP_OPTIONS_ABUSE
defaultValue: enabled
description: Allows you to disable abuse checks and API rate limiting. By default,
set to 'enabled'. To cancel the abuse checking, set to 'disabled'. It is not
recommended to disable this check-in a production environment.
- id: "$$config__app_options_force_https"
name: _APP_OPTIONS_FORCE_HTTPS
label: General | _APP_OPTIONS_FORCE_HTTPS
defaultValue: disabled
description: Allows you to force HTTPS connection to your API. This feature redirects
any HTTP call to HTTPS and adds the 'Strict-Transport-Security' header to all
HTTP responses.
- id: "$$secret__app_openssl_key_v1"
name: _APP_OPENSSL_KEY_V1
label: General | _APP_OPENSSL_KEY_V1
defaultValue: "$$generate_hex(256)"
description: This is your server private secret key that is used to encrypt all
sensitive data on your server. Appwrite server encrypts all secret data on your
server like webhooks, HTTP passwords, user sessions, and storage files. Keep
it a secret and have a backup for it.
- id: "$$generate_fqdn"
name: _APP_DOMAIN
label: General | _APP_DOMAIN
defaultValue: localhost
description: Your Appwrite domain address. When setting a public suffix domain,
Appwrite will attempt to issue a valid SSL certificate automatically. When used
with a dev domain, Appwrite will assign a self-signed SSL certificate. The default
value is 'localhost'.
- id: "$$generate_fqdn"
name: _APP_DOMAIN_TARGET
label: General | _APP_DOMAIN_TARGET
defaultValue: localhost
description: A DNS A record hostname to serve as a CNAME target for your Appwrite
custom domains. You can use the same value as used for the Appwrite '_APP_DOMAIN'
variable. The default value is 'localhost'.
- id: "$$config__app_redis_host"
name: _APP_REDIS_HOST
label: Redis | _APP_REDIS_HOST
defaultValue: "$$id-redis"
description: ''
- id: "$$config__app_redis_port"
name: _APP_REDIS_PORT
label: Redis | _APP_REDIS_PORT
defaultValue: '6379'
description: Redis server TCP port.
- id: "$$config__app_redis_user"
name: _APP_REDIS_USER
label: Redis | _APP_REDIS_USER
defaultValue: ''
description: Redis server user. This is an optional variable. Default value is
an empty string.
- id: "$$secret__app_redis_pass"
name: _APP_REDIS_PASS
label: Redis | _APP_REDIS_PASS
defaultValue: ''
description: Redis server password. This is an optional variable. Default value
is an empty string.
- id: "$$config__app_db_host"
name: _APP_DB_HOST
label: MariaDB | _APP_DB_HOST
defaultValue: "$$id-mariadb"
description: ''
- id: "$$config__app_db_port"
name: _APP_DB_PORT
label: MariaDB | _APP_DB_PORT
defaultValue: '3306'
description: MariaDB server TCP port.
- id: "$$config__app_db_schema"
name: _APP_DB_SCHEMA
label: MariaDB | _APP_DB_SCHEMA
defaultValue: appwrite
description: MariaDB server database schema.
- id: "$$config__app_db_user"
name: _APP_DB_USER
label: MariaDB | _APP_DB_USER
defaultValue: user
description: MariaDB server user name.
- id: "$$secret__app_db_pass"
name: _APP_DB_PASS
label: MariaDB | _APP_DB_PASS
defaultValue: "$$generate_hex(16)"
description: MariaDB server user password.
- id: "$$config__app_smtp_host"
name: _APP_SMTP_HOST
label: SMTP | _APP_SMTP_HOST
defaultValue: ''
description: SMTP server host name address. Use an empty string to disable all
mail sending from the server. The default value for this variable is an empty
string.
- id: "$$config__app_smtp_port"
name: _APP_SMTP_PORT
label: SMTP | _APP_SMTP_PORT
defaultValue: ''
description: SMTP server TCP port. Empty by default.
- id: "$$config__app_smtp_secure"
name: _APP_SMTP_SECURE
label: SMTP | _APP_SMTP_SECURE
defaultValue: ''
description: SMTP secure connection protocol. Empty by default, change to 'tls'
if running on a secure connection.
- id: "$$config__app_smtp_username"
name: _APP_SMTP_USERNAME
label: SMTP | _APP_SMTP_USERNAME
defaultValue: ''
description: SMTP server user name. Empty by default.
- id: "$$secret__app_smtp_password"
name: _APP_SMTP_PASSWORD
label: SMTP | _APP_SMTP_PASSWORD
defaultValue: ''
description: SMTP server user password. Empty by default.
- id: "$$config__app_usage_stats"
name: _APP_USAGE_STATS
label: General | _APP_USAGE_STATS
defaultValue: enabled
description: This variable allows you to disable the collection and displaying
of usage stats. This value is set to 'enabled' by default, to disable the usage
stats set the value to 'disabled'. When disabled, it's recommended to turn off
the Worker Usage, Influxdb and Telegraf containers for better resource usage.
- id: "$$config__app_storage_limit"
name: _APP_STORAGE_LIMIT
label: Storage | _APP_STORAGE_LIMIT
defaultValue: '30000000'
description: Maximum file size allowed for file upload. The default value is 30MB.
You should pass your size limit value in bytes.
- id: "$$config__app_storage_preview_limit"
name: _APP_STORAGE_PREVIEW_LIMIT
label: Storage | _APP_STORAGE_PREVIEW_LIMIT
defaultValue: '20000000'
description: Maximum file size allowed for file image preview. The default value
is 20MB. You should pass your size limit value in bytes.
- id: "$$config__app_storage_antivirus_enabled"
name: _APP_STORAGE_ANTIVIRUS
label: Storage | _APP_STORAGE_ANTIVIRUS
defaultValue: disabled
description: This variable allows you to disable the internal anti-virus scans.
This value is set to 'disabled' by default, to enable the scans set the value
to 'enabled'. Before enabling, you must add the ClamAV service and depend on
it on main Appwrite service.
- id: "$$config__app_storage_antivirus_host"
name: _APP_STORAGE_ANTIVIRUS_HOST
label: Storage | _APP_STORAGE_ANTIVIRUS_HOST
defaultValue: clamav
description: ClamAV server host name address.
- id: "$$config__app_storage_antivirus_port"
name: _APP_STORAGE_ANTIVIRUS_PORT
label: Storage | _APP_STORAGE_ANTIVIRUS_PORT
defaultValue: '3310'
description: ClamAV server TCP port.
- id: "$$config__app_storage_device"
name: _APP_STORAGE_DEVICE
label: Storage | _APP_STORAGE_DEVICE
defaultValue: Local
description: Select default storage device. The default value is 'Local'. List
of supported adapters are 'Local', 'S3', 'DOSpaces', 'Backblaze', 'Linode' and
'Wasabi'.
- id: "$$secret__app_storage_s3_access_key"
name: _APP_STORAGE_S3_ACCESS_KEY
label: Storage | _APP_STORAGE_S3_ACCESS_KEY
defaultValue: ''
description: AWS S3 storage access key. Required when the storage adapter is set
to S3. You can get your access key from your AWS console.
- id: "$$secret__app_storage_s3_secret"
name: _APP_STORAGE_S3_SECRET
label: Storage | _APP_STORAGE_S3_SECRET
defaultValue: ''
description: AWS S3 storage secret key. Required when the storage adapter is set
to S3. You can get your secret key from your AWS console.
- id: "$$config__app_storage_s3_region"
name: _APP_STORAGE_S3_REGION
label: Storage | _APP_STORAGE_S3_REGION
defaultValue: us-east-1
description: AWS S3 storage region. Required when storage adapter is set to S3.
You can find your region info for your bucket from AWS console.
- id: "$$config__app_storage_s3_bucket"
name: _APP_STORAGE_S3_BUCKET
label: Storage | _APP_STORAGE_S3_BUCKET
defaultValue: ''
description: AWS S3 storage bucket. Required when storage adapter is set to S3.
You can create buckets in your AWS console.
- id: "$$secret__app_storage_do_spaces_access_key"
name: _APP_STORAGE_DO_SPACES_ACCESS_KEY
label: Storage | _APP_STORAGE_DO_SPACES_ACCESS_KEY
defaultValue: ''
description: DigitalOcean spaces access key. Required when the storage adapter
is set to DOSpaces. You can get your access key from your DigitalOcean console.
- id: "$$secret__app_storage_do_spaces_secret"
name: _APP_STORAGE_DO_SPACES_SECRET
label: Storage | _APP_STORAGE_DO_SPACES_SECRET
defaultValue: ''
description: DigitalOcean spaces secret key. Required when the storage adapter
is set to DOSpaces. You can get your secret key from your DigitalOcean console.
- id: "$$config__app_storage_do_spaces_region"
name: _APP_STORAGE_DO_SPACES_REGION
label: Storage | _APP_STORAGE_DO_SPACES_REGION
defaultValue: us-east-1
description: DigitalOcean spaces region. Required when storage adapter is set
to DOSpaces. You can find your region info for your space from DigitalOcean
console.
- id: "$$config__app_storage_do_spaces_bucket"
name: _APP_STORAGE_DO_SPACES_BUCKET
label: Storage | _APP_STORAGE_DO_SPACES_BUCKET
defaultValue: ''
description: DigitalOcean spaces bucket. Required when storage adapter is set
to DOSpaces. You can create spaces in your DigitalOcean console.
- id: "$$secret__app_storage_backblaze_access_key"
name: _APP_STORAGE_BACKBLAZE_ACCESS_KEY
label: Storage | _APP_STORAGE_BACKBLAZE_ACCESS_KEY
defaultValue: ''
description: Backblaze access key. Required when the storage adapter is set to
Backblaze. Your Backblaze keyID will be your access key. You can get your keyID
from your Backblaze console.
- id: "$$secret__app_storage_backblaze_secret"
name: _APP_STORAGE_BACKBLAZE_SECRET
label: Storage | _APP_STORAGE_BACKBLAZE_SECRET
defaultValue: ''
description: Backblaze secret key. Required when the storage adapter is set to
Backblaze. Your Backblaze applicationKey will be your secret key. You can get
your applicationKey from your Backblaze console.
- id: "$$config__app_storage_backblaze_region"
name: _APP_STORAGE_BACKBLAZE_REGION
label: Storage | _APP_STORAGE_BACKBLAZE_REGION
defaultValue: us-west-004
description: Backblaze region. Required when storage adapter is set to Backblaze.
You can find your region info from your Backblaze console.
- id: "$$config__app_storage_backblaze_bucket"
name: _APP_STORAGE_BACKBLAZE_BUCKET
label: Storage | _APP_STORAGE_BACKBLAZE_BUCKET
defaultValue: ''
description: Backblaze bucket. Required when storage adapter is set to Backblaze.
You can create your bucket from your Backblaze console.
- id: "$$secret__app_storage_linode_access_key"
name: _APP_STORAGE_LINODE_ACCESS_KEY
label: Storage | _APP_STORAGE_LINODE_ACCESS_KEY
defaultValue: ''
description: Linode object storage access key. Required when the storage adapter
is set to Linode. You can get your access key from your Linode console.
- id: "$$secret__app_storage_linode_secret"
name: _APP_STORAGE_LINODE_SECRET
label: Storage | _APP_STORAGE_LINODE_SECRET
defaultValue: ''
description: Linode object storage secret key. Required when the storage adapter
is set to Linode. You can get your secret key from your Linode console.
- id: "$$config__app_storage_linode_region"
name: _APP_STORAGE_LINODE_REGION
label: Storage | _APP_STORAGE_LINODE_REGION
defaultValue: eu-central-1
description: Linode object storage region. Required when storage adapter is set
to Linode. You can find your region info from your Linode console.
- id: "$$config__app_storage_linode_bucket"
name: _APP_STORAGE_LINODE_BUCKET
label: Storage | _APP_STORAGE_LINODE_BUCKET
defaultValue: ''
description: Linode object storage bucket. Required when storage adapter is set
to Linode. You can create buckets in your Linode console.
- id: "$$secret__app_storage_wasabi_access_key"
name: _APP_STORAGE_WASABI_ACCESS_KEY
label: Storage | _APP_STORAGE_WASABI_ACCESS_KEY
defaultValue: ''
description: Wasabi access key. Required when the storage adapter is set to Wasabi.
You can get your access key from your Wasabi console.
- id: "$$secret__app_storage_wasabi_secret"
name: _APP_STORAGE_WASABI_SECRET
label: Storage | _APP_STORAGE_WASABI_SECRET
defaultValue: ''
description: Wasabi secret key. Required when the storage adapter is set to Wasabi.
You can get your secret key from your Wasabi console.
- id: "$$config__app_storage_wasabi_region"
name: _APP_STORAGE_WASABI_REGION
label: Storage | _APP_STORAGE_WASABI_REGION
defaultValue: eu-central-1
description: Wasabi region. Required when storage adapter is set to Wasabi. You
can find your region info from your Wasabi console.
- id: "$$config__app_storage_wasabi_bucket"
name: _APP_STORAGE_WASABI_BUCKET
label: Storage | _APP_STORAGE_WASABI_BUCKET
defaultValue: ''
description: Wasabi bucket. Required when storage adapter is set to Wasabi. You
can create buckets in your Wasabi console.
- id: "$$config__app_functions_size_limit"
name: _APP_FUNCTIONS_SIZE_LIMIT
label: Functions | _APP_FUNCTIONS_SIZE_LIMIT
defaultValue: '30000000'
description: The maximum size deployment in bytes. The default value is 30MB.
- id: "$$config__app_functions_timeout"
name: _APP_FUNCTIONS_TIMEOUT
label: Functions | _APP_FUNCTIONS_TIMEOUT
defaultValue: '900'
description: The maximum number of seconds allowed as a timeout value when creating
a new function. The default value is 900 seconds.
- id: "$$config__app_functions_build_timeout"
name: _APP_FUNCTIONS_BUILD_TIMEOUT
label: Functions | _APP_FUNCTIONS_BUILD_TIMEOUT
defaultValue: '900'
description: The maximum number of seconds allowed as a timeout value when building
a new function. The default value is 900 seconds.
- id: "$$config__app_functions_containers"
name: _APP_FUNCTIONS_CONTAINERS
label: Functions | _APP_FUNCTIONS_CONTAINERS
defaultValue: '10'
description: The maximum number of containers Appwrite is allowed to keep alive
in the background for function environments. Running containers allow faster
execution time as there is no need to recreate each container every time a function
gets executed. The default value is 10.
- id: "$$config__app_functions_cpus"
name: _APP_FUNCTIONS_CPUS
label: Functions | _APP_FUNCTIONS_CPUS
defaultValue: ''
description: The maximum number of CPU core a single cloud function is allowed
to use. Please note that setting a value higher than available cores will result
in a function error, which might result in an error. The default value is empty.
When it's empty, CPU limit will be disabled.
- id: "$$config__app_functions_memory_allocated"
name: _APP_FUNCTIONS_MEMORY
label: Functions | _APP_FUNCTIONS_MEMORY
defaultValue: ''
description: The maximum amount of memory a single cloud function is allowed to
use in megabytes. The default value is empty. When it's empty, memory limit
will be disabled.
- id: "$$config__app_functions_memory_swap"
name: _APP_FUNCTIONS_MEMORY_SWAP
label: Functions | _APP_FUNCTIONS_MEMORY_SWAP
defaultValue: ''
description: The maximum amount of swap memory a single cloud function is allowed
to use in megabytes. The default value is empty. When it's empty, swap memory
limit will be disabled.
- id: "$$config__app_functions_runtimes"
name: _APP_FUNCTIONS_RUNTIMES
label: Functions | _APP_FUNCTIONS_RUNTIMES
defaultValue: node-18.0
description: |-
This option allows you to limit the available environments for cloud functions. This option is very useful for low-cost servers to safe disk space.
To enable/activate this option, pass a list of allowed environments separated by a comma.
Currently, supported environments are: node-14.5, node-16.0, node-18.0, php-8.0, php-8.1, ruby-3.0, ruby-3.1, python-3.8, python-3.9, python-3.10, deno-1.21, deno-1.24, dart-2.15, dart-2.16, dart-2.17, dotnet-3.1, dotnet-6.0, java-8.0, java-11.0, java-17.0, java-18.0, swift-5.5, kotlin-1.6, cpp-17.0
- id: "$$secret__app_executor_secret"
name: _APP_EXECUTOR_SECRET
label: Functions | _APP_EXECUTOR_SECRET
defaultValue: "$$generate_hex(16)"
description: The secret key used by Appwrite to communicate with the function
executor.
- id: "$$config__app_executor_host"
name: _APP_EXECUTOR_HOST
label: ''
defaultValue: http://$$id-executor/v1
description: ''
- id: "$$config__app_logging_provider"
name: _APP_LOGGING_PROVIDER
label: General | _APP_LOGGING_PROVIDER
defaultValue: ''
description: This variable allows you to enable logging errors to 3rd party providers.
This value is empty by default, to enable the logger set the value to one of
'sentry', 'raygun', 'appsignal', 'logowl'
- id: "$$config__app_logging_config"
name: _APP_LOGGING_CONFIG
label: General | _APP_LOGGING_CONFIG
defaultValue: ''
description: This variable configures authentication to 3rd party error logging
providers. If using Sentry, this should be 'SENTRY_API_KEY;SENTRY_APP_ID'. If
using Raygun, this should be Raygun API key. If using AppSignal, this should
be AppSignal API key. If using LogOwl, this should be LogOwl Service Ticket.
- id: "$$config__app_statsd_host"
name: _APP_STATSD_HOST
label: ''
defaultValue: "$$id-telegraf"
description: ''
- id: "$$config__app_statsd_port"
name: _APP_STATSD_PORT
label: StatsD | _APP_STATSD_PORT
defaultValue: '8125'
description: StatsD server TCP port.
- id: "$$config__app_maintenance_interval"
name: _APP_MAINTENANCE_INTERVAL
label: Functions | _APP_MAINTENANCE_INTERVAL
defaultValue: '86400'
description: Interval value containing the number of seconds that the Appwrite
maintenance process should wait before executing system cleanups and optimizations.
The default value is 86400 seconds (1 day).
- id: "$$config__app_maintenance_retention_execution"
name: _APP_MAINTENANCE_RETENTION_EXECUTION
label: Functions | _APP_MAINTENANCE_RETENTION_EXECUTION
defaultValue: '1209600'
description: The maximum duration (in seconds) upto which to retain execution
logs. The default value is 1209600 seconds (14 days).
- id: "$$config__app_maintenance_retention_cache"
name: _APP_MAINTENANCE_RETENTION_CACHE
label: Functions | _APP_MAINTENANCE_RETENTION_CACHE
defaultValue: '2592000'
description: The maximum duration (in seconds) upto which to retain cached files.
The default value is 2592000 seconds (30 days).
- id: "$$config__app_maintenance_retention_abuse"
name: _APP_MAINTENANCE_RETENTION_ABUSE
label: Functions | _APP_MAINTENANCE_RETENTION_ABUSE
defaultValue: '86400'
description: The maximum duration (in seconds) upto which to retain abuse logs.
The default value is 86400 seconds (1 day).
- id: "$$config__app_maintenance_retention_audit"
name: _APP_MAINTENANCE_RETENTION_AUDIT
label: Functions | _APP_MAINTENANCE_RETENTION_AUDIT
defaultValue: '1209600'
description: The maximum duration (in seconds) upto which to retain audit logs.
The default value is 1209600 seconds (14 days).
- id: "$$config__app_sms_provider"
name: _APP_SMS_PROVIDER
label: Phone | _APP_SMS_PROVIDER
defaultValue: ''
description: 'Provider used for delivering SMS for Phone authentication. Use the
following format: ''sms://[USER]:[SECRET]@[PROVIDER]''. Available providers
are twilio, text-magic, telesign, msg91, and vonage.'
- id: "$$config__app_sms_from"
name: _APP_SMS_FROM
label: Phone | _APP_SMS_FROM
defaultValue: ''
description: Phone number used for sending out messages. Must start with a leading
'+' and maximum of 15 digits without spaces (+123456789).
- id: "$$config__app_functions_inactive_threshold"
name: _APP_FUNCTIONS_INACTIVE_THRESHOLD
label: Functions | _APP_FUNCTIONS_INACTIVE_THRESHOLD
defaultValue: '60'
description: The minimum time a function can be inactive before it's container
is shutdown and put to sleep. The default value is 60 seconds
- id: "$$config_open_runtimes_network"
name: OPEN_RUNTIMES_NETWORK
label: ''
defaultValue: "$$generate_network"
description: ''
- id: "$$config_dockerhub_pull_username"
name: DOCKERHUB_PULL_USERNAME
label: Functions | DOCKERHUB_PULL_USERNAME
defaultValue: ''
description: The username for hub.docker.com. This variable is used to pull images
from hub.docker.com.
- id: "$$secret_dockerhub_pull_password"
name: DOCKERHUB_PULL_PASSWORD
label: Functions | DOCKERHUB_PULL_PASSWORD
defaultValue: ''
description: The password for hub.docker.com. This variable is used to pull images
from hub.docker.com.
- id: "$$config__app_usage_timeseries_interval"
name: _APP_USAGE_TIMESERIES_INTERVAL
label: General | _APP_USAGE_TIMESERIES_INTERVAL
defaultValue: '30'
description: Interval value containing the number of seconds that the Appwrite
usage process should wait before aggregating stats and syncing it to mariadb
from InfluxDB. The default value is 30 seconds.
- id: "$$config__app_usage_database_interval"
name: _APP_USAGE_DATABASE_INTERVAL
label: General | _APP_USAGE_DATABASE_INTERVAL
defaultValue: '900'
description: Interval value containing the number of seconds that the Appwrite
usage process should wait before aggregating stats from data in Appwrite Database.
The default value is 15 minutes.
- templateVersion: 1.0.0
defaultVersion: latest
name: Weblate
description: ''
services:
$$id:
name: Weblate
depends_on:
- $$id-postgresql
- $$id-redis
image: 'weblate/weblate:$$core_version'
volumes:
- '$$id-data:/app/data'
environment:
- WEBLATE_SITE_DOMAIN=$$config_weblate_site_domain
- WEBLATE_ADMIN_PASSWORD=$$secret_weblate_admin_password
- POSTGRES_PASSWORD=$$secret_postgres_password
- POSTGRES_USER=$$config_postgres_user
- POSTGRES_DATABASE=$$config_postgres_db
- POSTGRES_HOST=$$id-postgresql
- POSTGRES_PORT=5432
- REDIS_HOST=$$id-redis
ports:
- '8080'
$$id-postgresql:
name: PostgreSQL
depends_on: []
image: 'postgres:14-alpine'
volumes:
- '$$id-postgresql-data:/var/lib/postgresql/data'
environment:
- POSTGRES_USER=$$config_postgres_user
- POSTGRES_PASSWORD=$$secret_postgres_password
- POSTGRES_DB=$$config_postgres_db
ports: []
$$id-redis:
name: Redis
depends_on: []
image: 'redis:7-alpine'
volumes:
- '$$id-redis-data:/data'
environment: []
ports: []
variables:
- id: $$config_weblate_site_domain
name: WEBLATE_SITE_DOMAIN
label: Weblate Domain
defaultValue: $$generate_domain
description: ''
- id: $$secret_weblate_admin_password
name: WEBLATE_ADMIN_PASSWORD
label: Weblate Admin Password
defaultValue: $$generate_password
description: ''
showOnUI: true
- id: $$config_postgres_user
main: $$id-postgresql
name: POSTGRES_USER
label: PostgreSQL User
defaultValue: $$generate_username
description: ''
- id: $$secret_postgres_password
main: $$id-postgresql
name: POSTGRES_PASSWORD
label: PostgreSQL Password
defaultValue: $$generate_password
description: ''
showOnUI: true
- id: $$config_postgres_db
main: $$id-postgresql
name: POSTGRES_DB
label: PostgreSQL Database
defaultValue: weblate
description: ''
- templateVersion: 1.0.0
defaultVersion: 2022.10.14-1a5b0965
name: SearXNG
description: ''
services:
$$id:
name: SearXNG
depends_on:
- $$id-redis
image: 'searxng/searxng:$$core_version'
volumes:
- '$$id-searxng:/etc/searxng'
environment:
- SEARXNG_BASE_URL=$$config_searxng_base_url
ports:
- '8080'
cap_drop:
- ALL
cap_add:
- CHOWN
- SETGID
- SETUID
- DAC_OVERRIDE
extras:
files:
- source: $$workdir/settings.yml
destination: /etc/searxng/settings.yml
content: |2-
# see https://docs.searxng.org/admin/engines/settings.html#use-default-settings
use_default_settings: true
server:
secret_key: $$secret_secret_key
limiter: true
image_proxy: true
ui:
static_use_hash: true
redis:
url: redis://:$$secret_redis_password@$$id-redis:6379/0
$$id-redis:
name: Redis
command: >-
redis-server --requirepass $$secret_redis_password --save ""
--appendonly "no"
depends_on: []
image: 'redis:7-alpine'
volumes:
- '$$id-redis-data:/data'
environment:
- REDIS_PASSWORD=$$secret_redis_password
ports: []
cap_drop:
- ALL
cap_add:
- SETGID
- SETUID
- DAC_OVERRIDE
variables:
- id: $$config_searxng_base_url
name: SEARXNG_BASE_URL
label: SearXNG Base URL
defaultValue: $$generate_fqdn
description: ''
- id: $$secret_secret_key
name: SECRET_KEY
label: Secret Key
defaultValue: $$generate_passphrase
description: ''
- id: $$secret_redis_password
name: REDIS_PASSWORD
label: Redis Password
defaultValue: $$generate_password
description: ''
- templateVersion: 1.0.0
defaultVersion: v2.0.6
name: GlitchTip
description: ''
services:
$$id:
name: GlitchTip
depends_on:
- $$id-postgresql
- $$id-redis
image: 'glitchtip/glitchtip:$$core_version'
volumes: []
environment:
- PORT=3000
- GLITCHTIP_DOMAIN=$$config_glitchtip_domain
- SECRET_KEY=$$secret_secret_key
- DATABASE_URL=$$secret_database_url
- REDIS_URL=$$secret_redis_url
- DEFAULT_FROM_EMAIL=$$config_default_from_email
- EMAIL_HOST=$$config_email_host
- EMAIL_PORT=$$config_email_port
- EMAIL_HOST_USER=$$config_email_host_user
- EMAIL_HOST_PASSWORD=$$secret_email_host_password
- EMAIL_USE_TLS=$$config_email_use_tls
- EMAIL_USE_SSL=$$config_email_use_ssl
- EMAIL_BACKEND=$$config_email_backend
- MAILGUN_API_KEY=$$secret_mailgun_api_key
- SENDGRID_API_KEY=$$secret_sendgrid_api_key
- ENABLE_OPEN_USER_REGISTRATION=$$config_enable_open_user_registration
- DJANGO_SUPERUSER_EMAIL=$$config_django_superuser_email
- DJANGO_SUPERUSER_PASSWORD=$$secret_django_superuser_password
- DJANGO_SUPERUSER_USERNAME=$$config_django_superuser_username
ports:
- '8000'
$$id-postgresql:
name: PostgreSQL
depends_on: []
image: 'postgres:12-alpine'
volumes:
- '$$id-postgresql-data:/var/lib/postgresql/data'
environment:
- POSTGRES_USER=$$config_postgres_user
- POSTGRES_PASSWORD=$$secret_postgres_password
- POSTGRES_DB=$$config_postgres_db
ports: []
$$id-redis:
name: Redis
depends_on: []
image: 'redis:7-alpine'
volumes:
- '$$id-postgresql-redis-data:/data'
environment: []
ports: []
variables:
- id: $$config_glitchtip_domain
name: GLITCHTIP_DOMAIN
label: GlitchTip Domain
defaultValue: $$generate_fqdn
description: ''
- id: $$secret_database_url
name: DATABASE_URL
label: Database URL for PostgreSQL
defaultValue: >-
postgresql://$$config_postgres_user:$$secret_postgres_password@$$id-postgresql:5432/$$config_postgres_db
description: ''
- id: $$secret_redis_url
name: REDIS_URL
label: Redis URL
defaultValue: 'redis://$$id-redis:6379/0'
description: ''
- id: $$config_default_from_email
name: DEFAULT_FROM_EMAIL
label: Default Email Address
defaultValue: noreply@example.com
description: ''
- id: $$config_email_host
name: EMAIL_HOST
label: Email SMTP Host
defaultValue: ''
description: ''
- id: $$config_email_port
name: EMAIL_PORT
label: Email SMTP Port
defaultValue: '25'
description: ''
- id: $$config_email_host_user
name: EMAIL_HOST_USER
label: Email SMTP User
defaultValue: ''
description: ''
- id: $$secret_email_host_password
name: EMAIL_HOST_PASSWORD
label: Email SMTP Password
defaultValue: ''
description: ''
- id: $$config_email_use_tls
name: EMAIL_USE_TLS
label: Email Use TLS
defaultValue: 'false'
description: ''
- id: $$config_email_use_ssl
name: EMAIL_USE_SSL
label: Email Use SSL
defaultValue: 'false'
description: ''
- id: $$secret_email_smtp_password
name: EMAIL_SMTP_PASSWORD
label: SMTP Password
defaultValue: ''
description: ''
- id: $$config_email_backend
name: EMAIL_BACKEND
label: Email Backend
defaultValue: ''
description: ''
- id: $$secret_mailgun_api_key
name: MAILGUN_API_KEY
label: Mailgun API Key
defaultValue: ''
description: ''
- id: $$secret_sendgrid_api_key
name: SENDGRID_API_KEY
label: Sendgrid API Key
defaultValue: ''
description: ''
- id: $$config_enable_open_user_registration
name: ENABLE_OPEN_USER_REGISTRATION
label: Enable Open User Registration
defaultValue: 'true'
description: ''
- id: $$config_django_superuser_email
name: DJANGO_SUPERUSER_EMAIL
label: Django Superuser Email
defaultValue: ''
description: ''
- id: $$config_django_superuser_username
name: DJANGO_SUPERUSER_USERNAME
label: Django Superuser Username
defaultValue: ''
description: ''
- id: $$secret_django_superuser_password
name: DJANGO_SUPERUSER_PASSWORD
label: Django Superuser Password
defaultValue: $$generate_password
description: ''
- id: $$config_postgres_user
main: $$id-postgresql
name: POSTGRES_USER
label: PostgreSQL User
defaultValue: $$generate_username
description: ''
- id: $$secret_postgres_password
main: $$id-postgresql
name: POSTGRES_PASSWORD
label: PostgreSQL Password
defaultValue: ''
description: ''
- id: $$config_postgres_db
main: $$id-postgresql
name: POSTGRES_DB
label: PostgreSQL Database
defaultValue: hasura
description: ''
- templateVersion: 1.0.0
defaultVersion: v2.13.0
name: Hasura
description: 'Instant realtime GraphQL APIs on any Postgres application, existing or new.'
services:
$$id:
name: Hasura
depends_on:
- $$id-postgresql
image: 'hasura/graphql-engine:$$core_version'
volumes: []
environment:
- HASURA_GRAPHQL_ENABLE_CONSOLE=$$config_hasura_graphql_enable_console
- >-
HASURA_GRAPHQL_METADATA_DATABASE_URL=$$secret_hasura_graphql_metadata_database_url
- HASURA_GRAPHQL_ADMIN_PASSWORD=$$secret_hasura_graphql_admin_password
ports:
- '8080'
$$id-postgresql:
name: PostgreSQL
depends_on: []
image: 'postgres:12-alpine'
volumes:
- '$$id-postgresql-data:/var/lib/postgresql/data'
environment:
- POSTGRES_USER=$$config_postgres_user
- POSTGRES_PASSWORD=$$secret_postgres_password
- POSTGRES_DB=$$config_postgres_db
ports: []
variables:
- id: $$config_hasura_graphql_enable_console
name: HASURA_GRAPHQL_ENABLE_CONSOLE
label: Enable Hasura Console
defaultValue: 'true'
description: ''
- id: $$secret_hasura_graphql_metadata_database_url
name: HASURA_GRAPHQL_METADATA_DATABASE_URL
label: Hasura Metadata Database URL
defaultValue: >-
postgresql://$$config_postgres_user:$$secret_postgres_password@$$id-postgresql:5432/$$config_postgres_db
description: ''
- id: $$secret_hasura_graphql_admin_password
name: HASURA_GRAPHQL_ADMIN_PASSWORD
label: Hasura Admin Password
defaultValue: $$generate_password
description: ''
showOnUI: true
- id: $$config_postgres_user
name: POSTGRES_USER
label: PostgreSQL User
defaultValue: $$generate_username
description: ''
- id: $$secret_postgres_password
name: POSTGRES_PASSWORD
label: PostgreSQL Password
defaultValue: $$generate_password
description: ''
- id: $$config_postgres_db
name: POSTGRES_DB
label: PostgreSQL Database
defaultValue: hasura
description: ''
- templateVersion: 1.0.0
defaultVersion: postgresql-v1.38.0
name: Umami
description: >-
Umami is a simple, easy to use, self-hosted web analytics solution. The goal
is to provide you with a friendly privacy-focused alternative to Google
Analytics.
services:
$$id:
name: Umami
documentation: 'Official docs are [here](https://umami.is/docs/getting-started)'
depends_on:
- $$id-postgresql
image: 'ghcr.io/umami-software/umami:$$core_version'
volumes: []
environment:
- ADMIN_PASSWORD=$$secret_admin_password
- DATABASE_URL=$$secret_database_url
- DATABASE_TYPE=postgresql
- HASH_SALT=$$secret_hash_salt
ports:
- '3000'
$$id-postgresql:
name: PostgreSQL
documentation: 'Official docs are [here](https://umami.is/docs/getting-started)'
depends_on: []
image: 'postgres:12-alpine'
volumes:
- '$$id-postgresql-data:/var/lib/postgresql/data'
environment:
- POSTGRES_USER=$$config_postgres_user
- POSTGRES_PASSWORD=$$secret_postgres_password
- POSTGRES_DB=$$config_postgres_db
ports: []
extras:
files:
- source: $$workdir/schema.postgresql.sql
destination: /docker-entrypoint-initdb.d/schema.postgresql.sql
content: |2-
-- CreateTable
CREATE TABLE "account" (
"user_id" SERIAL NOT NULL,
"username" VARCHAR(255) NOT NULL,
"password" VARCHAR(60) NOT NULL,
"is_admin" BOOLEAN NOT NULL DEFAULT false,
"created_at" TIMESTAMPTZ(6) DEFAULT CURRENT_TIMESTAMP,
"updated_at" TIMESTAMPTZ(6) DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY ("user_id")
);
-- CreateTable
CREATE TABLE "event" (
"event_id" SERIAL NOT NULL,
"website_id" INTEGER NOT NULL,
"session_id" INTEGER NOT NULL,
"created_at" TIMESTAMPTZ(6) DEFAULT CURRENT_TIMESTAMP,
"url" VARCHAR(500) NOT NULL,
"event_type" VARCHAR(50) NOT NULL,
"event_value" VARCHAR(50) NOT NULL,
PRIMARY KEY ("event_id")
);
-- CreateTable
CREATE TABLE "pageview" (
"view_id" SERIAL NOT NULL,
"website_id" INTEGER NOT NULL,
"session_id" INTEGER NOT NULL,
"created_at" TIMESTAMPTZ(6) DEFAULT CURRENT_TIMESTAMP,
"url" VARCHAR(500) NOT NULL,
"referrer" VARCHAR(500),
PRIMARY KEY ("view_id")
);
-- CreateTable
CREATE TABLE "session" (
"session_id" SERIAL NOT NULL,
"session_uuid" UUID NOT NULL,
"website_id" INTEGER NOT NULL,
"created_at" TIMESTAMPTZ(6) DEFAULT CURRENT_TIMESTAMP,
"hostname" VARCHAR(100),
"browser" VARCHAR(20),
"os" VARCHAR(20),
"device" VARCHAR(20),
"screen" VARCHAR(11),
"language" VARCHAR(35),
"country" CHAR(2),
PRIMARY KEY ("session_id")
);
-- CreateTable
CREATE TABLE "website" (
"website_id" SERIAL NOT NULL,
"website_uuid" UUID NOT NULL,
"user_id" INTEGER NOT NULL,
"name" VARCHAR(100) NOT NULL,
"domain" VARCHAR(500),
"share_id" VARCHAR(64),
"created_at" TIMESTAMPTZ(6) DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY ("website_id")
);
-- CreateIndex
CREATE UNIQUE INDEX "account.username_unique" ON "account"("username");
-- CreateIndex
CREATE INDEX "event_created_at_idx" ON "event"("created_at");
-- CreateIndex
CREATE INDEX "event_session_id_idx" ON "event"("session_id");
-- CreateIndex
CREATE INDEX "event_website_id_idx" ON "event"("website_id");
-- CreateIndex
CREATE INDEX "pageview_created_at_idx" ON "pageview"("created_at");
-- CreateIndex
CREATE INDEX "pageview_session_id_idx" ON "pageview"("session_id");
-- CreateIndex
CREATE INDEX "pageview_website_id_created_at_idx" ON "pageview"("website_id", "created_at");
-- CreateIndex
CREATE INDEX "pageview_website_id_idx" ON "pageview"("website_id");
-- CreateIndex
CREATE INDEX "pageview_website_id_session_id_created_at_idx" ON "pageview"("website_id", "session_id", "created_at");
-- CreateIndex
CREATE UNIQUE INDEX "session.session_uuid_unique" ON "session"("session_uuid");
-- CreateIndex
CREATE INDEX "session_created_at_idx" ON "session"("created_at");
-- CreateIndex
CREATE INDEX "session_website_id_idx" ON "session"("website_id");
-- CreateIndex
CREATE UNIQUE INDEX "website.website_uuid_unique" ON "website"("website_uuid");
-- CreateIndex
CREATE UNIQUE INDEX "website.share_id_unique" ON "website"("share_id");
-- CreateIndex
CREATE INDEX "website_user_id_idx" ON "website"("user_id");
-- AddForeignKey
ALTER TABLE "event" ADD FOREIGN KEY ("session_id") REFERENCES "session"("session_id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "event" ADD FOREIGN KEY ("website_id") REFERENCES "website"("website_id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "pageview" ADD FOREIGN KEY ("session_id") REFERENCES "session"("session_id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "pageview" ADD FOREIGN KEY ("website_id") REFERENCES "website"("website_id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "session" ADD FOREIGN KEY ("website_id") REFERENCES "website"("website_id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "website" ADD FOREIGN KEY ("user_id") REFERENCES "account"("user_id") ON DELETE CASCADE ON UPDATE CASCADE;
insert into account (username, password, is_admin) values ('admin', '$$hashed$$secret_admin_password', true);
variables:
- id: $$secret_database_url
name: DATABASE_URL
label: Database URL for PostgreSQL
defaultValue: >-
postgresql://$$config_postgres_user:$$secret_postgres_password@$$id-postgresql:5432/$$config_postgres_db
description: ''
- id: $$secret_hash_salt
name: HASH_SALT
label: Hash Salt
defaultValue: $$generate_passphrase
description: ''
- id: $$config_postgres_user
name: POSTGRES_USER
label: PostgreSQL User
defaultValue: $$generate_username
description: ''
- id: $$secret_postgres_password
name: POSTGRES_PASSWORD
label: PostgreSQL Password
defaultValue: $$generate_password
description: ''
- id: $$config_postgres_db
name: POSTGRES_DB
label: PostgreSQL Database
defaultValue: umami
description: ''
- id: $$secret_admin_password
name: ADMIN_PASSWORD
label: Initial Admin Password
defaultValue: $$generate_password
description: ''
showOnUI: true
- templateVersion: 1.0.0
defaultVersion: v0.29.1
name: MeiliSearch
description: >-
MeiliSearch is a lightning Fast, Ultra Relevant, and Typo-Tolerant Search
Engine
services:
$$id:
name: MeiliSearch
documentation: 'https://docs.meilisearch.com/'
depends_on: []
image: 'getmeili/meilisearch:$$core_version'
volumes:
- '$$id-datams:/meili_data/data.ms'
- '$$id-data:/meili_data'
- '$$id-snapshot:/snapshot'
- '$$id-dump:/dumps'
environment:
- MEILI_MASTER_KEY=$$secret_meili_master_key
ports:
- '7700'
variables:
- id: $$secret_meili_master_key
name: MEILI_MASTER_KEY
label: Master Key
defaultValue: $$generate_passphrase
description: ''
showOnUI: true
- templateVersion: 1.0.0
defaultVersion: latest
name: Ghost
description: >-
Ghost is a free and open source blogging platform written in JavaScript and
distributed under the MIT License
services:
$$id:
name: Ghost
documentation: 'Taken from https://docs.ghost.org/'
depends_on:
- $$id-mariadb
image: 'bitnami/ghost:$$core_version'
volumes:
- '$$id-ghost:/bitnami/ghost'
environment:
- url=$$config_url
- GHOST_HOST=$$config_ghost_host
- GHOST_ENABLE_HTTPS=$$config_ghost_enable_https
- GHOST_EMAIL=$$config_ghost_email
- GHOST_PASSWORD=$$secret_ghost_password
- GHOST_DATABASE_HOST=$$config_ghost_database_host
- GHOST_DATABASE_USER=$$config_mariadb_user
- GHOST_DATABASE_PASSWORD=$$secret_ghost_database_password
- GHOST_DATABASE_NAME=$$config_mariadb_database
- GHOST_DATABASE_PORT_NUMBER=3306
ports:
- '2368'
$$id-mariadb:
name: MariaDB
depends_on: []
image: 'bitnami/mariadb:latest'
volumes:
- '$$id-mariadb:/bitnami/mariadb'
environment:
- MARIADB_USER=$$config_mariadb_user
- MARIADB_PASSWORD=$$secret_mariadb_password
- MARIADB_DATABASE=$$config_mariadb_database
- MARIADB_ROOT_USER=$$config_mariadb_root_user
- MARIADB_ROOT_PASSWORD=$$secret_mariadb_root_password
ports: []
variables:
- id: $$config_url
name: url
label: URL
defaultValue: $$generate_fqdn
description: ''
- id: $$config_ghost_host
name: GHOST_HOST
label: Ghost Host
defaultValue: ''
description: ''
- id: $$config_ghost_enable_https
name: GHOST_ENABLE_HTTPS
label: Ghost Enable HTTPS
defaultValue: 'no'
description: ''
- id: $$config_ghost_email
name: GHOST_EMAIL
label: Ghost Default Email
defaultValue: admin@example.com
description: ''
- id: $$secret_ghost_password
name: GHOST_PASSWORD
label: Ghost Default Password
defaultValue: $$generate_password
description: ''
- id: $$config_ghost_database_host
name: GHOST_DATABASE_HOST
label: Ghost Database Host
defaultValue: $$id-mariadb
description: ''
- id: $$config_ghost_database_user
name: GHOST_DATABASE_USER
label: MariaDB User
defaultValue: $$config_mariadb_user
description: ''
- id: $$secret_ghost_database_password
name: GHOST_DATABASE_PASSWORD
label: MariaDB Password
defaultValue: $$secret_mariadb_password
description: ''
- id: $$config_ghost_database_name
name: GHOST_DATABASE_NAME
label: MariaDB Database
defaultValue: $$config_mariadb_database
description: ''
- id: $$config_mariadb_user
name: MARIADB_USER
label: MariaDB User
defaultValue: $$generate_username
description: ''
- id: $$secret_mariadb_password
name: MARIADB_PASSWORD
label: MariaDB Password
defaultValue: $$generate_password
description: ''
- id: $$config_mariadb_database
name: MARIADB_DATABASE
label: MariaDB Database
defaultValue: ghost
description: ''
- id: $$config_mariadb_root_user
name: MARIADB_ROOT_USER
label: MariaDB Root User
defaultValue: $$generate_username
description: ''
- id: $$secret_mariadb_root_password
name: MARIADB_ROOT_PASSWORD
label: MariaDB Root Password
defaultValue: $$generate_password
description: ''
- templateVersion: 1.0.0
defaultVersion: php8.1
name: WordPress
description: WordPress is a content management system based on PHP.
services:
$$id:
name: WordPress
documentation: ' Taken from https://docs.docker.com/compose/wordpress/'
depends_on:
- $$id-mysql
image: 'wordpress:$$core_version'
volumes:
- '$$id-wordpress-data:/var/www/html'
environment:
- WORDPRESS_DB_HOST=$$config_wordpress_db_host
- WORDPRESS_DB_USER=$$config_mysql_user
- WORDPRESS_DB_PASSWORD=$$secret_mysql_password
- WORDPRESS_DB_NAME=$$config_mysql_database
- WORDPRESS_CONFIG_EXTRA=$$config_wordpress_config_extra
ports:
- '80'
$$id-mysql:
name: MySQL
depends_on: []
image: 'mysql:5.7'
volumes:
- '$$id-mysql-data:/var/lib/mysql'
environment:
- MYSQL_ROOT_PASSWORD=$$secret_mysql_root_password
- MYSQL_ROOT_USER=$$config_mysql_root_user
- MYSQL_DATABASE=$$config_mysql_database
- MYSQL_USER=$$config_mysql_user
- MYSQL_PASSWORD=$$secret_mysql_password
ports: []
variables:
- id: $$config_wordpress_db_host
name: WORDPRESS_DB_HOST
label: WordPress DB Host
defaultValue: $$id-mysql
description: ''
- id: $$config_wordpress_db_user
name: WORDPRESS_DB_USER
label: WordPress DB User
defaultValue: $$config_mysql_user
description: ''
- id: $$secret_wordpress_db_password
name: WORDPRESS_DB_PASSWORD
label: WordPress DB Password
defaultValue: $$secret_mysql_password
description: ''
- id: $$config_wordpress_db_name
name: WORDPRESS_DB_NAME
label: WordPress DB Name
defaultValue: $$config_mysql_database
description: ''
- id: $$config_wordpress_config_extra
name: WORDPRESS_CONFIG_EXTRA
label: WordPress Config Extra
defaultValue: ''
description: ''
- id: $$secret_mysql_root_password
name: MYSQL_ROOT_PASSWORD
label: MySQL Root Password
defaultValue: $$generate_password
description: ''
- id: $$config_mysql_root_user
name: MYSQL_ROOT_USER
label: MySQL Root User
defaultValue: $$generate_username
description: ''
- id: $$config_mysql_database
name: MYSQL_DATABASE
label: MySQL Database
defaultValue: wordpress
description: ''
- id: $$config_mysql_user
name: MYSQL_USER
label: MySQL User
defaultValue: $$generate_username
description: ''
- id: $$secret_mysql_password
name: MYSQL_PASSWORD
label: MySQL Password
defaultValue: $$generate_password
description: ''
- templateVersion: 1.0.0
defaultVersion: 4.7.1
name: VSCode Server
description: >-
vscode-server by Coder is VS Code running on a remote server, accessible
through the browser.
services:
$$id:
name: VSCode Server
documentation: 'Taken from https://github.com/coder/code-server/. '
depends_on: []
image: 'codercom/code-server:$$core_version'
volumes:
- '$$id-config-data:/home/coder/.local/share/code-server'
- '$$id-vscodeserver-data:/home/coder'
- '$$id-keys-directory:/root/.ssh'
- '$$id-theme-and-plugin-directory:/root/.local/share/code-server'
environment:
- PASSWORD=$$secret_password
ports:
- '8080'
variables:
- id: $$secret_password
name: PASSWORD
label: Password
defaultValue: $$generate_password
description: ''
showOnUI: true
- templateVersion: 1.0.0
defaultVersion: RELEASE.2022-10-15T19-57-03Z
name: MinIO
description: ' MinIO is a cloud storage server compatible with Amazon S3'
services:
$$id:
name: MinIO
command: 'server /data --console-address :9001'
documentation: 'Taken from https://docs.min.io/docs/minio-docker-quickstart-guide.html'
depends_on: []
image: 'minio/minio:$$core_version'
volumes:
- '$$id-data-write:/files'
environment:
- MINIO_SERVER_URL=$$coolify_fqdn_minio_console
- MINIO_BROWSER_REDIRECT_URL=$$config_minio_browser_redirect_url
- MINIO_DOMAIN=$$config_minio_domain
- MINIO_ROOT_USER=$$config_minio_root_user
- MINIO_ROOT_PASSWORD=$$secret_minio_root_password
ports:
- '9000'
- '9001'
proxy:
- port: '9000'
domain: $$coolify_fqdn_minio_console
- port: '9001'
variables:
- id: $$coolify_fqdn_minio_console
name: MINIO_SERVER_URL
label: MinIO Server URL
defaultValue: ''
description: 'Specify the URL hostname the MinIO Console should use for connecting to the MinIO Server.'
required: true
- id: $$config_minio_browser_redirect_url
name: MINIO_BROWSER_REDIRECT_URL
label: Browser Redirect URL
defaultValue: $$generate_fqdn
description: ''
- id: $$config_minio_domain
name: MINIO_DOMAIN
label: Domain
defaultValue: $$generate_domain
description: ''
- id: $$config_minio_root_user
name: MINIO_ROOT_USER
label: Root User
defaultValue: $$generate_username
description: ''
- id: $$secret_minio_root_password
name: MINIO_ROOT_PASSWORD
label: Root User Password
defaultValue: $$generate_password
description: ''
showOnUI: true
- templateVersion: 1.0.0
defaultVersion: 0.21.1
name: Fider
description: Fider is a platform to collect and organize customer feedback.
services:
$$id:
name: Fider
image: 'getfider/fider:$$core_version'
documentation: 'Taken from https://hub.docker.com/r/getfider/fider/'
depends_on:
- $$id-postgresql
environment:
- BASE_URL=$$config_base_url
- JWT_SECRET=$$secret_jwt_secret
- EMAIL_NOREPLY=$$config_email_noreply
- EMAIL_MAILGUN_API=$$secret_email_mailgun_api
- EMAIL_MAILGUN_REGION=$$config_email_mailgun_region
- EMAIL_MAILGUN_DOMAIN=$$config_email_mailgun_domain
- EMAIL_SMTP_HOST=$$config_email_smtp_host
- EMAIL_SMTP_PORT=$$config_email_smtp_port
- EMAIL_SMTP_USER=$$config_email_smtp_user
- EMAIL_SMTP_PASSWORD=$$secret_email_smtp_password
- EMAIL_SMTP_ENABLE_STARTTLS=$$config_email_smtp_enable_starttls
ports:
- '3000'
$$id-postgresql:
name: PostgreSQL
documentation: 'Taken from https://hub.docker.com/r/getfider/fider/'
depends_on: []
image: 'postgres:12-alpine'
volumes:
- '$$id-postgresql-data:/var/lib/postgresql/data'
environment:
- POSTGRES_USER=$$config_postgres_user
- POSTGRES_PASSWORD=$$secret_postgres_password
- POSTGRES_DB=$$config_postgres_db
variables:
- id: $$config_base_url
name: BASE_URL
label: Base URL
defaultValue: $$generate_fqdn
description: ''
- id: $$secret_database_url
name: DATABASE_URL
label: Database URL for PostgreSQL
defaultValue: >-
postgresql://$$config_postgres_user:$$secret_postgres_password@$$id-postgresql:5432/$$config_postgres_db
description: ''
- id: $$secret_jwt_secret
name: JWT_SECRET
label: JWT Secret
defaultValue: $$generate_passphrase
description: ''
- id: $$config_email_noreply
name: EMAIL_NOREPLY
label: No Reply Email Address
defaultValue: noreply@example.com
description: ''
- id: $$secret_email_mailgun_api
name: EMAIL_MAILGUN_API
label: Mailgun API Key
defaultValue: ''
description: ''
- id: $$config_email_mailgun_region
name: EMAIL_MAILGUN_REGION
label: Mailgun Region
defaultValue: EU
description: ''
- id: $$config_email_mailgun_domain
name: EMAIL_MAILGUN_DOMAIN
label: Mailgun Domain
defaultValue: ''
description: ''
- id: $$config_email_smtp_host
name: EMAIL_SMTP_HOST
label: SMTP Host
defaultValue: ''
description: ''
- id: $$config_email_smtp_port
name: EMAIL_SMTP_PORT
label: SMTP Port
defaultValue: '587'
description: ''
- id: $$config_email_smtp_user
name: EMAIL_SMTP_USER
label: SMTP User
defaultValue: ''
description: ''
- id: $$secret_email_smtp_password
name: EMAIL_SMTP_PASSWORD
label: SMTP Password
defaultValue: ''
description: ''
- id: $$config_email_smtp_enable_starttls
name: EMAIL_SMTP_ENABLE_STARTTLS
label: SMTP Enable StartTLS
defaultValue: 'false'
description: ''
- id: $$config_postgres_user
name: POSTGRES_USER
label: PostgreSQL User
defaultValue: $$generate_username
description: ''
- id: $$secret_postgres_password
name: POSTGRES_PASSWORD
label: PostgreSQL Password
defaultValue: $$generate_password
description: ''
- id: $$config_postgres_db
name: POSTGRES_DB
label: PostgreSQL Database
defaultValue: $$generate_username
description: ''
- templateVersion: 1.0.0
defaultVersion: 0.198.1
name: n8n.io
description: n8n is a free and open node based Workflow Automation Tool.
services:
$$id:
name: N8n
documentation: 'Taken from https://hub.docker.com/r/n8nio/n8n'
depends_on: []
image: 'n8nio/n8n:$$core_version'
volumes:
- '$$id-data:/root/.n8n'
- '$$id-data-write:/files'
- '/var/run/docker.sock:/var/run/docker.sock'
environment:
- WEBHOOK_URL=$$config_webhook_url
ports:
- '5678'
variables:
- id: $$config_webhook_url
name: WEBHOOK_URL
label: Webhook URL
defaultValue: $$generate_fqdn
description: ''
- templateVersion: 1.0.0
defaultVersion: stable
name: Plausible Analytics
description: Plausible is a lightweight and open-source website analytics tool.
labels:
- analytics
- plausible
- gdpr
- no-cookie
- privacy
services:
$$id:
name: Plausible Analytics
documentation: 'Taken from https://plausible.io/'
command: >-
sh -c "sleep 10 && /entrypoint.sh db createdb && /entrypoint.sh db
migrate && /entrypoint.sh db init-admin && /entrypoint.sh run"
depends_on:
- $$id-postgresql
- $$id-clickhouse
image: 'plausible/analytics:$$core_version'
environment:
- ADMIN_USER_EMAIL=$$config_admin_user_email
- ADMIN_USER_NAME=$$config_admin_user_name
- ADMIN_USER_PWD=$$secret_admin_user_pwd
- BASE_URL=$$config_base_url
- SECRET_KEY_BASE=$$secret_secret_key_base
- DISABLE_AUTH=$$config_disable_auth
- DISABLE_REGISTRATION=$$config_disable_registration
- DATABASE_URL=$$secret_database_url
- CLICKHOUSE_DATABASE_URL=$$secret_clickhouse_database_url
ports:
- '8000'
$$id-postgresql:
name: PostgreSQL
documentation: 'Taken from https://plausible.io/'
image: 'bitnami/postgresql:13.2.0'
volumes:
- '$$id-postgresql-data:/bitnami/postgresql'
environment:
- POSTGRESQL_PASSWORD=$$secret_postgresql_password
- POSTGRESQL_USERNAME=$$config_postgresql_username
- POSTGRESQL_DATABASE=$$config_postgresql_database
$$id-clickhouse:
name: Clickhouse
documentation: 'Taken from https://plausible.io/'
volumes:
- '$$id-clickhouse-data:/var/lib/clickhouse'
image: 'yandex/clickhouse-server:21.3.2.5'
ulimits:
nofile:
soft: 262144
hard: 262144
extras:
files:
- source: $$workdir/clickhouse-config.xml
destination: /etc/clickhouse-server/users.d/logging.xml
content: >-
warningtrue
- source: $$workdir/clickhouse-user-config.xml
destination: /etc/clickhouse-server/config.d/logging.xml
content: >-
00
- source: $$workdir/init.query
destination: /docker-entrypoint-initdb.d/init.query
content: CREATE DATABASE IF NOT EXISTS plausible;
- source: $$workdir/init-db.sh
destination: /docker-entrypoint-initdb.d/init-db.sh
content: >-
clickhouse client --queries-file
/docker-entrypoint-initdb.d/init.query
variables:
- id: $$config_base_url
name: BASE_URL
label: Base URL
defaultValue: $$generate_fqdn
description: >-
You must set this to the FQDN of the Plausible Analytics instance. This
is used to generate the links to the Plausible Analytics instance.
- id: $$secret_database_url
name: DATABASE_URL
label: Database URL for PostgreSQL
defaultValue: >-
postgresql://$$config_postgresql_username:$$secret_postgresql_password@$$id-postgresql:5432/$$config_postgresql_database
description: ''
- id: $$secret_clickhouse_database_url
name: CLICKHOUSE_DATABASE_URL
label: Database URL for Clickhouse
defaultValue: 'http://$$id-clickhouse:8123/plausible'
description: ''
- id: $$config_admin_user_email
name: ADMIN_USER_EMAIL
label: Admin Email Address
defaultValue: admin@example.com
description: This is the admin email. Please change it.
- id: $$config_admin_user_name
name: ADMIN_USER_NAME
label: Admin User Name
defaultValue: $$generate_username
description: This is the admin username. Please change it.
- id: $$secret_admin_user_pwd
name: ADMIN_USER_PWD
label: Admin User Password
defaultValue: $$generate_password
description: This is the admin password. Please change it.
showOnUI: true
- id: $$secret_secret_key_base
name: SECRET_KEY_BASE
label: Secret Key Base
defaultValue: $$generate_passphrase
description: ''
- id: $$config_disable_auth
name: DISABLE_AUTH
label: Disable Authentication
defaultValue: 'false'
description: ''
- id: $$config_disable_registration
name: DISABLE_REGISTRATION
label: Disable Registration
defaultValue: 'true'
description: ''
- id: $$config_postgresql_username
name: POSTGRESQL_USERNAME
label: PostgreSQL Username
defaultValue: postgresql
description: ''
- id: $$secret_postgresql_password
name: POSTGRESQL_PASSWORD
label: PostgreSQL Password
defaultValue: $$generate_password
description: ''
- id: $$config_postgresql_database
name: POSTGRESQL_DATABASE
label: PostgreSQL Database
defaultValue: plausible
description: ''
- id: $$config_scriptName
name: SCRIPT_NAME
label: Custom Script Name
defaultValue: plausible.js
description: This is the default script name.
- templateVersion: 1.0.0
defaultVersion: 0.98.1
name: NocoDB
description: >-
The Open Source Airtable Alternative - Turns any MySQL, PostgreSQL, SQL
Server, SQLite & MariaDB into a smart-spreadsheet.
services:
$$id:
image: nocodb/nocodb:$$core_version
environment:
- PORT=$$config_port
- NC_DB=$$config_nc_db
- DATABASE_URL=$$secret_database_url
- NC_PUBLIC_URL=$$config_public_url
- NC_AUTH_JWT_SECRET=$$secret_auth_jwt_secret
- NC_SENTRY_DSN=$$secret_sentry_dsn
- >-
NC_CONNECT_TO_EXTERNAL_DB_DISABLED=$$config_connect_to_external_db_disabled
- NC_DISABLE_TELE=$$config_disable_tele
volumes:
- $$id-data:/usr/app/data
ports:
- '8080'
variables:
- id: $$config_nc_db
name: NC_DB
label: Database
defaultValue: ''
description: >-
MySQL, PostgreSQL and MSSQL connection urls supported. If absent: A
local SQLite will be created in root folder.
- id: $$config_port
name: PORT
label: Port
defaultValue: '8080'
description: >-
For setting app running port.
- id: $$secret_database_url
name: DATABASE_URL
label: Database URL
defaultValue: ''
description: >-
JDBC URL Format. Can be used instead of NC_DB. Used in 1-Click Heroku
deployment.
- id: $$config_public_url
name: NC_PUBLIC_URL
label: Public URL
defaultValue: ''
description: >-
Used for sending Email invitations. If absent: Best guess from http
request params.
- id: $$secret_auth_jwt_secret
name: NC_AUTH_JWT_SECRET
label: Auth JWT Secret
defaultValue: $$generate_hex(64)
description: >-
JWT secret used for auth and storing other secrets. If absent: A Random
secret will be generated.
- id: $$secret_sentry_dsn
name: NC_SENTRY_DSN
label: Sentry DSN
defaultValue: ''
description: For Sentry monitoring.
- id: $$config_connect_to_external_db_disabled
name: NC_CONNECT_TO_EXTERNAL_DB_DISABLED
label: Disable External Database
defaultValue: '0'
description: Disable Project creation with external database. (Enter "1" to disable).
- id: $$config_disable_tele
name: NC_DISABLE_TELE
label: NocoDB Disable Telemetry
defaultValue: '1'
description: Disable telemetry (Enter "1" to disable).
documentation: See https://github.com/nocodb/nocodb