Map a custom domain
Goal: Serve an app on a subdomain you own (for example app.example.com) with a valid TLS certificate.
Prerequisites:
- An app running on its default
{slug}.run.uploy.euURL. - Access to DNS for the domain you want to use.
- A subdomain (at least three labels, e.g.
app.example.com). Apex domains and wildcards are not supported in this release — see Limitations.
-
Open the app detail page and switch to the Domains tab.
-
Click Add and enter the subdomain (e.g.
app.example.com). The row appears with state DNS not yet pointing at Uploy and a DNS instruction block. -
At your DNS provider, create the exact record the dashboard shows, in the form:
app.example.com CNAME {project-slug}.run.uploy.euwhere
{project-slug}is your project’s slug (displayed in the instruction block). -
Wait a minute for propagation, then click Recheck on the row. Uploy resolves the CNAME; if it matches, the state transitions to Issuing certificate….
-
cert-manager requests a Let’s Encrypt certificate over HTTP-01. Within ~1–2 minutes the state reaches Active · HTTPS ready.
-
Open
https://app.example.com— the app is served on your custom domain in addition to the default{slug}.run.uploy.euURL.
Status reference
Section titled “Status reference”Each domain row has one of these states:
| State | What it means |
|---|---|
| DNS not yet pointing at Uploy | The CNAME does not match {slug}.run.uploy.eu yet. Create the record and click Recheck. |
| Issuing certificate… | DNS verified. cert-manager is issuing a Let’s Encrypt cert over HTTP-01. |
| Active · HTTPS ready | TLS is live. The domain serves your app. |
| Failed | Certificate issuance failed. See the status detail and the Domain not resolving guide. |
| Deleting… | Removal in progress. |
Verify
Section titled “Verify”- Domain status is Active · HTTPS ready.
curl -Iv https://app.example.comreturns HTTP 200 and a valid certificate chain.
Remove a domain
Section titled “Remove a domain”On the Domains tab, click Delete on the row. The Ingress and TLS certificate are removed; the domain is freed and can be re-added immediately (to the same app or to a different one).
Limitations
Section titled “Limitations”- Subdomains only.
example.com(apex) and wildcards (*.example.com) are not supported yet. - No redirects. If you want both
www.example.comandexample.com(once apex is supported) pointing at the same app, add each as a separate row. - One domain, one app. A domain can only be attached to a single app at a time. To move it, delete it from the first app and add it to the second.
Troubleshooting
Section titled “Troubleshooting”See Domain not resolving if the row stays in DNS not yet pointing or Failed.