FAQ
Compute is part of the unified Prisma CLI, published as prisma@latest. The quickest way to run it without installing anything is:
bunx prisma service showpnpm prisma service showyarn prisma service shownpx prisma service showRun your build, then deploy a Prisma Composer app with npx prisma deploy module.ts from your terminal or CI; deploy does not build for you. To deploy on every push, connect the GitHub repository and add the deploy workflow; see Deploy on push. You can also trigger a deploy from the Console.
What's the difference between a project and an app?
Section titled “What's the difference between a project and an app?”A project groups the resources for one product or codebase. An app is a single HTTP service inside a project's branch. The full hierarchy:
How Compute organizes resources and isolates branchesStep 1 of 3
Your first deploy creates the project, its default production branch, and the infrastructure that runs it: an app, a database, and its production-scoped variables.
A branch is an isolated environment for one line of work. It usually matches a Git branch name, but in Prisma it is a real resource that owns its own apps and databases. To learn more, see the Branching docs.
No, it links a project to a GitHub repository, lets that repository's GitHub Actions runs authenticate, and keeps platform branches in sync when Git branches are created or deleted. It does not deploy anything, on connect or on push. Deploys come from a workflow you add; see Deploy on push. To set the connection up, see the GitHub integration docs.
The platform does not handle pushes; your repository's workflow deploys them. Once you set up deploy on push, each push runs prisma/cloud-deploy-action, which builds and deploys to production or to an isolated preview named after the branch. Without that workflow, a push deploys nothing.
Why can't I read my environment variable values back?
Section titled “Why can't I read my environment variable values back?”Variable values are encrypted and never returned by any surface. project env list shows only the keys and their metadata, so keep your own copy of each value in a secret manager. To learn more, see Values are write-only.
Update the value, then redeploy production. To redeploy, run deploy again, push to your default branch if you have set up deploy on push, or promote a version, which rebuilds with production environment variables:
bunx prisma project env update DATABASE_URL=postgresql://new --role productionpnpm prisma project env update DATABASE_URL=postgresql://new --role productionyarn prisma project env update DATABASE_URL=postgresql://new --role productionnpx prisma project env update DATABASE_URL=postgresql://new --role productionNo. Variables resolve at deploy time, so you need to redeploy for the app to pick up a new value.
Use a service token and explicit targets:
PRISMA_SERVICE_TOKEN=... npx prisma service show \
--project my-app \
--service web \
--json \
--no-interactivePassing every target explicitly keeps the run self-contained. --json makes the result parseable, and --no-interactive turns any prompt into a structured error.
The current directory isn't linked to a project, and the CLI won't guess one from package or directory names. Create or link a project first with project create or project link, or name one directly on the command with --project.
Once the service has a running production version:
bunx prisma service domain add shop.acme.com --service web
bunx prisma service domain wait shop.acme.com --service webpnpm prisma service domain add shop.acme.com --service web
pnpm prisma service domain wait shop.acme.com --service webyarn prisma service domain add shop.acme.com --service web
yarn prisma service domain wait shop.acme.com --service webnpx prisma service domain add shop.acme.com --service web
npx prisma service domain wait shop.acme.com --service webAdd the CNAME record the command returns at your DNS provider. To learn more, see the Domains docs.
Add the CNAME record the command returns at your DNS provider. To learn more, see the Domains docs.
No. Custom domains are production-only, so they cannot be attached to preview branches.
Does Prisma clone my production database for previews?
Section titled “Does Prisma clone my production database for previews?”You should not assume it does. These docs cover app deployment and runtime configuration only, so pass database URLs through environment variables and manage data and migrations yourself.
No. Your app connects to a database through a connection string you set as an environment variable, such as DATABASE_URL. Running Prisma Postgres with Compute keeps your app next to your database.
Yes. Use it to inspect projects, branches, services, deployments, integrations, environment variable names, and domain status.
You can run apps for free: each month, the Free plan includes 1M requests, 360 GB-hours of provisioned memory, 4 active vCPU-hours, and 10 GB of outbound bandwidth, with no usage billing. Paid plans include from 5M to 100M requests a month, then bill $1 per million; provisioned memory, active CPU, and outbound bandwidth are billed per use. See Pricing for the rates, included usage by plan, worked examples, and what is not billed separately. For how those rates compare to Vercel's for the same workload, see Prisma Compute vs Vercel pricing.
Why does my service return 504 Gateway Time-out from openresty?
Section titled “Why does my service return 504 Gateway Time-out from openresty?”Your service took more than 60 seconds to start responding, so Compute's ingress answered the client and cancelled the request. Your service is not crashing. The cancellation happens outside it, so no timeout appears in your logs, though the Console does report the 504. Start responding within 60 seconds and move the rest of the work into the background or a queue. See Request timeout.
See Known limitations for what Compute can and can't do.