Skip to main content

Overview

Every project with a running web app gets a default URL like https://app-{org}-{project}.runalph.dev. Custom domains let you serve your app from your own domain instead — for example, app.yourcompany.com. SSL certificates are provisioned automatically. No proxy or server configuration required.

Prerequisites

  • Your project must be running with an app URL (visible in Project Settings > Domains)
  • You must own the domain and have access to its DNS settings

Adding a Custom Domain

1

Open domain settings

Go to your project’s Settings > Domains.
2

Enter your domain

Type a domain (e.g., app.example.com) or apex domain (e.g., example.com) and click Add.
3

Configure DNS

The page shows a CNAME record to add at your DNS provider:
FieldValue
TypeCNAME
NameYour domain (e.g., app for app.example.com)
TargetYour project’s tunnel hostname (shown on screen)
4

Verify

After DNS propagates (usually a few minutes), click Verify. Once verified, status changes to active and SSL is provisioned automatically.

Apex Domains

Apex domains (e.g., example.com without a subdomain) require a DNS provider that supports CNAME flattening or ALIAS/ANAME records — standard CNAME records are not allowed at the zone root per the DNS spec. Providers that support this include Cloudflare, DNSimple, and Route 53. If your provider doesn’t support it, use a subdomain like www.example.com or app.example.com instead.

Removing a Domain

Click the trash icon next to a domain in Settings > Domains and confirm removal. This deletes the domain from Cloudflare and removes the tunnel routing rule. You’ll need to clean up your DNS records manually.

Works with the CLI

If you created your project using the CLI:
alphai jupyter lab --org my-org --project my-project --app-port 5000
You can still add custom domains through the web UI at Settings > Domains. The locally-running tunnel connector automatically picks up the new routing rules — no restart needed.
The --app-port flag is required. Without it, there is no app URL to attach a custom domain to.

Troubleshooting

Domain stuck in “pending”:
  • DNS changes can take up to 48 hours to propagate, though most resolve in minutes
  • Verify your CNAME record is correct with dig CNAME app.example.com
  • Click Verify again to re-check
SSL not active:
  • SSL provisioning starts after domain verification succeeds
  • It typically completes within a few minutes
  • Check back and click Verify to refresh the status
“App URL Not Available” warning:
  • Start your project first — a running project is required before adding domains