Quickstarts

Quickstart: Sites

Deploy a frontend (static or SSR) next to your database.

Sites hosts a Vite/Next/Astro/SvelteKit build over HTTPS with previews and rollback.

Variables used below: $HOSTBASE_TOKEN (access token), $REF (project ref). SDKs: @hostbase/management (TypeScript) and hostbase_management (Python); full reference at /docs/api.

1. Deploy a build

Point at a finished build directory or at your source code.

curl -X PUT https://host.ulewicz.space/api/v1/projects/$REF/sites/shop -H "Authorization: Bearer $HOSTBASE_TOKEN" -H "Content-Type: application/json" -d '{"framework":"vite"}'
# then POST .../sites/shop/deployments with {"mode":"dist","archive_base64":"..."}
await hb.saveSite({ ref, name: "shop", body: { framework: "vite" } as never });
await hb.deploySite({ ref, name: "shop", body: { mode: "dist", archive_base64 } as never });
hb.deploy_site(ref=ref, name="shop", body={"mode": "dist", "archive_base64": archive_b64})
hostbase sites deploy ./dist --site shop
hostbase sites deploy . --site shop --mode source

2. Variables and a domain

CNAME to <site>-<ref>.host.ulewicz.space; the certificate is automatic.

curl -X PUT https://host.ulewicz.space/api/v1/projects/$REF/sites/shop/env -H "Authorization: Bearer $HOSTBASE_TOKEN" -H "Content-Type: application/json" -d '{"env":{"VITE_API_URL":"https://abcdefghijklmnopqrst.host.ulewicz.space"}}'
curl -X POST https://host.ulewicz.space/api/v1/projects/$REF/sites/shop/domains -H "Authorization: Bearer $HOSTBASE_TOKEN" -H "Content-Type: application/json" -d '{"hostname":"www.example.com"}'
await hb.setSiteEnv({ ref, name: "shop", body: { env: { VITE_API_URL: "https://abcdefghijklmnopqrst.host.ulewicz.space" } } });
await hb.addSiteDomain({ ref, name: "shop", body: { hostname: "www.example.com" } });
hb.set_site_env(ref=ref, name="shop", body={"env": {"VITE_API_URL": "https://abcdefghijklmnopqrst.host.ulewicz.space"}})
hostbase sites env set shop VITE_API_URL=https://abcdefghijklmnopqrst.host.ulewicz.space
hostbase sites domains add shop www.example.com

3. Roll back

Promote any ready deployment without a rebuild.

curl -X POST https://host.ulewicz.space/api/v1/projects/$REF/sites/shop/deployments/d11/promote -H "Authorization: Bearer $HOSTBASE_TOKEN"
await hb.siteDeploymentAction({ ref, name: "shop", id: "d11", action: "promote" });
hb.site_deployment_action(ref=ref, name="shop", id="d11", action="promote")
hostbase sites rollback shop d11

Next: /docs/sites.