Add a custom domain
Adds a custom domain (and optional path) to a service and returns it together with the DNS record to create. The route goes live once DNS points at the service's node and a certificate is issued. Set forward to make it a redirect-only domain, for example www to the apex.
Needs domains.edit 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}$host*stringLower-case host name without scheme or port, for example shop.example.com.
^([a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?\.)+[a-z][a-z0-9-]{0,62}$3 <= length <= 253pathPrefix?stringOnly requests under this path match. "/" is the whole host.
^/[A-Za-z0-9._~!$&'()*+,;=:@%/-]*$1 <= length <= 200stripPrefix?booleantargetPort?integerPort the container listens on.
1 <= value <= 65535https?string|string|stringforward?primary?booleanSuccess.
application/json- response
domain*dns*curl -X POST 'https://example.com/api/v1/domains.add' \ -H 'Content-Type: application/json' \ -d '{ "serviceId": "string", "host": "string"}'{ "domain": { "id": "string", "serviceId": "string", "host": "string", "pathPrefix": "string", "stripPrefix": true, "targetPort": 1, "https": "acme", "redirectToHttps": true, "auto": true, "primary": true, "forward": { "url": "stringst", "permanent": true, "keepPath": true }, "middlewares": { "basicAuth": { "usernames": [ "string" ] }, "ipAllowList": [ "string" ], "rateLimit": { "average": 1, "burst": 1, "periodSeconds": 1 }, "redirects": [ { "from": "string", "to": "string", "permanent": true } ] }, "dnsStatus": "unknown", "dnsCheckedAt": "2019-08-24T14:15:22Z", "certificate": { "status": "none", "expiresAt": "2019-08-24T14:15:22Z", "issuer": "string", "error": "string" }, "liveAt": "2019-08-24T14:15:22Z", "url": "string", "createdAt": "2019-08-24T14:15:22Z", "updatedAt": "2019-08-24T14:15:22Z" }, "dns": { "domainId": "string", "host": "string", "status": "unknown", "message": "string", "expected": [ { "type": "A", "name": "string", "value": "string" } ], "found": [ { "type": "A", "name": "string", "value": "string" } ], "zone": "string", "cloudflareManaged": true, "cloudflareDnsUrl": "string", "checkedAt": "2019-08-24T14:15:22Z" }}Clean up a node POST
Removes unused images, build cache, stopped containers and (when asked) orphaned service data created by this panel on one node. Never touches anything else on the machine. Needs `nodes.manage`, which owners and admins hold. Available to MCP clients and the assistant, after a person approves the call.
Add an automatic domain POST
Adds <name>.<wildcard> from the wildcard A record of the node the service runs on. Works right away with no DNS change. Fails when the node has no wildcard domain set. Needs `domains.edit` on the service (a grant on its project covers it). Available to MCP clients and the assistant.