Docs · Get started
Install
Caelo runs in your own Google Cloud project or on your own Linux server. One installer, the same release images, and the cost shown before anything is billed.
Choose where it runs
| Option | What you get | Estimated cost | Status |
|---|---|---|---|
Google Cloud + Firebase Hosting (gcp-firebase) | Cloud Run for the admin and the API gateway, Cloud SQL Postgres, Firebase Hosting for the public site. No load balancer. | about $14 / month | available |
Google Cloud (gcp) | Cloud Run, Cloud SQL Postgres, Cloud Storage with Cloud CDN, a load balancer with a managed certificate, Cloud Armor in front of the gateway. | about $33 / month | available |
| Self-hosted | Docker Compose on one Linux server: Postgres, Caddy with automatic TLS, the admin and the gateway. | your server | available |
| AWS, Azure | The same architecture is planned. The installer currently answers "not yet implemented" for both. | - | planned |
The cloud figures are estimates from the installer's own price table: the smallest Cloud SQL tier (db-f1-micro), no high availability, services that scale to zero, europe-west1 list prices. They are a floor. Traffic, storage growth and your AI provider's bill come on top. The installer prints the table for your region and asks for a yes before it creates anything billable.
Firebase Hosting is the cheaper Google Cloud option because it needs no load balancer. The trade-off: no Cloud Armor in front of the API gateway. It relies on Caelo's own rate limits and Firebase's edge protection.
What all options share
- The admin and the gateway run prebuilt release images. You never build an image. The installer checks their cosign signatures before it uses them.
- The installer ends with a one-time setup link (valid 24 hours) where you create the owner account. The AI provider is chosen in the admin afterwards, not in the installer.
- Upgrades are verified, backed up first and health-checked, with automatic rollback. See Updates and maintenance.
- Every install has a live site, a staging site marked
noindex, and the admin on its own host.
What you need before you start
- A domain name for the site. With Google Cloud + Firebase Hosting you can start without touching DNS: the admin runs at its Cloud Run address, and you point the domain at Caelo when the site goes live. Google Cloud (
gcp) and self-hosted need the DNS records during the install, for the certificates. - An owner email. On Google Cloud this must be a Google account, because Google's Identity-Aware Proxy guards the admin.
- An API key from Anthropic, OpenAI or Google, or a local OpenAI-compatible endpoint. You enter it after the install.
- Google Cloud: a Google account that can create a project and link a billing account. With the Cloud Shell button you need nothing installed locally.
- Self-hosted: a Linux server with Docker and the Compose plugin, Bun and cosign, with ports 80 and 443 reachable.
The commands
# Google Cloud (pick one provider)
bunx @caelo-cms/provisioning@latest --provider gcp-firebase
bunx @caelo-cms/provisioning@latest --provider gcp
# Self-hosted
bunx @caelo-cms/provisioning@latest init --provider self-hosted \
--domain example.com --owner-email you@example.com
The npm package installs a binary called cms-provision. The same binary runs the maintenance commands later.
Guides
- Install on Google Cloud: both Google Cloud variants, the Cloud Shell button, DNS and troubleshooting.
- Self-hosted install: Docker Compose on your own server.
- Updates and maintenance: upgrade, backup, restore, secrets, status, removal.
- Hosting: the overview for deciding.
Something wrong or missing on this page? Open an issue on GitHub