Triggering deploys
- Push to the production branch of a connected repository (default
main) — automatic. - CLI:
korve deploy [--repo owner/repo] [--ref <branch|tag|sha>]— queues and polls untilreadyorfailed, printing status transitions and the live URL. - API:
POST /v1/orgs/{orgId}/projects/{projectId}/deploys— see Deploys API. - MCP:
await korve.deploys.create({ orgId, projectId, body: { gitRef: "main" } }).
402 otherwise).
What the build expects from your code
Builds clone the ref, and if apackage.json exists run an npm install
(lockfile optional) followed by npm run build when one is defined. Then
the runtime classes diverge:
scale-to-zero
Your app ships as an edge isolate that handles requests. The build looks
for an entry module, in this order:
dist/index.jsdist/worker.jsbuild/index.jssrc/index.jsindex.jsworker.js
always-on
Your app ships as a dedicated instance behind the same managed hostname.
- If the repo has a
Dockerfile, it’s used as-is. - Otherwise the platform supplies a default Node 22 recipe: production npm
install, then
npm start.
$PORT (8080) — the platform
routes traffic there and injects the variable.
Build logs and diagnosis
korve deploys get <deploy-id> returns the deployment with its
accumulated build log; failed deploys keep the full tail. When a deploy
fails, the platform agent can diagnose it: