Skip to content
Domains

Hostnames

The kuppit.app hostname every web service gets, how it is formed, and what happens to a request on its way to your service.

Every web service has a stable hostname on kuppit.app from the moment it is created, with HTTPS. It is the address of the service in every environment, and the one the dashboard shows under Kuppit domain on the service's Domains tab. Custom domains are attached beside it; see custom domains.

How a hostname is formed

[<environment>-]<project>[-<service>]-<id>.kuppit.app
  • Project is the project's name, lowercased, with anything that is not a letter or digit turned into a hyphen.
  • Service is the service's name, omitted when the service is named web.
  • Id is six characters derived from the service, so no two services share a hostname and a new service never takes over an old one's.
  • Environment leads the hostname everywhere but Production: a preview's pr-42, a named environment's slug.

For a project named acme:

acme-a1b2c3.kuppit.app             web, in Production
acme-api-d4e5f6.kuppit.app         api, in Production
pr-42-acme-a1b2c3.kuppit.app       web, in the preview for pull request 42
staging-acme-a1b2c3.kuppit.app     web, in staging

A few labels are reserved for Kuppit's own use, such as www, app and docs, and the pr-<number>- shape is reserved for previews. A project that would collide with one gets -2 appended instead.

What does not change it

The hostname is reserved once and kept. Deployments, rollbacks, renaming the project and moving infrastructure underneath all leave it alone, and a preview that closes keeps its hostname for when its pull request reopens. It cannot be edited or removed. The id is what makes it unique, not what keeps it private: a generated hostname serves whatever the service serves, to anyone who reaches it.

When it starts answering

The hostname exists from creation, and answers once the service's first deployment goes Live. Until then the Domains tab shows it as Provisioning. When an environment is removed or a preview closes, routing is withdrawn before the service is destroyed, and a visitor gets a plain 404 Domain Not Found from the edge rather than a half-removed service.

What happens to a request

Requests to any hostname, generated or custom, pass through Kuppit's edge before reaching your service: HTTP is redirected to HTTPS, the request is forwarded to the Live revision with the hostname and the client's address in forwarded headers, and every request carries an id. Networking has the whole path, the headers, the limits, and what services can and cannot reach.

Was this page helpful?