Service
A service defined once per project. Each environment has an instance with optional overrides.
Fields
Section titled “Fields”| Field | Type | Description |
|---|---|---|
id * |
string | |
project_id * |
string | |
name * |
string | |
kind |
web, private, worker, cron |
Derived; worker has no port, cron has a schedule. Read-only. |
managed_by_manifest |
boolean | |
created_at * |
string (date-time) | |
updated_at |
string (date-time) | |
source |
ServiceSource | |
build |
BuildSettings | |
start |
string or null | Start command. Detected when empty. |
pre_deploy |
string or null | Runs once per deployment in a separate VM before traffic moves; failure stops the rollout. |
port |
integer or null | |
healthcheck |
Healthcheck or any or null | |
resources |
ServiceResources | |
replicas |
Replicas | |
sleep_when_idle |
boolean | Scale to zero after 10 idle minutes; the first request wakes it in 1–3 s. |
private |
boolean | No public domain; reachable only on the environment’s private network. |
cron |
CronSettings or any or null | |
restart_policy |
object | |
deploy |
object | |
volumes |
array of VolumeMount |
* always present
Example
Section titled “Example”{ "id": "svc_01jbx2m9k7q4r8t5v6w3y0z1sv", "project_id": "prj_01jbx2m9k7q4r8t5v6w3y0z1pr", "name": "web", "kind": "web", "managed_by_manifest": true, "source": { "kind": "git", "repo": "primecarers/platform", "root": "apps/web", "watch": [ "apps/web/**", "packages/ui/**", "pnpm-lock.yaml" ] }, "build": { "builder": "railpack" }, "start": "pnpm --filter web start", "pre_deploy": "pnpm --filter db migrate deploy", "port": 3000, "healthcheck": { "type": "http", "path": "/healthz", "timeout_seconds": 10 }, "resources": { "cpu": 2, "memory_mb": 2048 }, "replicas": { "min": 2, "max": 6, "scale_on": { "cpu_percent": 70, "concurrency": 80 } }, "sleep_when_idle": false, "private": false, "cron": null, "created_at": "2026-10-22T09:30:00Z", "updated_at": "2026-10-23T10:00:00Z"}