
Appwrite is a self-hosted solution that provides developers with a set of easy-to-use and integrate REST APIs to manage their core backend needs. Description of all available environment variables: https://appwrite.io/docs/environment-variables
appwrite-redis
- appwrite-redis:/data
appwrite-mariadb
- appwrite-mariadb:/var/lib/mysql
appwrite-influxdb
- appwrite-influxdb:/var/lib/influxdb
appwrite-telegraf
appwrite
- appwrite-uploads:/storage/uploads
- appwrite-cache:/storage/cache
- appwrite-config:/storage/config
- appwrite-certificates:/storage/certificates
- appwrite-functions:/storage/functions
appwrite-realtime
appwrite-executor
- /var/run/docker.sock:/var/run/docker.sock
- appwrite-functions:/storage/functions
- appwrite-builds:/storage/builds
- /tmp:/tmp
appwrite-worker-databases
appwrite-worker-builds
- appwrite-functions:/storage/functions
- appwrite-builds:/storage/builds
appwrite-worker-audits
appwrite-worker-webhooks
appwrite-worker-deletes
- appwrite-uploads:/storage/uploads
- appwrite-cache:/storage/cache
- appwrite-functions:/storage/functions
- appwrite-builds:/storage/builds
- appwrite-certificates:/storage/certificates
appwrite-worker-functions
appwrite-worker-mails
appwrite-worker-messaging
appwrite-worker-certificates
- appwrite-config:/storage/config
- appwrite-certificates:/storage/certificates
appwrite-worker-migrations
appwrite-assistant
appwrite-maintenance
appwrite-usage
appwrite-schedule
Appwrite Version Tag
Check out their valid tags at https://hub.docker.com/r/appwrite/appwrite/tags
Assistant Version Tag
Check out their valid tags at https://hub.docker.com/r/appwrite/assistant/tags
OpenRuntimes Executor Version Tag
Check out their valid tags at https://hub.docker.com/r/openruntimes/executor/tags
_APP_ENV
Set your server running environment.
_APP_LOCALE
Set your Appwrite's locale. By default, the locale is set to 'en'.
_APP_OPTIONS_ABUSE
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.
_APP_OPTIONS_FORCE_HTTPS
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.
_APP_OPENSSL_KEY_V1
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.
_APP_DOMAIN
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'.
_APP_DOMAIN_FUNCTIONS
A domain to use for function preview URLs. Setting to empty turns off function preview URLs.
_APP_DOMAIN_TARGET
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'.
_APP_CONSOLE_WHITELIST_ROOT
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.
_APP_CONSOLE_WHITELIST_EMAILS
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.
_APP_CONSOLE_WHITELIST_IPS
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.
_APP_SYSTEM_EMAIL_NAME
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.
_APP_SYSTEM_EMAIL_ADDRESS
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.
_APP_SYSTEM_RESPONSE_FORMAT
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.
_APP_SYSTEM_SECURITY_EMAIL_ADDRESS
This is the email address used to issue SSL certificates for custom domains or the user agent in your webhooks payload.
_APP_USAGE_STATS
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.
_APP_LOGGING_PROVIDER
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'
_APP_LOGGING_CONFIG
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.
_APP_WORKER_PER_CORE
Internal Worker per core for the API, Realtime and Executor containers. Can be configured to optimize performance.
_APP_REDIS_PORT
Redis server TCP port.
_APP_REDIS_USER
Redis server user. This is an optional variable. Default value is an empty string.
_APP_REDIS_PASS
Redis server password. This is an optional variable. Default value is an empty string.
_APP_DB_PORT
MariaDB server TCP port.
_APP_DB_SCHEMA
MariaDB server database schema.
_APP_DB_USER
MariaDB server user name.
_APP_DB_PASS
MariaDB server user password.
_APP_DB_ROOT_PASS
MariaDB server root password.
_APP_INFLUXDB_PORT
InfluxDB server TCP port.
_APP_STATSD_PORT
StatsD server TCP port.
_APP_SMTP_HOST
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.
_APP_SMTP_PORT
SMTP server TCP port. Empty by default.
_APP_SMTP_SECURE
SMTP secure connection protocol. Empty by default, change to 'tls' if running on a secure connection.
_APP_SMTP_USERNAME
SMTP server user name. Empty by default.
_APP_SMTP_PASSWORD
SMTP server user password. Empty by default.
_APP_SMS_PROVIDER
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.
_APP_SMS_FROM
Phone number used for sending out messages. Must start with a leading '+' and maximum of 15 digits without spaces (+123456789).
_APP_STORAGE_LIMIT
Maximum file size allowed for file upload. The default value is 30MB. You should pass your size limit value in bytes.
_APP_STORAGE_PREVIEW_LIMIT
Maximum file size allowed for file image preview. The default value is 20MB. You should pass your size limit value in bytes.
_APP_STORAGE_ANTIVIRUS
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.
_APP_STORAGE_ANTIVIRUS_HOST
ClamAV server host name address.
_APP_STORAGE_ANTIVIRUS_PORT
ClamAV server TCP port.
_APP_STORAGE_DEVICE
Select default storage device. The default value is 'Local'. List of supported adapters are 'Local', 'S3', 'DOSpaces', 'Backblaze', 'Linode' and 'Wasabi'.
_APP_STORAGE_S3_ACCESS_KEY
AWS S3 storage access key. Required when the storage adapter is set to S3. You can get your access key from your AWS console.
_APP_STORAGE_S3_SECRET
AWS S3 storage secret key. Required when the storage adapter is set to S3. You can get your secret key from your AWS console.
_APP_STORAGE_S3_REGION
AWS S3 storage region. Required when storage adapter is set to S3. You can find your region info for your bucket from AWS console.
_APP_STORAGE_S3_BUCKET
AWS S3 storage bucket. Required when storage adapter is set to S3. You can create buckets in your AWS console.
_APP_STORAGE_DO_SPACES_ACCESS_KEY
DigitalOcean spaces access key. Required when the storage adapter is set to DOSpaces. You can get your access key from your DigitalOcean console.
_APP_STORAGE_DO_SPACES_SECRET
DigitalOcean spaces secret key. Required when the storage adapter is set to DOSpaces. You can get your secret key from your DigitalOcean console.
_APP_STORAGE_DO_SPACES_REGION
DigitalOcean spaces region. Required when storage adapter is set to DOSpaces. You can find your region info for your space from DigitalOcean console.
_APP_STORAGE_DO_SPACES_BUCKET
DigitalOcean spaces bucket. Required when storage adapter is set to DOSpaces. You can create spaces in your DigitalOcean console.
_APP_STORAGE_BACKBLAZE_ACCESS_KEY
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.
_APP_STORAGE_BACKBLAZE_SECRET
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.
_APP_STORAGE_BACKBLAZE_REGION
Backblaze region. Required when storage adapter is set to Backblaze. You can find your region info from your Backblaze console.
_APP_STORAGE_BACKBLAZE_BUCKET
Backblaze bucket. Required when storage adapter is set to Backblaze. You can create your bucket from your Backblaze console.
_APP_STORAGE_LINODE_ACCESS_KEY
Linode object storage access key. Required when the storage adapter is set to Linode. You can get your access key from your Linode console.
_APP_STORAGE_LINODE_SECRET
Linode object storage secret key. Required when the storage adapter is set to Linode. You can get your secret key from your Linode console.
_APP_STORAGE_LINODE_REGION
Linode object storage region. Required when storage adapter is set to Linode. You can find your region info from your Linode console.
_APP_STORAGE_LINODE_BUCKET
Linode object storage bucket. Required when storage adapter is set to Linode. You can create buckets in your Linode console.
_APP_STORAGE_WASABI_ACCESS_KEY
Wasabi access key. Required when the storage adapter is set to Wasabi. You can get your access key from your Wasabi console.
_APP_STORAGE_WASABI_SECRET
Wasabi secret key. Required when the storage adapter is set to Wasabi. You can get your secret key from your Wasabi console.
_APP_STORAGE_WASABI_REGION
Wasabi region. Required when storage adapter is set to Wasabi. You can find your region info from your Wasabi console.
_APP_STORAGE_WASABI_BUCKET
Wasabi bucket. Required when storage adapter is set to Wasabi. You can create buckets in your Wasabi console.
_APP_FUNCTIONS_SIZE_LIMIT
The maximum size deployment in bytes. The default value is 30MB.
_APP_FUNCTIONS_TIMEOUT
The maximum number of seconds allowed as a timeout value when creating a new function. The default value is 900 seconds.
_APP_FUNCTIONS_BUILD_TIMEOUT
The maximum number of seconds allowed as a timeout value when building a new function. The default value is 900 seconds.
_APP_FUNCTIONS_CPUS
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.
_APP_FUNCTIONS_MEMORY
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.
_APP_FUNCTIONS_RUNTIMES
This option allows you to enable or disable runtime environments for cloud functions. Disable unused runtimes to save disk space. To enable cloud function runtimes, pass a list of enabled environments separated by a comma. See https://appwrite.io/docs/products/functions/runtimes
_APP_EXECUTOR_SECRET
The secret key used by Appwrite to communicate with the function executor.
_APP_FUNCTIONS_INACTIVE_THRESHOLD
The minimum time a function can be inactive before it's container is shutdown and put to sleep. The default value is 60 seconds
_APP_MAINTENANCE_INTERVAL
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).
_APP_MAINTENANCE_RETENTION_CACHE
The maximum duration (in seconds) upto which to retain cached files. The default value is 2592000 seconds (30 days).
_APP_MAINTENANCE_RETENTION_EXECUTION
The maximum duration (in seconds) upto which to retain execution logs. The default value is 1209600 seconds (14 days).
_APP_MAINTENANCE_RETENTION_AUDIT
The maximum duration (in seconds) upto which to retain audit logs. The default value is 1209600 seconds (14 days).
_APP_MAINTENANCE_RETENTION_ABUSE
The maximum duration (in seconds) upto which to retain abuse logs. The default value is 86400 seconds (1 day).
_APP_MAINTENANCE_RETENTION_USAGE_HOURLY
The maximum duration (in seconds) upto which to retain hourly usage metrics. The default value is 8640000 seconds (100 days).
_APP_MAINTENANCE_RETENTION_SCHEDULES
Schedules deletion interval (in seconds).
_APP_FUNCTIONS_MAINTENANCE_INTERVAL
Interval value containing the number of seconds that the executor should wait before checking for inactive runtimes. The default value is 3600 seconds (1 hour).
_APP_GRAPHQL_MAX_BATCH_SIZE
Maximum number of batched queries per request. The default value is 10.
_APP_GRAPHQL_MAX_COMPLEXITY
Maximum complexity of a GraphQL query. One field adds one to query complexity. Lists multiply the complexity by the number of items requested. The default value is 250.
_APP_GRAPHQL_MAX_DEPTH
Maximum depth of a GraphQL query. One nested field level adds one to query depth. The default value is 3.
_APP_DOCKER_HUB_USERNAME
The username for hub.docker.com. This variable is used to pull images from hub.docker.com.
_APP_DOCKER_HUB_PASSWORD
The password for hub.docker.com. This variable is used to pull images from hub.docker.com.
_APP_VCS_GITHUB_APP_NAME
Name of your GitHub app. This value should be set to your GitHub application's URL.
_APP_VCS_GITHUB_PRIVATE_KEY
GitHub app RSA private key. You can generate private keys from GitHub application settings.
_APP_VCS_GITHUB_APP_ID
GitHub application ID. You can find it in your GitHub application details.
_APP_VCS_GITHUB_CLIENT_ID
GitHub client ID. You can find it in your GitHub application details.
_APP_VCS_GITHUB_CLIENT_SECRET
GitHub client secret. You can generate secrets in your GitHub application settings.
_APP_VCS_GITHUB_WEBHOOK_SECRET
GitHub webhook secret. You can configure it in your GitHub application settings under webhook section.
_APP_MIGRATIONS_FIREBASE_CLIENT_ID
Google OAuth client ID. You can find it in your GCP application settings.
_APP_MIGRATIONS_FIREBASE_CLIENT_SECRET
Google OAuth client secret. You can generate secrets in your GCP application settings.
_APP_ASSISTANT_OPENAI_API_KEY
OpenAI API key. You can find it in your OpenAI application settings.
_APP_USAGE_AGGREGATION_INTERVAL
Interval value containing the number of seconds that the Appwrite usage process should wait before aggregating stats and syncing it to Database from TimeSeries data. The default value is 30 seconds. Reintroduced in 1.1.0.