Get started
You need a Mac or a Linux machine, Docker Desktop running, and a free Cloudflare login the first time it starts — that's the list. Nothing to sign up for beyond that, no keys to paste. Pick whichever of the three paths below suits you; they all end in your browser, signed in as the owner of a demo organisation.
Three ways in
Run one script, ask your coding agent, or do each step yourself. Same result, your choice of company.
One command
The installer clones, detaches the kit's history so the copy is yours from the first commit, and runs the bootstrap — one line per step, then your browser opens signed in. Read it first — it is short.
curl -fsSL https://rocketflare.dev/install.sh | bash -s -- myapp1/9 toolchain2/9 install3/9 secrets4/9 database5/9 migrate6/9 seed7/9 cloudflare8/9 cli9/9 runready http://localhost:3000/login?as=owner%40example.test Or clone it yourself
The same thing in three commands, if you would rather see each one. The second is what
makes the copy yours: the kit is a template, not an upstream, so its history goes and
yours starts at commit one. Re-running the bootstrap after a fix is always safe
(pnpm bootstrap once dependencies exist).
git clone --depth 1 https://github.com/rocketflare-dev/rocketflare.git myapp && cd myapprm -rf .git && git init -q && git add -A && git commit -qm "Start from Rocketflare"bash scripts/bootstrap.sh --offline | No Cloudflare account: turns the Workers AI binding off in both wrangler files. Chat, agents and embeddings then need a key or a tenant provider. |
|---|---|
--no-demo | Seed the organisation and accounts, but no demo data. |
--no-dev | Stop after step 7 and print the commands to run next. |
--check | Read-only preflight (the same as pnpm preflight): toolchain, secrets, database, Cloudflare, dev status. |
Ask your agent
1 Install Claude Code, clone the repository and open the folder in it.
git clone --depth 1 https://github.com/rocketflare-dev/rocketflare.git myapp && cd myapprm -rf .git && git init -q && git add -A && git commit -qm "Start from Rocketflare"claude 2 Type /setup — or just ask it to set the project up. The skill runs
the same script as the other two paths and narrates it.
- You
/setup
- Claude Code
Running the first-run script and explaining each line as it lands. It will fix anything missing — Docker, Node 24, pnpm — and ask whether to log in to Cloudflare or stay offline.
- Checked Node 24, pnpm and Docker, and installed what was missing
- Installed the dependencies
- Wrote the local secrets file with a fresh encryption key
- Started Postgres in Docker
- Created the database schema
- Seeded a demo organisation with people, documents and activity
- Checked the free Cloudflare login the built-in AI needs (or turned that off with --offline)
- Signed the command-line tool in
- Started the app on :3000 and the API on :3001
- Claude Code
Opened http://localhost:3000. You're signed in as Olivia Bennett, owner of Acme Logistics. Try Chat, Agents, Knowledge or Analytics.
Then /adapt <slug> "Your App" renames everything — package names, the Worker, the
database, the command-line tool, the theme — and /provision deploys
it (below).
By hand
The bootstrap, unrolled. This is SETUP.md Part 1; every step ends in the line that proves it worked, and the next step waits until you have seen it.
git clone --depth 1 https://github.com/rocketflare-dev/rocketflare.git myapp && cd myapprm -rf .git && git init -q && git add -A && git commit -qm "Start from Rocketflare" - Install
corepack enable && pnpm install
Verify: pnpm -v prints 10.x and the install exits 0. - Local secrets
cp apps/web/.dev.vars.example apps/web/.dev.varsopenssl rand -hex 32
Paste the random value as OAUTH_ENCRYPTION_KEY in apps/web/.dev.vars. Leave every optional key blank.
Verify: The OAUTH_ENCRYPTION_KEY line has a 64-character value. - Database
pnpm dev:db:up && pnpm db:migrate
Verify: It ends with the number of migrations applied and no error. - Demo data
pnpm seed --demo
Verify: It lists the seeded accounts (owner@example.test among them) and prints one API key. - Run it
pnpm dev
Verify: Both servers report ready and http://localhost:3000 shows the sign-in page. - Sign in
Open http://localhost:3000. Press the Owner quick-login button, or enter owner@example.test and open the magic link printed in the terminal (no email provider is configured, so links are logged, not sent).
Verify: You land on Home as Olivia Bennett, owner of Acme Logistics. - The command line
pnpm cli login --server http://localhost:3001pnpm cli whoami
Verify: whoami prints your email, the organisation and a key prefix. - Tests
pnpm test:db:up && pnpm test
Verify: Every project is green.
What just happened
Whichever path you took, this is now true on your machine.
- Postgres in Docker
One container on port 5432, with the vector extension for search.
- Schema migrated
Every table, with the row-level policies in place but not yet enforced.
- Demo organisation seeded
Acme Logistics: people with roles, documents, chats and a dashboard.
- App on :3000, API on :3001
The interface and the Worker, each reloading as you edit.
- You, signed in as the owner
Olivia Bennett (owner@example.test) — the dev quick-login, which does not exist when deployed.
Deploy it
Three accounts you create yourself, one domain, one command. The kit can create projects, databases and DNS records inside your accounts — it cannot create the accounts.
Before anything: three accounts
- 1 Cloudflare runs the app · Workers Paid — Hyperdrive and Workflows need it
Create the account and put it on Workers Paid. Then add the domain you want the app on — register it there, or move its DNS there — because the app’s hostnames and the email DNS records are created in that zone. No domain yet? Staging gets a workers.dev address and email is skipped.
Read by the kit as
CLOUDFLARE_API_TOKENCLOUDFLARE_ACCOUNT_ID— your account id is in the right-hand column of the Workers & Pages overview - 2 Neon hosts the Postgres database
Create the account. The free tier is enough for the two branches the kit makes.
Read by the kit as
NEON_API_KEY - 3 Resend sends the sign-in and invitation emails · optional — skip it with --skip-email and links are logged instead
Create the account. You will verify the same domain here; the free tier is enough.
Read by the kit as
RESEND_API_KEY
Then hand the tokens to the kit — once, in your own terminal
pnpm provision tokens asks for each token with hidden input, checks it against
the service, and writes apps/web/.provision.env (git-ignored, readable only by you).
Nothing is pasted into a chat. In CI, export the same variables instead — they take precedence.
pnpm provision tokensCLOUDFLARE_API_TOKEN paste (hidden) → checkedCLOUDFLARE_ACCOUNT_ID paste (hidden) → checkedNEON_API_KEY paste (hidden) → checkedRESEND_API_KEY paste (hidden) → checked - You
/provision
- Claude Code
Tokens found in apps/web/.provision.env. Running the phases in order — each one ends in a Verify: line I'll show you, and I stop at the first that fails:
- preflight — checks the tokens, the tools, the accounts, and that your domain is on Cloudflare
- email create — creates the sending domain on Resend and its DNS records on Cloudflare
- neon — creates the Neon project with a staging branch
- cloudflare — creates Hyperdrive, KV, the queue and the R2 bucket, and writes their ids into both wrangler files
- migrate — runs the migrations on each branch
- github — sets the GitHub environment secrets
- urls — sets the app URL and routes in each wrangler file
- deploy staging — deploys staging and checks it answers
- secrets — sets the Worker secrets, over stdin, never on disk
- email verify — verifies the domain and mints the sending key
- Claude Code
Verify: staging answers at its /api/health with status ok, and the sending domain is verified. Publish a GitHub release when you want production.
Without an agent, the same thing is pnpm provision all (add
--skip-email when there is no Resend account). It creates the
Neon project and its staging branch; Hyperdrive, KV, the queue and the R2 bucket; writes the
ids into both wrangler files; runs the migrations; sets the GitHub environment secrets;
deploys staging; sets the Worker secrets over stdin; and creates and verifies the Resend
domain with its DNS records on Cloudflare. The step-by-step manual path is
SETUP.md Part 3.
Honest notes
Four things that are true and worth knowing before you start.
Then make it yours
A fresh copy is still called Rocketflare in a few dozen places — package names, the Worker,
the database, the command-line tool, the theme colours, the email sender.
/adapt <slug> "Your App" renames the mechanical ones in one reviewable commit and walks
you through the handful that need a person. The same list, for doing it by hand, is
docs/ADAPTING.md.
After that, the kit is your app. The command-line tool speaks to it at
http://localhost:3001 while you develop and at your own host once deployed.