> ## Documentation Index
> Fetch the complete documentation index at: https://helloluciallc.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Bunny CDN and Storage

<Note>
  Bunny stores and serves maintenance media so operator-facing images do not depend on authenticated provider URLs.
</Note>

***

## Role

Bunny is used for:

```text theme={"dark"}
media storage
public CDN delivery
maintenance photo rendering
provider-independent file access
```

***

## Why Bunny Is Required

Twilio media URLs require authentication.

Browser-rendering Twilio URLs directly causes broken images.

The correct flow is:

<div className="hl-flow-v"><span>Twilio media URL</span><span>authenticated server fetch</span><span>Bunny Storage upload</span><span>Bunny CDN URL</span><span>Admin UI render</span></div>

***

## Required Environment Variables

```text theme={"dark"}
BUNNY_STORAGE_ZONE
BUNNY_STORAGE_HOST
BUNNY_CDN_BASE_URL
BUNNY_STORAGE_PASSWORD
```

Important:

```text theme={"dark"}
BUNNY_STORAGE_ZONE must be the zone name, not numeric ID.
```

***

## Known Correct Pattern

Storage host:

```text theme={"dark"}
la.storage.bunnycdn.com
```

CDN base URL:

```text theme={"dark"}
https://Lucia-Maintenance-Inbox.b-cdn.net
```

The storage API hostname must not be used as the public image URL.

***

## Current Status

```text theme={"dark"}
Twilio SMS/MMS media → working
Twilio WhatsApp media → working
Postmark email attachments → deferred
```

***

## Common Failure Modes

```text theme={"dark"}
twilio_media_auth_missing
bunny_upload_failed_401
using storage host as CDN URL
wrong storage zone value
```

***

## See Also

* [03 - Media Pipeline (Bunny)](/lucia/system-architecture/media-pipeline-bunny)
* [06 - Twilio (SMS WhatsApp Voice)](/lucia/infrastructure/twilio-sms-whatsapp-voice)
* [07 - Postmark (Email Inbound)](/lucia/infrastructure/postmark-email-inbound)
