Guides

Deploy apps

Import a repo, configure service types, and ship from git push to a live URL.

How deployment works

  1. Connect a GitHub repo to a Bytstack project.
  2. Configure service type, build/start commands, root directory, and env.
  3. Deploy — Bytstack clones, installs, builds, then publishes a container (web/worker/cron) or static assets.
  4. Release — traffic switches to the new deployment (rolling update for web).

Statuses: queuedcloningbuildingpublishingreleasinglive.

Service types

TypeUse forBuildRuntimePublic URL
WebAPIs, SSR (Next.js, Remix), Node serversOptionalContainer + ingressYes
StaticSPAs (Vite, CRA, Vue, Angular)RequiredCDN / object storageYes
WorkerBackground jobs, queue consumersOptionalContainer (no HTTP)No
CronScheduled tasksOptionalCronJobNo

Rule of thumb: client-side SPA with npm run buildStatic. Long-running Node HTTP process → Web.

Framework detection

On import, Bytstack reads the repo-root package.json and suggests defaults:

FrameworkTypeBuildStart / publish
Next.js, Nuxt, RemixWebnpm run buildnpm start
Express / Fastify / NestWeboptionalnpm start
Vite / CRA / Vue / Angular / Gatsby / Astro (static)Staticnpm run builddist, build, or public

For monorepos, set Root directory to the app folder (e.g. apps/web). Optionally set path filters so only relevant changes trigger deploys.

Supported Node majors: 18, 20, 22 (default 20, or clamped from engines.node).

Configuration checklist

SettingNotes
BranchDeployed on push when auto-deploy is on; default main
Root directorySubfolder with package.json
Build commandAfter install; required for static
Start commandWeb & worker containers (npm start, node dist/index.js, …)
Publish directoryStatic output folder

Web services must listen on 0.0.0.0 and the injected PORT. Prefer npm start / production servers over npm run dev in production.

Auto deploy

With the GitHub App installed, pushes to the configured branch trigger a new deployment. Disable auto-deploy on the service for manual releases only.

Rollback

Open Deployments, pick a previous successful version, and roll back. No rebuild — the prior artifact stays available.

Logs

  • Build logs — install/compile output for the deploy
  • Runtime logs — live tail from web/worker/cron pods

Available in the dashboard and via bytstack logs.