Every project on Deploy Your App receives an automatically generated subdomain under the platform’s base domain (e.g.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/nayalsaurav/deploy-your-app/llms.txt
Use this file to discover all available pages before exploring further.
my-app.your-base-domain.com). You can also map your own domain — such as app.example.com — to a project by creating a CNAME record in your DNS provider and verifying it through the dashboard. Caddy, the platform’s reverse proxy, handles TLS certificate provisioning automatically via ACME once verification passes.
Steps
Add the custom domain
Open your project in the dashboard and go to Settings → Domains. Enter the full hostname you want to use (e.g.
app.example.com) in the custom domain field and save.The platform normalizes the value before storing it:- Strips
https://orhttp://prefixes - Removes trailing slashes
- Lowercases the entire string
customDomain field on the Project record in PostgreSQL with customDomainVerified set to false. The domain is not active until verification succeeds.Create a CNAME record in your DNS provider
Log in to your DNS provider (e.g. Cloudflare, Route 53, Namecheap) and add a CNAME record pointing your hostname to the platform’s base domain (
For example, if your domain is You can confirm propagation before clicking Verify using The output should show your custom hostname resolving to the platform base domain.
NEXT_PUBLIC_BASE_DOMAIN).| Type | Name | Value | TTL |
|---|---|---|---|
CNAME | app | your-base-domain.com | 300 (or Auto) |
app.example.com and the platform base domain is deploy.acme.io, create a CNAME record with name app pointing to deploy.acme.io.DNS propagation can take anywhere from a few minutes to 48 hours depending on your DNS provider and the TTL of the record. The platform’s verification will fail until the CNAME record has fully propagated.
dig or nslookup:Verify the domain
Once DNS has propagated, click Verify Domain in the dashboard. This calls
POST /api/v1/projects/:id/domain/verify.The server uses Node.js’s dns.resolveCname() (from node:dns/promises) to resolve the CNAME record for your domain and checks that at least one of the returned records matches NEXT_PUBLIC_BASE_DOMAIN (case-insensitive).If verification succeeds:- The
customDomainVerifiedflag on theProjectrecord is set totrue - The platform proxy begins routing traffic for that hostname to your project
- Caddy starts the ACME certificate provisioning flow for your domain
CNAME record does not match deploy.acme.io. Currently points to: old-value.com). Check your DNS settings and try again after propagation.TLS is handled automatically
You do not need to provision or upload any TLS certificates. Caddy automatically obtains a certificate for your custom domain via the ACME protocol (Let’s Encrypt or ZeroSSL) once the domain is verified and traffic is routed through the proxy.The platform exposes a
/_internal/tls-check endpoint that Caddy uses to confirm a domain is registered and verified before initiating certificate issuance. This prevents certificates from being issued for domains that haven’t been properly set up.After a short period (usually under a minute), your application will be reachable over HTTPS at your custom domain.How the proxy routes custom domains
When an inbound HTTP/HTTPS request arrives at the platform proxy on a hostname that does not match the base domain pattern, the proxy:- Looks up the
Projectrecord in the database wherecustomDomainequals the request hostname andcustomDomainVerifiedistrue. - Reads the project’s
metadata.containerIdto determine the running Docker container. - Proxies the request to the container’s internal port.
Removing or changing a custom domain
To remove a custom domain, clear the custom domain field in Settings → Domains and save. ThecustomDomain field is set to null and customDomainVerified is reset to false. The platform proxy stops routing traffic for that hostname immediately. Caddy will not renew the TLS certificate on its next renewal cycle.
To switch to a different domain, enter the new hostname, save, then follow the CNAME and verification steps above for the new domain.