Skip to content

Deploy to Cloudflare

Prerequisites

  • Wrangler CLI installed
  • A Cloudflare account (free tier works)
  • Logged in: npx wrangler login

Deploy

Terminal window
npx wrangler deploy

Your agent goes live at https://<name>.<subdomain>.workers.dev.

Set secrets

Never put API keys in wrangler.toml. Use secrets instead:

Terminal window
npx wrangler secret put GROQ_API_KEY
npx wrangler secret put GOOGLE_AI_KEY
npx wrangler secret put CEREBRAS_API_KEY

For local dev, use .dev.vars (gitignored):

.dev.vars
GROQ_API_KEY=gsk_...

Provision KV

Terminal window
# Create namespace
npx wrangler kv namespace create SESSIONS
# Add the returned ID to wrangler.toml
[[kv_namespaces]]
binding = "SESSIONS"
id = "abc123..."

Provision D1

Terminal window
npx wrangler d1 create my-agent-db
npx wrangler d1 execute my-agent-db \
--file=node_modules/@moon-wave/memory/migrations/001_init.sql
[[d1_databases]]
binding = "DB"
database_name = "my-agent-db"
database_id = "abc123..."

Custom domain

In Cloudflare Dashboard → Workers → your worker → Settings → Domains & Routes → Add custom domain.

CI/CD

Add to .github/workflows/deploy.yml:

- name: Deploy
run: npx wrangler deploy
env:
CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }}
CLOUDFLARE_ACCOUNT_ID: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}