bunny sites is in Public Preview
and available only in the Bunny CLI. It’s in active development, so commands,
flags, and behaviour may change. Share feedback on
Discord. The storage zone and pull zone behind
each site appear in the dashboard under Storage and CDN.
The CLI creates a storage zone for your files and a pull zone to serve them, then links this directory to the new site.
3
Deploy
bunny sites deploy
The CLI uploads the current directory and publishes it. To deploy a subfolder, pass its path, for example bunny sites deploy ./public.
4
Deploy on every push (optional)
bunny sites ci init --framework static
This writes a GitHub Actions workflow to .github/workflows/bunny-sites.yml that deploys the site on every push to main. Add your API key to the repository as a BUNNYNET_API_KEY secret.
1
Create a storage zone
In the bunny.net dashboard, go to Storage and click Add Storage Zone. Give it a name, pick the main region closest to your audience, and click Add Storage Zone.
2
Upload your files
Open the storage zone’s file manager and upload your site to the root of the zone. To script uploads, use the Storage HTTP API.
3
Create a pull zone
Go to CDN and click Add Pull Zone. Set Origin Type to Storage Zone, select the zone you created, and click Add Pull Zone.Your site is live at https://<pull-zone-name>.b-cdn.net.
The CLI prints the CNAME record to create with your DNS provider. Once the record resolves, issue a free certificate with bunny sites domains ssl example.com.For a manual deploy, add the hostname to your pull zone by following Custom hostnames.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"bunny.net Documentation","colors":{"primary":"#EF6126","light":"#EF6126","dark":"#EF6126"},"logo":{"light":"https://mintcdn.com/bunnynet-cb9733c2/54-4KCQKoNVNuoyW/logo/bunny-logo-dark.svg?fit=max\u0026auto=format\u0026n=54-4KCQKoNVNuoyW\u0026q=85\u0026s=62c091ea1aaea93d0a981902b7783e37","dark":"https://mintcdn.com/bunnynet-cb9733c2/54-4KCQKoNVNuoyW/logo/bunny-logo-light.svg?fit=max\u0026auto=format\u0026n=54-4KCQKoNVNuoyW\u0026q=85\u0026s=3610e32d68a9fa458b0116ac58ca812a"},"favicon":"https://mintcdn.com/bunnynet-cb9733c2/1bTPx1eyQm8EK8W3/favicon.png?fit=max\u0026auto=format\u0026n=1bTPx1eyQm8EK8W3\u0026q=85\u0026s=85267b63e804fac7a4dd94599bb8c6e8","navbar":{"links":[{"href":"https://bunny.net/docs/api-reference","label":"API Reference"},{"href":"https://github.com/BunnyWay","label":"GitHub"}],"primary":{"type":"button","label":"Get Started","href":"https://dash.bunny.net/auth/register"}},"footer":{"socials":{"discord":"https://discord.gg/bunnynet","github":"https://github.com/BunnyWay","x":"https://x.com/BunnyCDN","bluesky":"https://bsky.app/profile/bunny.net","linkedin":"https://www.linkedin.com/company/bunnynet","facebook":"https://www.facebook.com/bunnycdn"}},"icons":{"library":"lucide"},"contextual":{"options":["copy","claude","chatgpt","cursor","view","vscode"],"display":"header"},"interaction":{"drilldown":false},"metadata":{"timestamp":true},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"bunnynet-cb9733c2","hasAudioNarration":false,"actualSubdomain":"bunnynet-cb9733c2","customDomains":["bunny.net"],"gitSource":{"type":"github","owner":"bunnyway","repo":"documentation","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ae49f2d21d44d6b52dcfe35","collectionId":"5e262b87-ade9-45d8-9b63-06888c8d59a3","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae49f2d21d44d6b52dcfe35"},"feedback":{"thumbs":true,"contextualFeedback":{"allowEmail":true},"agentFeedback":true,"edits":true,"issues":false},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6ae586f29229f31e96cc51a9","clientVersion":"0.0.4043","searchFilterCounts":[{"language":"default","tag":"Documentation","count":752},{"language":"default","tag":"API Reference","count":318},{"language":"default","tag":"Core Platform API","count":109},{"language":"default","tag":"CDN","count":82},{"language":"default","tag":"Shield API","count":66},{"language":"default","tag":"Stream","count":66},{"language":"default","tag":"Magic Containers API","count":56},{"language":"default","tag":"Storage","count":54},{"language":"default","tag":"Guides","count":54},{"language":"default","tag":"Reference","count":52}],"searchSettings":{"isFiltersEnabled":true}},"assistantConfig":{"enableStarterQuestions":false,"deflection":{"enabled":true,"type":"link","email":"support@bunny.net","url":"https://bunny.net/contact","showHelpButton":true}},"basePath":"/docs","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"privacy":{"consentBanner":{"enabled":true}},"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":".dark img[src*=\"/logo/frameworks/angular.svg\"],.dark img[src*=\"/logo/frameworks/eleventy.svg\"],.dark img[src*=\"/logo/frameworks/express.svg\"],.dark img[src*=\"/logo/frameworks/mariadb.svg\"],.dark img[src*=\"/logo/frameworks/nextjs.svg\"],.dark img[src*=\"/logo/frameworks/sphinx.svg\"]{filter:invert(1)}html:not(.dark) img[src*=\"/logo/frameworks/zola.svg\"]{filter:invert(1)}"}],"page":{"pagePath":"storage/static-site-hosting/static-html","slug":"/storage/static-site-hosting/static-html","pageMetadata":{"title":"Deploy a static HTML site to Bunny Storage","sidebarTitle":"Static HTML","description":"Serve plain HTML, CSS, and JavaScript from Bunny Storage through Bunny CDN, with the Bunny CLI or by hand.","href":"/storage/static-site-hosting/static-html"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Serve plain HTML, CSS, and JavaScript from Bunny Storage through Bunny CDN, with the Bunny CLI or by hand.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,..._provideComponents(),...props.components},{CodeBlock,Heading,Step,Steps,Tab,Tabs,Warning}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Step)_missingMdxReference(`Step`,true);if(!Steps)_missingMdxReference(`Steps`,true);if(!Tab)_missingMdxReference(`Tab`,true);if(!Tabs)_missingMdxReference(`Tabs`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`A site with no build step deploys as it is. Put `,_jsx(_components.code,{children:`index.html`}),` at the root of the folder you deploy, next to your CSS, JavaScript, and images.`]}),`\n`,_jsx(Heading,{level:`2`,id:`deploy-your-site`,children:`Deploy your site`}),`\n`,_jsxs(Tabs,{children:[_jsxs(Tab,{title:`Bunny CLI`,id:`bunny-cli`,children:[_jsx(Warning,{children:_jsxs(_components.p,{children:[_jsx(_components.code,{children:`bunny sites`}),` is in `,_jsx(_components.a,{href:`/product-release-stages#stage-2-public-preview`,children:`Public Preview`}),`\nand available only in the Bunny CLI. It’s in active development, so commands,\nflags, and behaviour may change. Share feedback on\n`,_jsx(_components.a,{href:`https://discord.gg/bunnynet`,children:`Discord`}),`. The storage zone and pull zone behind\neach site appear in the dashboard under `,_jsx(_components.strong,{children:`Storage`}),` and `,_jsx(_components.strong,{children:`CDN`}),`.`]})}),_jsxs(Steps,{children:[_jsxs(Step,{title:`Install the Bunny CLI and log in`,children:[_jsx(CodeBlock,{filename:``,numberOfLines:`2`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`2`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`curl`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -fsSL`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` https://cli.bunny.net/install.sh`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` |`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:` sh`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`bunny`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` login`})]}),`\n`]})})}),_jsxs(_components.p,{children:[`See `,_jsx(_components.a,{href:`/cli/installation`,children:`Installation`}),` for npm and other options.`]})]}),_jsxs(Step,{title:`Create a site`,children:[_jsx(_components.p,{children:`From the folder that holds your site, run:`}),_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`bunny`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` sites`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` create`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` my-site`})]}),`\n`]})})}),_jsx(_components.p,{children:`The CLI creates a storage zone for your files and a pull zone to serve them, then links this directory to the new site.`})]}),_jsxs(Step,{title:`Deploy`,children:[_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`bunny`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` sites`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` deploy`})]}),`\n`]})})}),_jsxs(_components.p,{children:[`The CLI uploads the current directory and publishes it. To deploy a subfolder, pass its path, for example `,_jsx(_components.code,{children:`bunny sites deploy ./public`}),`.`]})]}),_jsxs(Step,{title:`Deploy on every push (optional)`,children:[_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`bunny`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` sites`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` ci`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` init`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --framework`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` static`})]}),`\n`]})})}),_jsxs(_components.p,{children:[`This writes a GitHub Actions workflow to `,_jsx(_components.code,{children:`.github/workflows/bunny-sites.yml`}),` that deploys the site on every push to `,_jsx(_components.code,{children:`main`}),`. Add your API key to the repository as a `,_jsx(_components.code,{children:`BUNNYNET_API_KEY`}),` secret.`]})]})]})]}),_jsx(Tab,{title:`Manually`,id:`manually`,children:_jsxs(Steps,{children:[_jsx(Step,{title:`Create a storage zone`,children:_jsxs(_components.p,{children:[`In the `,_jsx(_components.a,{href:`https://dash.bunny.net`,children:`bunny.net dashboard`}),`, go to `,_jsx(_components.strong,{children:`Storage`}),` and click `,_jsx(_components.strong,{children:`Add Storage Zone`}),`. Give it a name, pick the main region closest to your audience, and click `,_jsx(_components.strong,{children:`Add Storage Zone`}),`.`]})}),_jsx(Step,{title:`Upload your files`,children:_jsxs(_components.p,{children:[`Open the storage zone’s file manager and upload your site to the root of the zone. To script uploads, use the `,_jsx(_components.a,{href:`/storage/http`,children:`Storage HTTP API`}),`.`]})}),_jsxs(Step,{title:`Create a pull zone`,children:[_jsxs(_components.p,{children:[`Go to `,_jsx(_components.strong,{children:`CDN`}),` and click `,_jsx(_components.strong,{children:`Add Pull Zone`}),`. Set `,_jsx(_components.strong,{children:`Origin Type`}),` to `,_jsx(_components.strong,{children:`Storage Zone`}),`, select the zone you created, and click `,_jsx(_components.strong,{children:`Add Pull Zone`}),`.`]}),_jsxs(_components.p,{children:[`Your site is live at `,_jsx(_components.code,{children:`https://\u003cpull-zone-name>.b-cdn.net`}),`.`]})]})]})})]}),`\n`,_jsx(Heading,{level:`2`,id:`add-a-custom-domain`,children:`Add a custom domain`}),`\n`,_jsx(_components.p,{children:`With the Bunny CLI, add the domain to your site:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`bunny`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` sites`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` domains`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` add`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` example.com`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`The CLI prints the `,_jsx(_components.code,{children:`CNAME`}),` record to create with your DNS provider. Once the record resolves, issue a free certificate with `,_jsx(_components.code,{children:`bunny sites domains ssl example.com`}),`.`]}),`\n`,_jsxs(_components.p,{children:[`For a manual deploy, add the hostname to your pull zone by following `,_jsx(_components.a,{href:`/cdn/custom-hostname`,children:`Custom hostnames`}),`.`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Deploy a static HTML site to Bunny Storage","sidebarTitle":"Static HTML","description":"Serve plain HTML, CSS, and JavaScript from Bunny Storage through Bunny CDN, with the Bunny CLI or by hand.","href":"/storage/static-site-hosting/static-html"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Deploy your site","slug":"deploy-your-site","depth":2,"children":[]},{"title":"Add a custom domain","slug":"add-a-custom-domain","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"bunnynet-cb9733c2","siteName":"bunny.net Documentation","title":"Deploy a static HTML site to Bunny Storage - bunny.net Documentation","relatedPagesConfig":{"enabled":false,"limit":5,"mode":"automatic"},"navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-15T10:00:47.878Z","gitLastModified":"2026-10-15T10:00:15.000Z","originalFileLocation":"storage/static-site-hosting/static-html.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Serve plain HTML, CSS, and JavaScript from Bunny Storage through Bunny CDN, with the Bunny CLI or by hand.\">\u003cmeta data-mint-head name=\"application-name\" content=\"bunny.net Documentation\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/docs/mintlify-assets/_mintlify/favicons/bunnynet-cb9733c2/Zv4NOenQlgPS3TXm/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/docs/mintlify-assets/_mintlify/favicons/bunnynet-cb9733c2/Zv4NOenQlgPS3TXm/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/docs/mintlify-assets/_mintlify/favicons/bunnynet-cb9733c2/Zv4NOenQlgPS3TXm/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/docs/mintlify-assets/_mintlify/favicons/bunnynet-cb9733c2/Zv4NOenQlgPS3TXm/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/docs/mintlify-assets/_mintlify/favicons/bunnynet-cb9733c2/Zv4NOenQlgPS3TXm/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/docs/mintlify-assets/_mintlify/favicons/bunnynet-cb9733c2/Zv4NOenQlgPS3TXm/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/docs/mintlify-assets/_mintlify/favicons/bunnynet-cb9733c2/Zv4NOenQlgPS3TXm/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/docs/mintlify-assets/_mintlify/favicons/bunnynet-cb9733c2/Zv4NOenQlgPS3TXm/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/docs/mintlify-assets/_mintlify/favicons/bunnynet-cb9733c2/Zv4NOenQlgPS3TXm/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Deploy a static HTML site to Bunny Storage - bunny.net Documentation\">\u003cmeta data-mint-head property=\"og:description\" content=\"Serve plain HTML, CSS, and JavaScript from Bunny Storage through Bunny CDN, with the Bunny CLI or by hand.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"bunny.net Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://bunny.net/docs/storage/static-site-hosting/static-html\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://bunnynet-cb9733c2.mintlify.app/_mintlify/api/og/v2?division=Other\u0026amp;title=Deploy+a+static+HTML+site+to+Bunny+Storage\u0026amp;description=Serve+plain+HTML%2C+CSS%2C+and+JavaScript+from+Bunny+Storage+through+Bunny+CDN%2C+with+the+Bunny+CLI+or+by+hand.\u0026amp;theme=3e3fa11ba94222b95e7f52d5\u0026amp;signature=8353498b8321ee8d405ddf5560bc09d452a75274afb66e6415efddc410f39535\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Deploy a static HTML site to Bunny Storage - bunny.net Documentation\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Serve plain HTML, CSS, and JavaScript from Bunny Storage through Bunny CDN, with the Bunny CLI or by hand.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://bunnynet-cb9733c2.mintlify.app/_mintlify/api/og/v2?division=Other\u0026amp;title=Deploy+a+static+HTML+site+to+Bunny+Storage\u0026amp;description=Serve+plain+HTML%2C+CSS%2C+and+JavaScript+from+Bunny+Storage+through+Bunny+CDN%2C+with+the+Bunny+CLI+or+by+hand.\u0026amp;theme=3e3fa11ba94222b95e7f52d5\u0026amp;signature=8353498b8321ee8d405ddf5560bc09d452a75274afb66e6415efddc410f39535\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/docs/mintlify-assets/_mintlify/favicons/bunnynet-cb9733c2/Zv4NOenQlgPS3TXm/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"bunny.net Documentation\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#EF6126\">\u003clink data-mint-head rel=\"canonical\" href=\"https://bunny.net/docs/storage/static-site-hosting/static-html\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/docs/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/docs/storage/static-site-hosting/static-html.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://bunny.net/#organization\",\"name\":\"bunny.net Documentation\",\"url\":\"https://bunny.net\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/bunnynet-cb9733c2/54-4KCQKoNVNuoyW/logo/bunny-logo-dark.svg?fit=max\u0026auto=format\u0026n=54-4KCQKoNVNuoyW\u0026q=85\u0026s=62c091ea1aaea93d0a981902b7783e37\"}},{\"@type\":\"WebSite\",\"@id\":\"https://bunny.net/docs#website\",\"name\":\"bunny.net Documentation\",\"url\":\"https://bunny.net/docs\",\"publisher\":{\"@id\":\"https://bunny.net/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://bunny.net/docs/storage/static-site-hosting/static-html#webpage\",\"url\":\"https://bunny.net/docs/storage/static-site-hosting/static-html\",\"name\":\"Deploy a static HTML site to Bunny Storage\",\"description\":\"Serve plain HTML, CSS, and JavaScript from Bunny Storage through Bunny CDN, with the Bunny CLI or by hand.\",\"dateModified\":\"2026-10-15T10:00:15.000Z\",\"isPartOf\":{\"@id\":\"https://bunny.net/docs#website\"},\"breadcrumb\":{\"@id\":\"https://bunny.net/docs/storage/static-site-hosting/static-html#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://bunny.net/docs/storage/static-site-hosting/static-html#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Guides\",\"item\":\"https://bunny.net/docs/storage/static-site-hosting/index\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Static Site Hosting\",\"item\":\"https://bunny.net/docs/storage/static-site-hosting/index\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Other\",\"item\":\"https://bunny.net/docs/storage/static-site-hosting/blazor\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Deploy a static HTML site to Bunny Storage\",\"item\":\"https://bunny.net/docs/storage/static-site-hosting/static-html\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://bunny.net/docs/storage/static-site-hosting/static-html#article\",\"headline\":\"Deploy a static HTML site to Bunny Storage\",\"name\":\"Deploy a static HTML site to Bunny Storage\",\"description\":\"Serve plain HTML, CSS, and JavaScript from Bunny Storage through Bunny CDN, with the Bunny CLI or by hand.\",\"url\":\"https://bunny.net/docs/storage/static-site-hosting/static-html\",\"mainEntityOfPage\":{\"@id\":\"https://bunny.net/docs/storage/static-site-hosting/static-html#webpage\"},\"dateModified\":\"2026-10-15T10:00:15.000Z\",\"publisher\":{\"@id\":\"https://bunny.net/#organization\"},\"isPartOf\":{\"@id\":\"https://bunny.net/docs#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"bunny.net Documentation\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"bunny.net Documentation","nav":{"global":null,"products":[{"product":"Home","icon":"book-open","pages":[{"title":"Home","href":""}]},{"product":"CDN","icon":"zap","description":"Accelerate and protect your content globally","pages":[{"title":"CDN","href":"/cdn"}]},{"product":"Magic Containers","icon":"box","description":"Deploy any app anywhere with Docker","pages":[{"title":"Magic Containers","href":"/magic-containers"}]},{"product":"Edge Scripting","icon":"code","description":"Deploy serverless code at the edge","pages":[{"title":"Edge Scripting","href":"/scripting"}]},{"product":"Stream","icon":"video","description":"Video streaming and delivery platform","pages":[{"title":"Stream","href":"/stream"}]},{"product":"Storage","icon":"hard-drive","description":"Global object storage","tabs":[{"tab":"Documentation","groups":[{"group":"Documentation","pages":[{"title":"Bunny Storage","sidebarTitle":"Introduction","mode":"wide","href":"/storage"},{"title":"Quickstart","href":"/storage/quickstart"},{"title":"Pricing","href":"/storage/pricing"},{"title":"Bunny Storage Changelog","sidebarTitle":"Changelog","url":"/changelog?tags=Storage","href":"/storage/changelog"}]},{"group":"Features","pages":[{"title":"Storage Tiers","href":"/storage/storage-tiers"},{"title":"Replication","href":"/storage/replication"}]},{"group":"Manage Files \u0026 Objects","pages":[{"title":"Dashboard","href":"/storage/dashboard"},{"title":"HTTP","href":"/storage/http"},{"title":"S3","tag":"Public preview","href":"/storage/s3"},{"title":"FTP Access","href":"/storage/ftp"},{"group":"SDKs","pages":[{"title":"TypeScript SDK","sidebarTitle":"TypeScript","href":"/storage/typescript-sdk"},{"title":"PHP SDK","sidebarTitle":"PHP","href":"/storage/php-sdk"},{"title":".NET SDK","sidebarTitle":".NET","href":"/storage/dotnet-sdk"},{"title":"Java SDK","sidebarTitle":"Java","href":"/storage/java-sdk"}]}]},{"group":"Guides","pages":[{"group":"Static Site Hosting","pages":[{"title":"Host a static site on Bunny Storage","sidebarTitle":"Overview","href":"/storage/static-site-hosting/index"},{"group":"JavaScript Frameworks","pages":[{"title":"Deploy Analog to Bunny Storage","sidebarTitle":"Analog","href":"/storage/static-site-hosting/analog"},{"title":"Deploy Angular to Bunny Storage","sidebarTitle":"Angular","href":"/storage/static-site-hosting/angular"},{"title":"Deploy Astro to Bunny Storage","sidebarTitle":"Astro","href":"/storage/static-site-hosting/astro"},{"title":"Deploy Brunch to Bunny Storage","sidebarTitle":"Brunch","href":"/storage/static-site-hosting/brunch"},{"title":"Deploy Ember to Bunny Storage","sidebarTitle":"Ember","href":"/storage/static-site-hosting/ember"},{"title":"Deploy Next.js to Bunny Storage","sidebarTitle":"Next.js","href":"/storage/static-site-hosting/nextjs"},{"title":"Deploy Nuxt to Bunny Storage","sidebarTitle":"Nuxt","href":"/storage/static-site-hosting/nuxt"},{"title":"Deploy Preact to Bunny Storage","sidebarTitle":"Preact","href":"/storage/static-site-hosting/preact"},{"title":"Deploy Qwik to Bunny Storage","sidebarTitle":"Qwik","href":"/storage/static-site-hosting/qwik"},{"title":"Deploy React to Bunny Storage","sidebarTitle":"React","href":"/storage/static-site-hosting/react"},{"title":"Deploy React Router to Bunny Storage","sidebarTitle":"React Router","href":"/storage/static-site-hosting/react-router"},{"title":"Deploy SolidStart to Bunny Storage","sidebarTitle":"SolidStart","href":"/storage/static-site-hosting/solidstart"},{"title":"Deploy SvelteKit to Bunny Storage","sidebarTitle":"SvelteKit","href":"/storage/static-site-hosting/sveltekit"},{"title":"Deploy Vite to Bunny Storage","sidebarTitle":"Vite","href":"/storage/static-site-hosting/vite"},{"title":"Deploy Vue to Bunny Storage","sidebarTitle":"Vue","href":"/storage/static-site-hosting/vue"}]},{"group":"Static Site Generators","pages":[{"title":"Deploy Elder.js to Bunny Storage","sidebarTitle":"Elder.js","href":"/storage/static-site-hosting/elderjs"},{"title":"Deploy Eleventy to Bunny Storage","sidebarTitle":"Eleventy","href":"/storage/static-site-hosting/eleventy"},{"title":"Deploy Gatsby to Bunny Storage","sidebarTitle":"Gatsby","href":"/storage/static-site-hosting/gatsby"},{"title":"Deploy Gridsome to Bunny Storage","sidebarTitle":"Gridsome","href":"/storage/static-site-hosting/gridsome"},{"title":"Deploy Hexo to Bunny Storage","sidebarTitle":"Hexo","href":"/storage/static-site-hosting/hexo"},{"title":"Deploy Hugo to Bunny Storage","sidebarTitle":"Hugo","href":"/storage/static-site-hosting/hugo"},{"title":"Deploy Jekyll to Bunny Storage","sidebarTitle":"Jekyll","href":"/storage/static-site-hosting/jekyll"},{"title":"Deploy Pelican to Bunny Storage","sidebarTitle":"Pelican","href":"/storage/static-site-hosting/pelican"},{"title":"Deploy Zola to Bunny Storage","sidebarTitle":"Zola","href":"/storage/static-site-hosting/zola"}]},{"group":"Documentation","pages":[{"title":"Deploy Docusaurus to Bunny Storage","sidebarTitle":"Docusaurus","href":"/storage/static-site-hosting/docusaurus"},{"title":"Deploy MkDocs to Bunny Storage","sidebarTitle":"MkDocs","href":"/storage/static-site-hosting/mkdocs"},{"title":"Deploy Sphinx to Bunny Storage","sidebarTitle":"Sphinx","href":"/storage/static-site-hosting/sphinx"},{"title":"Deploy VitePress to Bunny Storage","sidebarTitle":"VitePress","href":"/storage/static-site-hosting/vitepress"}]},{"group":"Other","pages":[{"title":"Deploy Blazor WebAssembly to Bunny Storage","sidebarTitle":"Blazor WebAssembly","description":"Build a Blazor WebAssembly site and serve it from Bunny Storage through Bunny CDN, with the Bunny CLI or by hand.","href":"/storage/static-site-hosting/blazor"},{"title":"Deploy a static HTML site to Bunny Storage","sidebarTitle":"Static HTML","href":"/storage/static-site-hosting/static-html"}]}]}]},{"group":"Reference","pages":[{"title":"Settings","description":"Configure storage zone settings including error handling and custom responses","href":"/storage/settings"},{"title":"Limits","href":"/storage/limits"},{"title":"Durability","href":"/storage/durability"},{"title":"API Reference","url":"/api-reference/storage","href":"/storage/api-reference"}]}]}]},{"product":"Shield","icon":"shield","description":"Stay protected and online no matter what","pages":[{"title":"Shield","href":"/shield"}]},{"product":"Optimizer","icon":"sparkles","description":"Automatic image and web optimization.","pages":[{"title":"Optimizer","href":"/optimizer"}]},{"product":"DNS","icon":"globe","description":"Unlock the true power of DNS with an ultra-fast scriptable platform","pages":[{"title":"DNS","href":"/dns"}]},{"product":"Database","icon":"database","description":"Serverless SQLite over HTTP","pages":[{"title":"Database","href":"/database"}]},{"product":"Integrations","icon":"puzzle","description":"Official and third-party plugins and integrations","pages":[{"title":"Integrations","href":"/integrations/wordpress"}]},{"product":"CLI","icon":"terminal","description":"Manage bunny.net from your terminal","pages":[{"title":"CLI","href":"/cli"}]},{"product":"API Reference","icon":"square-terminal","description":"Build \u0026 Integrate with the Platform API","pages":[{"title":"API Reference","href":"/api-reference"}]},{"product":"Partners","icon":"handshake","description":"Manage customers, pricing, and billing as a bunny.net partner","pages":[{"title":"Partners","href":"/partners"}]}]},"basePath":"","title":"Deploy a static HTML site to Bunny Storage - bunny.net Documentation","buildId":"dpl_4RHMRqtvdHvKgaEfTTjFqjzja3B6","deploymentId":"dpl_4RHMRqtvdHvKgaEfTTjFqjzja3B6","dynamics":[],"chunks":[]}