Change where a service's code or image comes from
Switches a service to a git URL, a Docker image, an inline Dockerfile, uploads or no source. For GitHub repositories use github.connectRepo, which checks the App can read the repo. Applies on the next deploy.
Needs services.update on the service (a grant on its project covers it). Available to MCP clients and the assistant.
seylo_session<token>application/json- body
serviceId*stringPanel-issued id.
^[a-z0-9]{16}$source*|||||Success.
application/json- response
id*stringPanel-issued id.
^[a-z0-9]{16}$projectId*stringPanel-issued id.
^[a-z0-9]{16}$name*stringDNS-safe; the service's host name on the project network. Unique in its project.
^[a-z0-9]([a-z0-9-]*[a-z0-9])?$1 <= length <= 40kind*||||||||Compose members have kind app and a parentId naming their stack.
parentId*|nullstatus*string|string|string|string|string|string|string|string|string|stringsource*address*string|nullplacements*array<>cpuPercent*|nullmemoryBytes*|nullmemoryLimitBytes*|nullliveDeployment*|nulllastDeployedAt*|nullprotected*booleantemplateSlug*string|nullcreatedAt*stringdate-timeupdatedAt*stringdate-timestopped*booleangeneration*integer1 <= valuesourceConfig*|||||build*container*ports*array<>healthCheck*|nullcrashPolicy*restartDelaySeconds*integer0 <= valueresources*deploy*cron*|nullstickySessions*booleanentryNodeId*|nullnotes*stringmembers*array<>volumes*array<>curl -X POST 'https://example.com/api/v1/services.setSource' \ -H 'Content-Type: application/json' \ -d '{ "serviceId": "string", "source": { "type": "github", "installationId": "string", "repo": "string", "branch": "string", "deployOnPush": true }}'{ "id": "string", "projectId": "string", "name": "string", "kind": "app", "parentId": "string", "status": "idle", "source": { "type": "github", "label": "string", "branch": "string", "builder": "railpack" }, "address": "string", "placements": [ { "nodeId": "string", "nodeName": "string", "replicas": 1 } ], "cpuPercent": 0, "memoryBytes": 0, "memoryLimitBytes": 0, "liveDeployment": { "id": "string", "label": "string", "createdAt": "2019-08-24T14:15:22Z" }, "lastDeployedAt": "2019-08-24T14:15:22Z", "protected": true, "templateSlug": "string", "createdAt": "2019-08-24T14:15:22Z", "updatedAt": "2019-08-24T14:15:22Z", "stopped": true, "generation": 1, "sourceConfig": { "type": "github", "installationId": "string", "repo": "string", "branch": "string", "deployOnPush": true }, "build": { "builder": "railpack", "contextPath": "string", "dockerfilePath": "string", "inlineDockerfile": "string", "targetStage": "string", "buildNodeId": "string", "startCommand": "string", "installCommand": "string", "buildCommand": "string" }, "container": { "command": [ "string" ], "entrypoint": [ "string" ], "workingDir": "string", "user": "string", "stopSignal": "string", "stopGraceSeconds": 1 }, "ports": [ { "containerPort": 1, "protocol": "tcp" } ], "healthCheck": { "probe": { "type": "tcp", "port": 1 }, "intervalSeconds": 1, "timeoutSeconds": 1, "startPeriodSeconds": 0, "failureThreshold": 1 }, "crashPolicy": { "restart": true, "stopAfterCrashes": 0 }, "restartDelaySeconds": 0, "resources": { "memoryLimitBytes": 6291456, "memoryReservationBytes": 0, "cpuWeight": 1, "pidsLimit": 16 }, "deploy": { "mode": "rolling", "healthTimeoutSeconds": 10 }, "cron": { "schedule": "stringstr", "timeZone": "string", "command": [ "string" ], "timeoutSeconds": 1, "concurrency": "forbid" }, "stickySessions": true, "entryNodeId": "string", "notes": "string", "members": [ { "id": "string", "name": "string", "status": "idle" } ], "volumes": [ { "id": "string", "name": "string", "mountPath": "string", "kind": "volume", "readOnly": true, "sharedWith": [ { "id": "string", "name": "string" } ] } ]}Set a service's resource limits POST
Sets memory limit and reservation, CPU weight and process limit. Every field is off (null) by default; there is no hard CPU cap. Applies on the next deploy. Needs `services.update` on the service (a grant on its project covers it). Available to MCP clients and the assistant.
Set a service's volumes POST
Replaces a service's named volumes (persistent folders mounted into the container). Volumes are matched by name: new names are created, missing ones are removed with their data. Applies on the next deploy. Services with volumes run on one node. Needs `services.update` on the service (a grant on its project covers it). Available to MCP clients and the assistant, after a person approves the call.