Deploy a site from the portal
For quick, one-off deploys you don’t need an API key or the CLI: an admin can publish a site straight from the portal by dropping a file into a modal.
- Open the portal and make sure you’re logged in as an admin.
- Click + Add site in the toolbar.
- Drag a file onto the drop zone (or click to choose one). Accepted inputs:
- a single
.htmlfile (served asindex.html— it must be self-contained, i.e. inline its CSS/JS), or - a
.zipor.tar.gzarchive containing anindex.html.
- a single
- Fill in the slug (the subdomain) and, optionally, a group, title,
description, and tags. The modal previews the resulting host, e.g.
my-site.previews.example.com. - Click Deploy. The site goes live immediately at the shown URL.
How archives are handled
Section titled “How archives are handled”The archive format is detected from the file’s magic bytes, not its name. For a
zip, if every file lives under one common top-level directory — as happens
when you zip a folder (site/index.html, site/assets/…) — that wrapper
directory is stripped so index.html ends up at the site root.
The same safety limits as the ingest API apply: the upload, total extracted size, and entry count are all capped (see configuration), and archive entries that escape the target directory or are symlinks are rejected.
Things to know
Section titled “Things to know”- Overwrites are silent. Deploying to an existing group/slug replaces the live site. The modal warns you when the target already exists. With versioning enabled the previous version is retained and can be rolled back.
- Wildcard DNS/TLS is a prerequisite. A freshly deployed site only resolves
if your reverse proxy already serves
*.<base>. - You’re hosting arbitrary HTML/JS. Each site is its own origin (subdomain), which is the isolation boundary — keep deploys to content you trust.