scaledbox documentation
scaledbox is a Go module a product builds its own SaaS platform from: its operator's CLI and server,
its customers' CLI, its dashboard and console, under its own name, on its own Hetzner and Cloudflare
accounts. You declare your servers in a cluster file and your services in scaledbox.toml; your
platform runs them, gives them databases, object storage and your own domains, and runs your customers'
apps within the limits you set.
These pages show a product named shop: its CLIs are shop-ops and shop, its variables SHOP_*,
its API https://api.shop.example, its own names under shop.example. Yours carry your brand's
names.
Start here
- Getting started: a product's repository, its brand and two CLIs, the cluster
file,
sync, a first deploy. - Your platform: its parts, the three modes (saas, single and static) and when to pick each, the two CLIs, how a deploy reaches your servers, upgrades.
- scaledbox.toml reference: every setting of your services' file.
Guides
- Deploying: services as boxes of your built modules, releases and their migrations, rollbacks, capacity, logs, secrets, environments and previews, database dumps.
- Deploying from CI: deploy tokens, building your modules, a GitHub Actions workflow.
- Domains: your product's own names, proven by DNS records, with HTTPS.
- Tenants: your customers' apps, the tenants API your backend drives them with, and the CLI your customers sign in to through your page.
- Develop locally: a service or a tenant's app on your machine as a deploy would run it, and the SDK your own tools drive it with.
- Spending: your tenants' prices, what is admitted and held at its edges.
- Status pages: your product's public status page at a name of its own.
- Limits: sizes, defaults and rate limits in one place.
- Acceptable use: a policy to show your customers, and how your platform handles abuse.
The API
Your CLIs, dashboard and console use your platform's API, and so can your product's backend and CI.
Its public API answers at your brand's address (https://api.shop.example), its OpenAPI document at
/openapi.yaml and a browsable reference at /docs. The operator's API and dashboard are private: your
operator's CLI reaches them through the control node, your browser through the access tunnel. Every
request carries a token: Authorization: Bearer sbx_....