deploy/reference/domains.md
Every organization has a default domain used for all applications deployed
within that organization. For example, an organization with the slug acme-inc
would have a default domain of acme-inc.deno.net. An application named
my-app would automatically receive the production domain
my-app.acme-inc.deno.net.
In addition to these default domains, you can add custom domains to your applications. Custom domains are domains that you own and control. To use a custom domain, you must:
Custom domains belong to an organization and can be attached to any application within that organization.
A custom domain can be added as:
example.com or a specific subdomain)*.example.com)A base domain works with a single application, while a wildcard domain offers more flexibility. You can either:
All custom domains require valid TLS certificates. Deno Deploy can automatically provision these certificates using Let's Encrypt. Alternatively, you can bring your own TLS certificates, which you will then need to renew manually.
example.com)This will open the domain configuration drawer.
The domain configuration drawer shows the DNS records needed to:
There are three possible configuration methods, depending on your domain registrar's capabilities:
If your registrar supports ANAME or ALIAS records, this is the best option:
ANAME/ALIAS recordCNAME record for verificationWorks well for subdomains but not for apex domains:
CNAME recordsMX records) on the
same domainMost compatible but requires more configuration:
A recordCNAME record for verificationNote: Deno Deploy does not currently support IPv6. When using the
ANAME/ALIASorCNAMEmethods, your domain will automatically use IPv6 when supported. With theAmethod, you'll receive an email when it's time to add anAAAArecord.
:::caution
When using Cloudflare as your DNS provider, you MUST disable the proxying
feature (orange cloud) for the _acme-challenge CNAME record, or verification
and certificate provisioning will fail.
:::
After adding the DNS records, Deno Deploy will verify your domain ownership. This process may take a few minutes depending on your DNS provider. You can leave the domain configuration drawer open during verification — it will refresh automatically when complete.
You can manually trigger verification by clicking the "Provision Certificate" button. Successful verification also initiates TLS certificate provisioning.
After domain verification, you need a valid TLS certificate to use the domain with Deno Deploy. You can either have Deno Deploy provision a certificate for you using Let's Encrypt, or you can bring your own certificate.
After domain verification, click "Provision Certificate" to generate a TLS certificate through Let's Encrypt. This process can take up to 90 seconds.
Once provisioned, you'll see certificate details including expiration date and issue time.
Certificates are automatically renewed near expiration. You can check the current certificate status in the domain configuration drawer.
If automatic renewal fails (for example, because DNS records changed), you will receive an email notification 14 days before the certificate expires. You then have a chance to fix the issue and contact support to retry the renewal. If the certificate is not renewed before expiration, the domain will stop working.
If you prefer to use your own TLS certificate, you can upload it in the domain configuration drawer. You'll need to provide the following:
Once uploaded, the certificate will be used for the domain. You are responsible for renewing and updating the certificate before it expires.
You will receive email notifications 14 days before the certificate expires reminding you to update it. If the certificate expires, the domain will stop working.
The TLS certificate must be valid at the time of upload. It must cover the base domain (and, if you have a wildcard domain, the wildcard subdomain as well) through either the common name or the subject alternative names in the certificate. The private key and certificate must match, and must be either RSA (2048, 3072, or 4096 bits) or ECDSA (P-256, P-384, or P-521).
After adding a custom domain to your organization:
This removes the domain from the application but keeps it available in your organization for use with other applications.
This removes the custom domain from your organization and deletes all domain assignments across all applications.
If you have previously set up a custom domain on Deploy Classic and want to migrate it to Deno Deploy, we've created a step-by-step tutorial to guide you through the process.