Backend services
Deploy always-on server processes with a Dockerfile, start command, and port 8080.
What a backend service is
A backend service is an always-on process: an API, a WebSocket server, or anything that holds long-lived connections or does background work. Unlike a website, it isn't built once and served as files — Vorynza keeps a container running for it and routes traffic to it continuously.
When you import a repository, Vorynza detects backend frameworks (Express, Fastify, NestJS, Koa, Hapi, Hono) and non-Node languages (Python, Go, Rust, Ruby) and recommends the backend service type automatically. You can always change the type before deploying.
Requirements
Every backend service needs three things:
1. A Dockerfile at the repository root
Vorynza builds your service image from your own Dockerfile. There is no auto-generated
container — your Dockerfile describes exactly how your app is installed and started, which is
what makes any language or framework deployable as a backend service.
A minimal Node.js example:
FROM node:20-slim
WORKDIR /app
COPY package*.json ./
RUN npm ci --omit=dev
COPY . .
EXPOSE 8080
CMD ["node", "server.js"]If your repository has no Dockerfile, the build fails with a clear message before anything is deployed. Add one, push, and deploy again.
2. A start command
The start command runs when your container boots and overrides your Dockerfile's CMD. When
your package.json has a start script, Vorynza suggests it automatically during setup.
3. Listen on port 8080
Vorynza routes traffic to port 8080 inside your container. Make sure your server binds to it
(and to host 0.0.0.0, not localhost):
app.listen(process.env.PORT ?? 8080, "0.0.0.0");Health checks
After each deployment, Vorynza confirms your service actually responds before marking the deployment ready. If the process never answers on its URL, the deployment is marked failed with an explanation — check your start command and the deployment's build log, then retry.
Auto-sleep on the Free plan
Backend services on the Free plan sleep after 30 minutes without traffic and wake automatically on the next request (or from the Wake up button on the app page). Paid plans keep services always-on.
Deployment flow
Backend services deploy from your production branch only. Every push builds a fresh image, and promoting or rolling back switches which image serves traffic — previous versions stay available for instant rollback.
