Upload a custom certificate
Stores a PEM certificate chain and private key for a domain and switches it to HTTPS mode custom. Fails when the key does not match the certificate or the certificate does not cover the host.
Needs domains.edit on the service (a grant on its project covers it). Not available to MCP clients or the assistant.
seylo_session<token>application/json- body
serviceId*stringPanel-issued id.
^[a-z0-9]{16}$domainId*stringPanel-issued id.
^[a-z0-9]{16}$certPem*string100 <= length <= 65536privateKey*stringPEM private key.
100 <= length <= 65536Success.
application/json- response
id*stringPanel-issued id.
^[a-z0-9]{16}$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|stringredirectToHttps*booleanauto*booleanprimary*booleanforward*|nullmiddlewares*dnsStatus*string|string|string|string|stringdnsCheckedAt*|nullcertificate*liveAt*|nullurl*stringcreatedAt*stringdate-timeupdatedAt*stringdate-timecurl -X POST 'https://example.com/api/v1/domains.setCertificate' \ -H 'Content-Type: application/json' \ -d '{ "serviceId": "string", "domainId": "string", "certPem": "stringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstri", "privateKey": "stringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstringstri"}'{ "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"}Remove a domain POST
Removes a domain from the service; requests to it stop reaching the service right away. When it was primary, the oldest remaining domain becomes primary. Needs `domains.edit` on the service (a grant on its project covers it). Available to MCP clients and the assistant, after a person approves the call.
Set a domain's access rules POST
Sets basic auth, the IP allowlist, the rate limit and URL redirects of one domain. Each field left out keeps its value; null (or an empty list) turns it off. Basic auth users replace the whole list; a user without a password keeps the stored one. Needs `domains.edit` on the service (a grant on its project covers it). Available to MCP clients and the assistant.