Back

Blog details

Static Website Hosting on AIOZ Storage: Full Setup Guide

AIOZ Network
4 min readSeptember 25, 2026
aioz-storage
Laptop displaying code on screen in a workspace

Static website hosting on AIOZ Storage turns a regular bucket into a live, publicly reachable website, no separate hosting account, no server to manage, just a bucket with a folder of HTML, CSS, JS, images, and a couple of settings flipped on. It's a genuine, documented AIOZ Storage feature, not a workaround, and it comes with real custom-domain support, DNS verification records and all, not just a default subdomain. Here's the full setup, start to finish.

TL;DR:

  • Enable static website hosting on any bucket, set an Index Document (defaults to index.html), and configure error handling, either AIOZ's default error page or a custom document with optional per-status pages.
  • The site goes live at https://.sites.aiozstorage.app immediately, bucket names can't contain dots, that breaks SSL certificate matching.
  • A custom domain gets verified with two DNS records, a CNAME for ownership and an A record for resolution, both added at your DNS provider, then confirmed with a second "Verify" click.
  • Cloudflare users need to set the domain's proxy status to "DNS Only" (grey cloud), a proxied (orange cloud) record blocks AIOZ from detecting the verification records.

Step 1: Create the Bucket

Sign into AIOZ Storage, go to the Buckets tab, and click New Bucket. If you already know you're hosting a specific domain, naming the bucket after it (example-com rather than example.com, since bucket names can't contain dots) keeps things organized, but it isn't required. Save the bucket passphrase somewhere secure the moment it's generated: AIOZ doesn't store bucket passphrases, so losing it means losing access to the bucket, not a recoverable password reset.

Step 2: Turn On Static Website Hosting

Open the bucket, enter its passphrase, and enable Static Website hosting from the bucket's settings. Two things need deciding here:

  • Index Document, the file served when someone requests a directory rather than a specific file, defaults to index.html but can be renamed if your build outputs something else.
  • Error handling, either AIOZ's default error page, or a custom error document you provide, with the option to add specific pages per HTTP status code (400, 401, 500, and so on) rather than one generic fallback for everything.

If the site is a single-page application with client-side routing, the practical move is to serve the Index Document on deep links too, so the client router handles rendering, and reserve the Error Document for genuine 404s, requests that don't correspond to any route your app defines at all.

Step 3: Upload the Site and Check the Default URL

Upload the built site, HTML, CSS, JS, images, whatever the build produces, into the bucket the same way any other object goes in. Once static hosting is enabled, the site is reachable immediately at:

https://<bucket>.sites.aiozstorage.app

That subdomain works out of the box with no DNS configuration needed, useful for checking the site actually renders correctly before pointing a real domain at it.

Step 4: Connect a Custom Domain

From the website's settings, open Custom Domain, enter the domain you want to use (www.yourdomain.com, for example), and click Verify. AIOZ generates two DNS records to add at your domain's DNS provider:

  • A CNAME record, proving ownership of the domain
  • An A record, handling actual DNS resolution to AIOZ's hosting

Add both records, then go back and click Verify again. AIOZ checks for the records and, once found, the domain's status changes to Verified and then Active.

The one gotcha worth knowing before you start: if the domain is on Cloudflare, its proxy status needs to be set to DNS Only (the grey cloud icon), not the default proxied mode (orange cloud). A proxied record hides the actual DNS records behind Cloudflare's own IPs, which blocks AIOZ from detecting the verification records at all, verification will silently fail to progress until the proxy is turned off for that record.

What This Is Good For

This isn't a general-purpose web host, there's no server-side code execution, no database, just static files served from a bucket. That's exactly the right fit for a marketing site, a documentation site, a single-page app that calls external APIs from the client, or a landing page, anything where the "backend" is really just static assets and maybe some client-side JavaScript. For anything that needs actual server-side logic, this bucket can still serve as the static frontend while an API lives somewhere else entirely.

Frequently Asked Questions

How do I host a static website on AIOZ Storage?
Create a bucket, enable Static Website hosting in its settings, set an Index Document and error handling, then upload your site's files. It's live immediately at https://.sites.aiozstorage.app.

Can I use a custom domain with AIOZ Storage static hosting?
Yes. Open Custom Domain in the website's settings, enter your domain, and verify it with a CNAME record (ownership) and an A record (resolution) added at your DNS provider.

Why can't my bucket name contain dots?
SSL certificates for the default *.sites.aiozstorage.app subdomain can't correctly match a bucket name containing dots, so bucket names are restricted to avoid that conflict.

Why isn't my Cloudflare-hosted domain verifying?
Cloudflare's default proxied mode (orange cloud) hides your actual DNS records behind Cloudflare's own IPs, which blocks AIOZ from detecting the verification records. Switch the record to DNS Only (grey cloud) before verifying.

Does static website hosting support single-page applications?
Yes, with one adjustment: serve the Index Document on deep links as well so your client-side router can render the page, and reserve the Error Document for requests that genuinely don't match any route.

What can't this feature do?
There's no server-side code execution or database, only static file serving. Anything needing real backend logic needs to live elsewhere, with this bucket serving the static frontend.

References

We only send updates when meaningful changes ship, and you can unsubscribe anytime

Related Content

blog thumbnail

How to Create a Bucket and Upload a File on AIOZ Storage

Create a bucket and upload a file on AIOZ Storage in five steps: sign up, set a passphrase, add credits, and upload. Plus what the passphrase cannot recover.

aioz-storage
5 min readOctober 20, 2026
blog thumbnail

AIOZ Storage Rate Limit: Working Within 100 Requests/s

The AIOZ Storage rate limit is 100 requests per second. See what the docs do and don't say, and how to stay under it with boto3 retries and a limiter.

aioz-storage
7 min readOctober 16, 2026
blog thumbnail

What AIOZ Storage Erasure Coding Covers and What It Doesn't

AIOZ Storage erasure coding splits each object into pieces on DePIN nodes, so it survives node loss. See what it covers, what it doesn't, and what to back up.

aioz-storage
6 min readOctober 14, 2026
blog thumbnail

How to Rename a File in an S3 Bucket on AIOZ Storage

Rename a file in an S3 bucket on AIOZ Storage from the dashboard, then move, delete and download files, and see which actions the docs say are not supported.

aioz-storage
5 min readOctober 13, 2026
blog thumbnail

AIOZ Storage llms.txt: Docs Built for Super Intelligence

AIOZ Storage publishes llms.txt, a 46-link docs index, and llms-full.txt, all docs in one 164 KB file. See what each file contains and when to use which.

aioz-storage
6 min readOctober 09, 2026
blog thumbnail

Vector Database vs Agent Memory on AIOZ Storage: A Guide

Vector database vs agent memory on AIOZ Storage: use the vector database for control over embeddings and metadata, Memory for simple Record and Recall calls.

aioz-storage
6 min readOctober 06, 2026