Skip to content

This guide walks you through adding and configuring custom domains for your Sherpa.sh projects. You can choose between automated DNS management or manual record configuration.

Sherpa.sh supports unlimited custom domains on any paid plan. You have two configuration options:

  • Automated (Recommended): Point your nameservers to Sherpa.sh for automatic DNS management
  • Manual: Maintain your DNS provider and add specific records per project
  • Paid plan on Sherpa.sh
  • Domain registered with a DNS provider
  • Access to your domain's DNS settings
  1. Navigate to the Domains tab in your Sherpa.sh dashboard
  2. Click Add New Domain
  3. Enter your domain name (e.g., example.com)
  4. Click Save
Section titled “Method 1: Automated DNS Management (Recommended)”

This method provides the most seamless experience with automatic SSL certificate generation and CDN optimization.

After adding your domain, navigate to the DNS Management section:

  1. Go to your domain's settings page
  2. Note the Sherpa.sh nameservers:
    • ns1.sherpa.sh
    • ns2.sherpa.sh
  3. Update your domain registrar's nameservers to point to Sherpa.sh
  1. Navigate to your domain in the Sherpa.sh dashboard
  2. Click Link Application
  3. Select your target application from the dropdown
  4. Click Save

Use this method if you prefer to manage DNS through your existing provider.

Follow the same steps as automated method to link your domain to an application.

Navigate to your application's page's domain settings to view required records and add them in your DNS provider

Manual DNS Configuration: Required Records

Section titled “Manual DNS Configuration: Required Records”

When managing DNS through your existing provider, you'll need to configure specific records to route traffic to Sherpa.sh infrastructure. Here's exactly what each record does and important considerations for root domain routing.

Each DNS record serves a specific purpose in the routing chain:

  • Application routing: Directs user traffic to your application
  • SSL validation: Proves domain ownership for certificate generation
  • Static assets: Optimizes delivery of images, CSS, and JavaScript files

For subdomains like www.example.com or app.example.com:

Type: CNAME
Name: www (or your chosen subdomain)
Value: example.sherpa.softwareTTL: 3600

What this does: Routes all traffic for your subdomain through Sherpa.sh's CDN network, providing optimal performance and automatic scaling.

Static assets optimization:

Type: CNAME
Name: static-www (or static-[yoursubdomain])
Value: static-example.sherpa.softwareTTL: 3600

If you want to use your root domain as your main url, root domains (like example.com) have DNS limitations that require special handling:

Root domain configuration is required when this switch is enabled

Option 1 - ALIAS/ANAME Record (Best Performance):

Type: ALIAS (or ANAME/FLATTENING depending on provider)
Name: @ (or leave blank)
Value: sherpa.sherpa.softwareTTL: 3600

Supported providers: Cloudflare, AWS Route53, DNSimple, Namecheap, and more
Benefits: Full CDN support, optimal performance, proper SSL handling

Option 2 - A Record (Compatibility Fallback):

Type: A
Name: @ (or leave blank)
Value: [Load balancer IP]
TTL: 3600

When to use: Only when your DNS provider doesn't support ALIAS/ANAME records
Limitations:

  • Bypasses CDN, resulting in slower global performance
  • Direct server connection increases bandwidth usage
  • No automatic failover if IP changes
  • May impact your billing due to increased origin bandwidth consumption

Subdomain with CNAME (Optimal):

  • Request path: User → CDN Edge → Origin Server
  • Benefits: Caching, compression, DDoS protection
  • Latency: 20-50ms globally

Root domain with A record (Suboptimal):

  • Request path: User → Origin Server (direct)
  • Limitations: No caching, higher latency, increased bandwidth
  • Latency: 100-300ms depending on user location

Required for all configurations to enable HTTPS:

Type: CNAME
Name: _acme-challenge
Value: _acme-challenge.example.com.validation.sherpa.software
TTL: 300

Important: This record is used by Let's Encrypt to verify domain ownership. Keep it even after SSL activation for automatic renewals.

If you are having issues setting up your custome domain's DNS routing. Please follow the following steps:

If you are using our Automated DNS Management (method 1) your domain won't be available until propagation is completed. To check propagation you can use https://www.whatsmydns.net/#NS/ and search for your domain's NS server propogation. Once your nameservers are fully propogated, redeploy the application that your've linked your custom domain to.

If you are using Manual Managment (method 2) your domain won't be available until propagation is completed. You can use https://www.whatsmydns.net/#CNAME/ to check the CNAME propagation of all the required fields on the domains page of your application.

Once propogation is complete, redepooy your application to have it pick up the new DNS routing changes. If you deploy before propogation is completed your custom domain, SSL cert, or other routing may not work.

If you still have trouble, visit discord.sherpa.sh and open a ticket in the #support channel with your account email, application, and domain information.

Once linked, configure these settings on your domain's page:

  • Route root domain to this project: Directs example.com to your application. Requires root domain configuration.
  • Redirect root domain to subdomain: Redirects example.comwww.example.com
  1. Use Subdomains: We recommend using www or another subdomain as your primary domain rather than the root domain for better CDN compatibility
  2. Root Domain Limitations:
    • Some DNS providers don't support CNAME records on root domains
    • Using A records bypasses CDN benefits, potentially increasing origin bandwidth usage
  3. SSL Certificates: Keep the _acme-challenge record even after SSL generation for future renewals

After updating records:

  1. Click Refresh in the domain settings
  2. Check status indicators (✓ = configured correctly)
  3. Allow 5-48 hours for full DNS propagation

Nameserver Conflicts:

  • Ensure no conflicting records exist at your DNS provider
  • Remove any existing A/CNAME records for configured subdomains

SSL Certificate Errors:

  • Verify _acme-challenge record is correctly configured
  • Check for typos in the validation record value

CDN Bypass Warning:

  • If using A records for root domain, traffic bypasses CDN
  • Consider upgrading your plan if hitting bandwidth limits

Need assistance? Join our Discord community: discord.sherpa.sh