Skip to main content
Set up automatically with the wizard, or configure by hand.

Automatic setup

The setup wizard is the fastest path — it provisions the Bunny resources for you and prints a ready-to-paste plugin config plus .env lines, with no manual dashboard steps:
See Setup wizard for what it asks and everything it creates.

Manual setup

1

Install

Requires Payload 3.90.2 or later and Node.js 22 or later. @payloadcms/plugin-cloud-storage is a peer dependency. Install the version that matches your Payload version.
On Payload 3.83.0 to 3.90.1, only @seshuk/payload-storage-bunny@3.0.1 works. We do not recommend it, because it lacks the security fixes in v3.1.0. Upgrade Payload instead.
2

Configure storage

Add the plugin to your Payload config and map an upload collection to Bunny Storage:
payload.config.ts
Files uploaded to the media collection are now stored in Bunny Storage and served from the CDN.
3

Add video streaming (optional)

To route video uploads to Bunny Stream, add a stream block. Non-video files continue to use Bunny Storage.
payload.config.ts
With Payload access control on (the default), Stream needs mp4Fallback: true or signed URLs with redirect — otherwise the plugin throws at startup. See Access control and mp4Fallback.Videos now upload to Bunny Stream and expose an HLS playlist through the bunnyData field.

Next steps

Set serverURL in your Payload config. Payload needs it to crop images, change the focal point and duplicate documents.
  • Configuration — every option, including signed URLs, thumbnails and cache purging
  • Examples — complete configurations for common setups
  • Client uploads — browser-direct uploads for serverless hosts and large files
  • Upgrading from v2? — the v3 config changes and data migration