Skip to Content
SeyloDocs

Change where a service's code or image comes from

POST
/api/v1/services.setSource

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.

Authorization

cookieseylo_session<token>

Request Body

application/json
  1. body
serviceId*string

Panel-issued id.

Match^[a-z0-9]{16}$
source*|||||

Response Body

Success.

application/json
  1. response
id*string

Panel-issued id.

Match^[a-z0-9]{16}$
projectId*string

Panel-issued id.

Match^[a-z0-9]{16}$
name*string

DNS-safe; the service's host name on the project network. Unique in its project.

Match^[a-z0-9]([a-z0-9-]*[a-z0-9])?$
Length1 <= length <= 40
kind*||||||||

Compose members have kind app and a parentId naming their stack.

parentId*|null
status*string|string|string|string|string|string|string|string|string|string
source*
address*string|null
placements*array<>
cpuPercent*|null
memoryBytes*|null
memoryLimitBytes*|null
liveDeployment*|null
lastDeployedAt*|null
protected*boolean
templateSlug*string|null
createdAt*string
Formatdate-time
updatedAt*string
Formatdate-time
stopped*boolean
generation*integer
Range1 <= value
sourceConfig*|||||
build*
container*
ports*array<>
healthCheck*|null
crashPolicy*
restartDelaySeconds*integer
Range0 <= value
resources*
deploy*
cron*|null
stickySessions*boolean
entryNodeId*|null
notes*string
members*array<>
volumes*array<>
Example Request
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  }}'
Example Response
{  "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"        }      ]    }  ]}