Wasabi is an S3-compatible cloud object storage service. Buckets live in a region, such as us-east-1 or eu-central-1, and are reached through S3 endpoints like s3.us-east-1.wasabisys.com.
How does the integration work?
By default, self-hosted Appwrite Storage keeps uploaded files on your server's local disk. The wasabi storage adapter stores them in a Wasabi bucket instead, so file storage scales separately from your server and survives a server rebuild. Appwrite builds the bucket address, <bucket>.s3.<region>.wasabisys.com, from the bucket name and region you configure.
Storage adapters configure a self-hosted Appwrite instance. Appwrite Cloud manages file storage for you.
How to implement
To store Appwrite files in Wasabi, there are several steps you must complete:
Step 1: Create a bucket and an access key
In the Wasabi console, create a bucket in the region closest to your Appwrite server. Note the bucket name and the region code, for example us-east-1.
Then create an access key for a user that can read and write the bucket. Save the access key and secret key. Wasabi shows the secret key only when you create it.
Step 2: Configure the Wasabi adapter in Appwrite
For this step, you must self-host Appwrite if you haven't already.
Open the .env file of your Appwrite installation and set the storage variables:
_APP_STORAGE_DEVICE=wasabi_APP_STORAGE_S3_ACCESS_KEY=<ACCESS_KEY>_APP_STORAGE_S3_SECRET=<SECRET_KEY>_APP_STORAGE_S3_REGION=us-east-1_APP_STORAGE_S3_BUCKET=<BUCKET_NAME>_APP_STORAGE_DEVICE=wasabi selects the Wasabi adapter, and the _APP_STORAGE_S3_* variables hold its credentials, region, and bucket.
Older installations set _APP_STORAGE_WASABI_ACCESS_KEY, _APP_STORAGE_WASABI_SECRET, _APP_STORAGE_WASABI_REGION, and _APP_STORAGE_WASABI_BUCKET. Appwrite 2.0 and later still read them as a fallback when _APP_STORAGE_S3_ACCESS_KEY, _APP_STORAGE_S3_SECRET, and _APP_STORAGE_S3_BUCKET are not all set, but they are deprecated, and the Open Runtimes orchestrator that builds Functions and Sites doesn't read them. Move the values to the _APP_STORAGE_S3_* variables.
Recreate the containers and check that the variables are applied:
docker compose up -ddocker compose exec appwrite varsChanging the storage device doesn't move files Appwrite has already stored, so configure it before you store production files.
Step 3: Test the adapter
Open your project in the Appwrite Console, go to Storage, create a bucket, and upload a file. The file then appears in your bucket in the Wasabi console.
Read more about Wasabi and Appwrite Storage
If you would like to learn more about Wasabi and Appwrite Storage, we have some resources that you should visit:
