---
layout: integration
title: Storage with Wasabi
description: Store files from your self-hosted Appwrite instance in Wasabi
date: 2026-11-06
featured: false
isPartner: true
isNew: true
cover: /images/integrations/storage-wasabi/cover.avif
category: storage
product:
    vendor: Wasabi
    description: "Wasabi is an S3-compatible cloud object storage service."
platform:
    - 'Self-hosted'
---

[Wasabi](https://wasabi.com) 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.

**Self-hosted only**

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](/docs/advanced/self-hosting) if you haven't already.

Open the `.env` file of your Appwrite installation and set the storage variables:

```env
_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.

**Upgrading an older configuration**

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:

```bash
docker compose up -d
docker compose exec appwrite vars
```

Changing 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:

- [Storage configuration for self-hosted Appwrite](/docs/advanced/self-hosting/configuration/storage)
- [Storage environment variables](/docs/advanced/self-hosting/configuration/environment-variables#storage)
- [Appwrite Storage](/docs/products/storage)
- [Wasabi documentation](https://docs.wasabi.com/)
