Scaffold defaults
npm create shadow-app writes a Dusk app that already follows this page, so the first deploy starts from the safe side.
npm create shadow-app writes a Dusk app that already follows this page, so the first deploy starts from the safe side.
src/entry-server.tspinsallowedHoststo the host ofAPP_URLin production, sends HSTS on https, and turns on a strictcspwith a nonce per request in production only (the dev server injects inline scripts). With the Clerk add-on the policy starts asreportOnly, because Clerk loads scripts and frames from the frontend API host of your key: add that host toscript-src,connect-src,img-srcandframe-src, then removereportOnly..gitignoreignores.env, every.env.*variant (so.env.productionis never committed),*.pem,*.keyand the.duskfolder..env.exampleand.env.publicstay tracked: the first holds placeholders and a comment that real values go in.env.local, the second holds names that the browser may read.- The Convex sample (
convex/tasks.ts) bounds the title to 200 characters, and with Clerk it refuses a signed-out caller inside the function, because a Convex function is a public endpoint whatever the page does. - A Dockerfile built from Deploy needs a
.dockerignorethat excludes.env*,.gitandnode_modules, and runs as thenodeuser.