Goal
Deploy long-running background work — queue consumers, schedulers, socket servers — with the right health model and resources.Prerequisites
- A project that builds successfully
- A start command that runs your background process
Workflow
Process types
- web: a public HTTP service with ingress and HTTP health checks (the default).
- worker: a generic long-running background process.
- queue: a queue/job consumer.
- scheduler: a long-running scheduler process (distinct from one-off scheduled jobs).
- reverb: a websocket/realtime server process (Laravel Reverb-style).
How background process types differ from web
- No public ingress is provisioned — background processes are not exposed on a domain or port.
- Health is determined by whether the process is running, not by an HTTP health check.
- They use a dedicated start command rather than a web server entrypoint.
- A worker resource preset (more memory/CPU) is available for heavier background work.
Web plus background work
A project runs as a single process type. To run a public web service and a separate background worker for the same codebase, deploy them as separate projects (each with its own process type and start command) so each gets the correct health model, scaling, and resources.Expected result
A continuously running background process with no public port, kept alive and restarted like any other workload.
Common failures
Related guides
Scheduled jobs (cron)
Run a command from your deployed image on a recurring standard-cron schedule, with run history and exit-code tracking.
Deploy from GitHub
Use the repository-backed project flow when you want StackShift to detect the app, build from source, and let you override runtime behavior before the first deploy.
Builds, deployments, and logs
Understand the project execution lifecycle: build output, deploy state, rollback behavior, and where to inspect logs.