Docs · Get started

Quickstart

Five steps from nothing to a published site: install, open your setup link, choose your AI, describe what you want, then stage and publish.

Before you start

  • A domain name. For the live site you add a few DNS records for it. To try Caelo on Google Cloud with Firebase Hosting, you can skip DNS for now (see below).
  • Somewhere to run Caelo: a Google account that can create a Google Cloud project and link billing, or a Linux server with Docker. See Install for the options.
  • An API key from Anthropic, OpenAI or Google. A local OpenAI-compatible endpoint works too.

1. Install

The quickest way needs nothing but a browser: open the installer in Google Cloud Shell. It clones the installer for the current release (v0.10.51) and walks you through it step by step. Pick Firebase Hosting for the lowest cost.

Or run the same installer from your own terminal:

bunx @caelo-cms/provisioning@latest --provider gcp-firebase

The installer asks for your project, domain, owner email and region, shows the estimated monthly cost and asks once before anything is billed. Details: Install on Google Cloud.

On your own Linux server:

bunx @caelo-cms/provisioning@latest init --provider self-hosted \
  --domain example.com --owner-email you@example.com

Details: Self-hosted install.

Try it on Google Cloud without DNS

With Firebase Hosting (gcp-firebase) you do not have to touch DNS during the install. The installer asks for a domain: enter any valid name you plan to use. It does not check the domain and does not wait for DNS. At the end you get the admin on its Cloud Run address, behind Google's login, and the setup link. You can build pages with the AI right away. You only need DNS when the live site and the protected staging site should go on your domain. The gcp variant (load balancer) is different: it waits for DNS and the certificate during the install.

2. Open your setup link

The installer prints a one-time link to /setup on your admin host. It is valid for 24 hours. Set your owner password there.

On Google Cloud the admin sits behind Google's Identity-Aware Proxy, so open the link signed in with the Google account you gave as owner email. If you later forget your password, /forgot sends a reset link by email. Until an email service is set up under Settings, the link is written to the admin's server log instead.

3. Choose your AI

Pick Anthropic, OpenAI or Google, paste your key and choose a model. Caelo asks for this on first sign-in, at /welcome/ai. A local OpenAI-compatible endpoint works too; you set it up under Settings, AI. The key is stored encrypted in the database.

4. Start talking

Describe the site you want, or give the address of your current site and let Caelo move it. From here on the work happens in the chat, next to a live view of your pages. See Live edit and Migrate an existing site.

5. Stage, check, publish

The AI stages its work and runs the quality check. You look at staging and click Publish live.

Every stage runs the quality check, and staging is marked noindex. Publishing to the live site is always a click by a person. Neither Caelo's AI nor an external agent can do it. See Publishing.

Try it on your own machine

Developer setup. This is the setup contributors use to work on Caelo itself, not a production install. You need Bun 1.4.2, Docker Compose, Deno 2 and an AI key.

git clone https://github.com/caelo-cms/caelo-cms.git && cd caelo-cms
cp .env.example .env          # add your AI provider key
bun install
docker compose up -d
bun run db:migrate
bun run --filter @caelo-cms/admin seed:dev
bun run --filter @caelo-cms/admin dev    # admin at http://localhost:5173

It needs the ports 5432, 8081, 8082 and 5173. Careful: bun run test empties the databases named in .env.

Full install without a public domain. On a Linux machine with Docker and Bun, the self-hosted installer with --tls internal uses a local certificate instead of Let's Encrypt:

bunx @caelo-cms/provisioning@latest init --provider self-hosted \
  --domain example.test --owner-email you@example.com --tls internal

Your browser warns about the certificate until you trust Caddy's local root certificate. The names example.test, admin.example.test and staging.example.test must point to the machine, for example in /etc/hosts.

Next

Something wrong or missing on this page? Open an issue on GitHub