Add a Custom Domain
Replace the auto-assigned subdomain with your own domain. Temps provisions SSL certificates automatically via Let's Encrypt and renews them before they expire.
Create a DNS record
Before adding a domain in Temps, point it to your server. In your DNS provider (Cloudflare, Namecheap, Route 53, etc.), create an A record:
| Type | Name | Value |
|---|---|---|
| A | app (for app.yourdomain.com) | Your server's IP address |
Or for the root domain:
| Type | Name | Value |
|---|---|---|
| A | @ (for yourdomain.com) | Your server's IP address |
Wait for DNS propagation. This usually takes a few minutes, but can take up to 48 hours in rare cases.
Cloudflare users: If you use Cloudflare's proxy (orange cloud), SSL will work but certificate provisioning uses Cloudflare's certificates instead of Let's Encrypt. To use Temps' built-in Let's Encrypt provisioning, set the DNS record to DNS only (grey cloud) during initial setup. You can re-enable the proxy afterward.
Add the domain in Temps
- Open your project in the dashboard
- Click Domains in the project sidebar
- Click Add Domain
- Enter your domain name (e.g.
app.yourdomain.com) - Select the environment this domain should route to (usually production)
- Choose the SSL challenge type (see below)
- Click Add
Temps verifies the domain ownership, provisions an SSL certificate, and starts routing traffic. The certificate renews automatically before it expires. You receive a notification 30 days before expiration as an extra safeguard.
Choose an SSL challenge type
Let's Encrypt needs to verify you control the domain before issuing a certificate. Temps supports two verification methods:
HTTP-01 (Default)
Let's Encrypt makes an HTTP request to your domain on port 80. Temps handles this automatically.
Requirements:
- Port 80 must be open and reachable from the internet
- The DNS record must point to your server
Use for: Standard domains like app.yourdomain.com
DNS-01
Let's Encrypt verifies a TXT record in your domain's DNS. Temps creates and removes this record automatically if you have a DNS provider configured.
Requirements:
- A DNS provider connected in Settings > DNS Providers (Cloudflare, Route 53, DigitalOcean, Azure DNS, or Google Cloud DNS)
Use for: Wildcard domains (*.yourdomain.com) — HTTP-01 does not support wildcards
Set up a wildcard domain
A wildcard domain routes all subdomains to Temps, so each project or environment can get its own subdomain automatically (e.g. my-app.yourdomain.com, staging.yourdomain.com).
Step 1: Add a wildcard DNS record
*.yourdomain.com → A → YOUR_SERVER_IP
Step 2: Connect a DNS provider
Wildcard certificates require DNS-01 validation, which means Temps needs API access to your DNS provider.
- Go to Settings > DNS Providers
- Click Add DNS Provider
- Choose your provider and enter the API credentials:
- Cloudflare — API token with Zone:DNS:Edit permission
- Route 53 — AWS access key with Route 53 permissions
- DigitalOcean — API token
- Azure DNS — Service principal credentials
- Google Cloud DNS — Service account key
Step 3: Add the wildcard domain
- Go to Domains in your project (or in global settings for the platform-wide preview domain)
- Add
*.yourdomain.com - Select DNS-01 as the challenge type
- Select your DNS provider
- Click Add
Temps creates the required TXT record, waits for verification, and issues a wildcard certificate. All subdomains under yourdomain.com are now covered.
Troubleshooting
- Name
Certificate provisioning fails- Description
Check DNS propagation: Run
dig app.yourdomain.com(or use an online DNS checker) and verify the A record points to your server's IP.Check port 80: For HTTP-01 challenges, port 80 must be open. Test with:
curl -v http://app.yourdomain.com/.well-known/acme-challenge/testCheck firewall: Ensure your server's firewall allows inbound connections on ports 80 and 443.
- Name
Domain shows as pending- Description
Certificate provisioning usually completes in under a minute. If the domain stays in a pending state:
- Verify the DNS record exists and has propagated
- Check that no other service (nginx, Apache) is competing for port 80
- Try removing and re-adding the domain
- Name
SSL certificate expired- Description
Temps renews certificates automatically. If a certificate expires:
- Check that port 80 is still open (for HTTP-01)
- Check that the DNS provider credentials are still valid (for DNS-01)
- Temps sends a notification 30 days before expiration — check your notification channels
- Name
Mixed content warnings- Description
If your application loads resources over HTTP while the page is served over HTTPS, browsers will block or warn about mixed content. Ensure all internal URLs use
https://or protocol-relative paths (//).