[{"data":1,"prerenderedAt":435},["ShallowReactive",2],{"docs:\u002Fdocs\u002Fdeploy":3,"docs:navigation":313,"docs:surround:\u002Fdocs\u002Fdeploy":430},{"id":4,"title":5,"body":6,"description":304,"extension":305,"meta":306,"navigation":307,"navigationTitle":308,"path":309,"seo":310,"stem":311,"__hash__":312},"docs\u002Fdocs\u002F4.deploy.md","Deploy to Cloudflare",{"type":7,"value":8,"toc":299},"minimark",[9,13,43,48,188,207,211,223,234,238,292,295],[10,11,12],"p",{},"Pro apps run on Cloudflare Workers:",[14,15,16,24,30,36],"ul",{},[17,18,19,23],"li",{},[20,21,22],"strong",{},"D1"," stores users, workspaces, agents, automations, runs and your models.",[17,25,26,29],{},[20,27,28],{},"R2"," stores profile images and workspace logos.",[17,31,32,35],{},[20,33,34],{},"Durable Objects"," run agents and automations, so runs survive restarts and wait for approvals.",[17,37,38,39,42],{},"A ",[20,40,41],{},"cron trigger"," runs maintenance every five minutes: it recovers stalled schedules and runs,\nand applies retention.",[44,45,47],"h2",{"id":46},"nuxt","Nuxt",[49,50,51,108,170],"ol",{},[17,52,53,54,58,59],{},"Create the database and bucket, then put the database ID in ",[55,56,57],"code",{},"wrangler.jsonc",":",[60,61,66],"pre",{"className":62,"code":63,"language":64,"meta":65,"style":65},"language-bash shiki shiki-themes github-dark-default","pnpm wrangler d1 create nuxt-agentic-starter\npnpm wrangler r2 bucket create nuxt-agentic-starter-images\n","bash","",[55,67,68,90],{"__ignoreMap":65},[69,70,73,77,81,84,87],"span",{"class":71,"line":72},"line",1,[69,74,76],{"class":75},"sQhOw","pnpm",[69,78,80],{"class":79},"s9uIt"," wrangler",[69,82,83],{"class":79}," d1",[69,85,86],{"class":79}," create",[69,88,89],{"class":79}," nuxt-agentic-starter\n",[69,91,93,95,97,100,103,105],{"class":71,"line":92},2,[69,94,76],{"class":75},[69,96,80],{"class":79},[69,98,99],{"class":79}," r2",[69,101,102],{"class":79}," bucket",[69,104,86],{"class":79},[69,106,107],{"class":79}," nuxt-agentic-starter-images\n",[17,109,110,111],{},"Apply migrations and set secrets:",[60,112,114],{"className":62,"code":113,"language":64,"meta":65,"style":65},"pnpm db:migrate:remote\npnpm wrangler secret put BETTER_AUTH_SECRET\npnpm wrangler secret put AGENTIC_ENCRYPTION_KEY\npnpm wrangler secret put ANTHROPIC_API_KEY   # and any other provider keys\n",[55,115,116,123,138,152],{"__ignoreMap":65},[69,117,118,120],{"class":71,"line":72},[69,119,76],{"class":75},[69,121,122],{"class":79}," db:migrate:remote\n",[69,124,125,127,129,132,135],{"class":71,"line":92},[69,126,76],{"class":75},[69,128,80],{"class":79},[69,130,131],{"class":79}," secret",[69,133,134],{"class":79}," put",[69,136,137],{"class":79}," BETTER_AUTH_SECRET\n",[69,139,141,143,145,147,149],{"class":71,"line":140},3,[69,142,76],{"class":75},[69,144,80],{"class":79},[69,146,131],{"class":79},[69,148,134],{"class":79},[69,150,151],{"class":79}," AGENTIC_ENCRYPTION_KEY\n",[69,153,155,157,159,161,163,166],{"class":71,"line":154},4,[69,156,76],{"class":75},[69,158,80],{"class":79},[69,160,131],{"class":79},[69,162,134],{"class":79},[69,164,165],{"class":79}," ANTHROPIC_API_KEY",[69,167,169],{"class":168},"sH3jZ","   # and any other provider keys\n",[17,171,172,173],{},"Build and deploy:",[60,174,176],{"className":62,"code":175,"language":64,"meta":65,"style":65},"pnpm run deploy\n",[55,177,178],{"__ignoreMap":65},[69,179,180,182,185],{"class":71,"line":72},[69,181,76],{"class":75},[69,183,184],{"class":79}," run",[69,186,187],{"class":79}," deploy\n",[10,189,190,191,194,195,198,199,202,203,206],{},"The build adds Agentic Durable Objects, their migration, and the maintenance cron to ",[55,192,193],{},".output","'s\nWrangler config. Set ",[55,196,197],{},"BETTER_AUTH_URL"," to your production URL. To change the maintenance schedule,\nset ",[55,200,201],{},"agentic.cron",", for example ",[55,204,205],{},"agentic: { cron: '*\u002F5 * * * *' }",".",[44,208,210],{"id":209},"void","Void",[60,212,213],{"className":62,"code":175,"language":64,"meta":65,"style":65},[55,214,215],{"__ignoreMap":65},[69,216,217,219,221],{"class":71,"line":72},[69,218,76],{"class":75},[69,220,184],{"class":79},[69,222,187],{"class":79},[10,224,225,226,229,230,233],{},"Void provisions D1, R2, Durable Objects and the maintenance cron, and creates\n",[55,227,228],{},"BETTER_AUTH_SECRET"," on first deploy. Set ",[55,231,232],{},"AGENTIC_ENCRYPTION_KEY"," and provider keys as secrets.",[44,235,237],{"id":236},"production-checklist","Production checklist",[14,239,240,250,259,267,278,285],{},[17,241,242,243,245,246,249],{},"Generate ",[55,244,232],{}," once (",[55,247,248],{},"pnpm exec agentic keygen"," writes one for development)\nand keep it safe. A new key makes stored integration credentials unreadable.",[17,251,252,253,255,256,258],{},"Use a different ",[55,254,228],{}," and ",[55,257,232],{}," from development.",[17,260,261,262,206],{},"Register OAuth apps with your production callback URLs. See\n",[263,264,266],"a",{"href":265},"\u002Fdocs\u002Fguides\u002Fintegrations","Integrations",[17,268,269,270,273,274,277],{},"Allow outbound origins: ",[55,271,272],{},"AGENTIC_WEBHOOK_ORIGINS"," for webhook outcomes and\n",[55,275,276],{},"AGENTIC_MCP_ORIGINS"," for MCP servers.",[17,279,280,281,206],{},"Choose retention. See ",[263,282,284],{"href":283},"\u002Fdocs\u002Freference\u002Fconfiguration#environment-variables","Configuration",[17,286,287,288,291],{},"Run ",[55,289,290],{},"pnpm exec agentic doctor"," before the first deploy.",[10,293,294],{},"Migrations are yours: review each generated migration before you apply it to production, and\napply it before deploying code that needs it.",[296,297,298],"style",{},"html pre.shiki code .sQhOw, html code.shiki .sQhOw{--shiki-default:#FFA657}html pre.shiki code .s9uIt, html code.shiki .s9uIt{--shiki-default:#A5D6FF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html pre.shiki code .sH3jZ, html code.shiki .sH3jZ{--shiki-default:#8B949E}",{"title":65,"searchDepth":92,"depth":92,"links":300},[301,302,303],{"id":46,"depth":92,"text":47},{"id":209,"depth":92,"text":210},{"id":236,"depth":92,"text":237},"Ship a Pro app to Cloudflare Workers with D1, R2, Durable Objects and a maintenance cron.","md",{},true,null,"\u002Fdocs\u002Fdeploy",{"title":5,"description":304},"docs\u002F4.deploy","bt9OtuGzk3fMBinGFeXh_01ywt7PbGvWk6OH-WYXGmE",[314],{"title":315,"path":316,"stem":317,"children":318,"navigationTitle":308},"Introduction","\u002Fdocs","docs\u002F0.index",[319,320,338,342,393,394,398,426],{"title":315,"path":316,"stem":317,"navigationTitle":308},{"title":321,"path":322,"stem":323,"children":324,"page":337},"Getting Started","\u002Fdocs\u002Fgetting-started","docs\u002F1.getting-started",[325,329,333],{"title":326,"path":327,"stem":328,"navigationTitle":308},"Free module","\u002Fdocs\u002Fgetting-started\u002Ffree","docs\u002F1.getting-started\u002F1.free",{"title":330,"path":331,"stem":332,"navigationTitle":308},"Pro on Nuxt","\u002Fdocs\u002Fgetting-started\u002Fnuxt","docs\u002F1.getting-started\u002F2.nuxt",{"title":334,"path":335,"stem":336,"navigationTitle":308},"Pro on Void","\u002Fdocs\u002Fgetting-started\u002Fvoid","docs\u002F1.getting-started\u002F3.void",false,{"title":339,"path":340,"stem":341,"navigationTitle":308},"Concepts","\u002Fdocs\u002Fconcepts","docs\u002F2.concepts",{"title":343,"path":344,"stem":345,"children":346,"page":337},"Guides","\u002Fdocs\u002Fguides","docs\u002F3.guides",[347,351,355,359,363,367,371,375,379,381,385,389],{"title":348,"path":349,"stem":350,"navigationTitle":308},"Agents","\u002Fdocs\u002Fguides\u002Fagents","docs\u002F3.guides\u002F1.agents",{"title":352,"path":353,"stem":354,"navigationTitle":308},"Events","\u002Fdocs\u002Fguides\u002Fevents","docs\u002F3.guides\u002F10.events",{"title":356,"path":357,"stem":358,"navigationTitle":308},"Features","\u002Fdocs\u002Fguides\u002Ffeatures","docs\u002F3.guides\u002F11.features",{"title":360,"path":361,"stem":362,"navigationTitle":308},"Coding agents","\u002Fdocs\u002Fguides\u002Fcoding-agents","docs\u002F3.guides\u002F12.coding-agents",{"title":364,"path":365,"stem":366,"navigationTitle":308},"Tools","\u002Fdocs\u002Fguides\u002Ftools","docs\u002F3.guides\u002F2.tools",{"title":368,"path":369,"stem":370,"navigationTitle":308},"Automations","\u002Fdocs\u002Fguides\u002Fautomations","docs\u002F3.guides\u002F3.automations",{"title":372,"path":373,"stem":374,"navigationTitle":308},"Agentic Models","\u002Fdocs\u002Fguides\u002Fagentic-models","docs\u002F3.guides\u002F4.agentic-models",{"title":376,"path":377,"stem":378,"navigationTitle":308},"Outcomes","\u002Fdocs\u002Fguides\u002Foutcomes","docs\u002F3.guides\u002F5.outcomes",{"title":266,"path":265,"stem":380,"navigationTitle":308},"docs\u002F3.guides\u002F6.integrations",{"title":382,"path":383,"stem":384,"navigationTitle":308},"Prompt","\u002Fdocs\u002Fguides\u002Fprompt","docs\u002F3.guides\u002F7.prompt",{"title":386,"path":387,"stem":388,"navigationTitle":308},"Server logic","\u002Fdocs\u002Fguides\u002Fserver-logic","docs\u002F3.guides\u002F8.server-logic",{"title":390,"path":391,"stem":392,"navigationTitle":308},"Dashboard UI","\u002Fdocs\u002Fguides\u002Fui","docs\u002F3.guides\u002F9.ui",{"title":5,"path":309,"stem":311,"navigationTitle":308},{"title":395,"path":396,"stem":397,"navigationTitle":308},"Upgrading","\u002Fdocs\u002Fupgrade","docs\u002F5.upgrade",{"title":399,"path":400,"stem":401,"children":402,"page":337},"Reference","\u002Fdocs\u002Freference","docs\u002F6.reference",[403,406,410,414,418,422],{"title":284,"path":404,"stem":405,"navigationTitle":308},"\u002Fdocs\u002Freference\u002Fconfiguration","docs\u002F6.reference\u002F1.configuration",{"title":407,"path":408,"stem":409,"navigationTitle":308},"Composables","\u002Fdocs\u002Freference\u002Fcomposables","docs\u002F6.reference\u002F2.composables",{"title":411,"path":412,"stem":413,"navigationTitle":308},"Server utilities","\u002Fdocs\u002Freference\u002Fserver-utils","docs\u002F6.reference\u002F3.server-utils",{"title":415,"path":416,"stem":417,"navigationTitle":308},"Services","\u002Fdocs\u002Freference\u002Fservices","docs\u002F6.reference\u002F4.services",{"title":419,"path":420,"stem":421,"navigationTitle":308},"REST API","\u002Fdocs\u002Freference\u002Frest-api","docs\u002F6.reference\u002F5.rest-api",{"title":423,"path":424,"stem":425,"navigationTitle":308},"CLI","\u002Fdocs\u002Freference\u002Fcli","docs\u002F6.reference\u002F6.cli",{"title":427,"path":428,"stem":429,"navigationTitle":308},"Licensing & FAQ","\u002Fdocs\u002Flicensing","docs\u002F8.licensing",[431,433],{"title":390,"path":391,"stem":392,"description":432,"children":-1},"Brand the dashboard, override any page and add your own pages, navigation and settings.",{"title":395,"path":396,"stem":397,"description":434,"children":-1},"Update to a new release or move from the free module to Pro.",1792672479669]