# I don't understand how to load extensions from my Azure Storage account

**URL:** <https://community.directus.com/t/i-dont-understand-how-to-load-extensions-from-my-azure-storage-account/1958>\
**Category:** Help\
**Tags:** extensions\
**Created:** [February 16, 2026, 4:58pm UTC](https://community.directus.com/t/i-dont-understand-how-to-load-extensions-from-my-azure-storage-account/1958 "2026-02-16T16:58:07Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![fachgelehrte](https://sea2.discourse-cdn.com/flex002/user_avatar/community.directus.com/fachgelehrte/32/1463_2.png) [@fachgelehrte](https://community.directus.com/u/fachgelehrte)\
**Post date:** [February 16, 2026, 4:58pm UTC](https://community.directus.com/t/i-dont-understand-how-to-load-extensions-from-my-azure-storage-account/1958/1 "2026-02-16T16:58:07Z")

</div>

Hi, I’m new to deploying Directus apps on Azure. The reason I’m here is that I’m trying to load a custom interface extension that I’ve created.

I uploaded the `dist` folder containing the `index.js` file to my Azure Storage container called `extensions`, and I’ve also followed all the instructions in the documentation: _Deploy Directus to Azure Web Apps | Directus Docs_.

I added the `STORAGE_AZURE_*` environment variables in the Azure Portal. When my app starts, all the extensions downloaded from the marketplace are loaded, but my custom extension isn’t.

I need help, please. If you need more details about my implementation, I’ll be happy to provide them.

---

<div class="post-metadata">

**Author:** ![rijkvanzanten](https://sea2.discourse-cdn.com/flex002/user_avatar/community.directus.com/rijkvanzanten/32/31_2.png) [@rijkvanzanten](https://community.directus.com/u/rijkvanzanten)\
**Post date:** [February 26, 2026, 10:06pm UTC](https://community.directus.com/t/i-dont-understand-how-to-load-extensions-from-my-azure-storage-account/1958/2 "2026-02-26T22:06:10Z")

</div>

Hey @rchl!

Two things that are likely tripping you up here:

1. **You need `EXTENSIONS_LOCATION`** — configuring `STORAGE_AZURE_*` sets up Azure as a storage driver, but you also need to tell Directus to actually _sync extensions_ from that storage location. Add `EXTENSIONS_LOCATION=azure` (or whatever you named the location in `STORAGE_LOCATIONS`) to your env vars. Without it, Directus only looks at the local `./extensions` folder.

2. **Upload the full extension, not just `dist`** — the extension scanner discovers extensions by looking for `package.json` files. So the structure in your storage container should look like:

```auto
my-custom-interface/
├── package.json
└── dist/
    └── index.js

```

Just uploading the `dist` folder on its own won’t be picked up.

The reason your marketplace extensions work is that they go through a separate install flow that already handles this correctly. Custom extensions need to follow the folder convention above so the scanner can find them 👍
