Deploy
The Workers + D1 configuration and the GitHub Actions workflow that applies migrations and deploys on push.
wrangler.toml:
name = "norns-demo"
main = ".svelte-kit/cloudflare/_worker.js"
compatibility_date = "2026-04-01"
compatibility_flags = ["nodejs_als", "nodejs_compat"]
routes = [
{ pattern = "norns-demo.humansynthesis.ai", custom_domain = true }
]
[assets]
directory = ".svelte-kit/cloudflare"
binding = "ASSETS"
[observability]
enabled = true
[[d1_databases]]
binding = "DB"
database_name = "norns-demo-notes"
database_id = "<output of wrangler d1 create>"
migrations_dir = "migrations/notes".github/workflows/deploy.yml runs on every push to main: bun install, bun run lint, bun run build, then wrangler d1 migrations apply norns-demo-notes --remote and wrangler deploy through cloudflare/wrangler-action. It needs two repository secrets, CLOUDFLARE_API_TOKEN (Workers Scripts: Edit and D1: Edit) and CLOUDFLARE_ACCOUNT_ID.
By hand, with a logged-in wrangler:
bun run db:migrate:remote
bun run deploy # bun run build && wrangler deployThe general recipe is on the Cloudflare Workers page.