Deploy apps
Import a repo, configure service types, and ship from git push to a live URL.
How deployment works
- Connect a GitHub repo to a Bytstack project.
- Configure service type, build/start commands, root directory, and env.
- Deploy — Bytstack clones, installs, builds, then publishes a container (web/worker/cron) or static assets.
- Release — traffic switches to the new deployment (rolling update for web).
Statuses: queued → cloning → building → publishing → releasing → live.
Service types
| Type | Use for | Build | Runtime | Public URL |
|---|---|---|---|---|
| Web | APIs, SSR (Next.js, Remix), Node servers | Optional | Container + ingress | Yes |
| Static | SPAs (Vite, CRA, Vue, Angular) | Required | CDN / object storage | Yes |
| Worker | Background jobs, queue consumers | Optional | Container (no HTTP) | No |
| Cron | Scheduled tasks | Optional | CronJob | No |
Rule of thumb: client-side SPA with npm run build → Static. Long-running Node HTTP process → Web.
Framework detection
On import, Bytstack reads the repo-root package.json and suggests defaults:
| Framework | Type | Build | Start / publish |
|---|---|---|---|
| Next.js, Nuxt, Remix | Web | npm run build | npm start |
| Express / Fastify / Nest | Web | optional | npm start |
| Vite / CRA / Vue / Angular / Gatsby / Astro (static) | Static | npm run build | dist, 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
| Setting | Notes |
|---|---|
| Branch | Deployed on push when auto-deploy is on; default main |
| Root directory | Subfolder with package.json |
| Build command | After install; required for static |
| Start command | Web & worker containers (npm start, node dist/index.js, …) |
| Publish directory | Static 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.