Custom Domains
Section titled “Custom Domains”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.
Overview
Section titled “Overview”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
Prerequisites
Section titled “Prerequisites”- Paid plan on Sherpa.sh
- Domain registered with a DNS provider
- Access to your domain's DNS settings
Adding a Custom Domain
Section titled “Adding a Custom Domain”- Navigate to the Domains tab in your Sherpa.sh dashboard
- Click Add New Domain
- Enter your domain name (e.g.,
example.com) - Click Save
Method 1: Automated DNS Management (Recommended)
Section titled “Method 1: Automated DNS Management (Recommended)”This method provides the most seamless experience with automatic SSL certificate generation and CDN optimization.
Step 1: Update Nameservers
Section titled “Step 1: Update Nameservers”After adding your domain, navigate to the DNS Management section:
- Go to your domain's settings page
- Note the Sherpa.sh nameservers:
ns1.sherpa.shns2.sherpa.sh
- Update your domain registrar's nameservers to point to Sherpa.sh
Step 2: Link Domain to Application
Section titled “Step 2: Link Domain to Application”- Navigate to your domain in the Sherpa.sh dashboard
- Click Link Application
- Select your target application from the dropdown
- Click Save
Method 2: Manual DNS Configuration
Section titled “Method 2: Manual DNS Configuration”Use this method if you prefer to manage DNS through your existing provider.
Step 1: Link Domain to Application
Section titled “Step 1: Link Domain to Application”Follow the same steps as automated method to link your domain to an application.
Step 2: Add Required DNS Records
Section titled “Step 2: Add Required DNS Records”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.
Understanding the Record Structure
Section titled “Understanding the Record Structure”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
Required DNS Records by Domain Type
Section titled “Required DNS Records by Domain Type”Subdomain Configuration (Recommended)
Section titled “Subdomain Configuration (Recommended)”For subdomains like www.example.com or app.example.com:
Type: CNAMEName: www (or your chosen subdomain)Value: example.sherpa.softwareTTL: 3600What this does: Routes all traffic for your subdomain through Sherpa.sh's CDN network, providing optimal performance and automatic scaling.
Static assets optimization:
Type: CNAMEName: static-www (or static-[yoursubdomain])Value: static-example.sherpa.softwareTTL: 3600Root Domain Configuration
Section titled “Root Domain Configuration”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: 3600Supported providers: Cloudflare, AWS Route53, DNSimple, Namecheap, and more
Benefits: Full CDN support, optimal performance, proper SSL handling
Option 2 - A Record (Compatibility Fallback):
Type: AName: @ (or leave blank)Value: [Load balancer IP]TTL: 3600When 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
Performance Impact Comparison
Section titled “Performance Impact Comparison”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
SSL Certificate Validation Record
Section titled “SSL Certificate Validation Record”Required for all configurations to enable HTTPS:
Type: CNAMEName: _acme-challengeValue: _acme-challenge.example.com.validation.sherpa.softwareTTL: 300Important: This record is used by Let's Encrypt to verify domain ownership. Keep it even after SSL activation for automatic renewals.
Debugging DNS Routing
Section titled “Debugging DNS Routing”If you are having issues setting up your custome domain's DNS routing. Please follow the following steps:
1. Check DNS propagation
Section titled “1. Check DNS propagation”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.
2. Redeploy application
Section titled “2. Redeploy 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.
3. Open a Support Ticket
Section titled “3. Open a Support Ticket”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.
Domain Configuration Options
Section titled “Domain Configuration Options”Once linked, configure these settings on your domain's page:
Root Domain Routing
Section titled “Root Domain Routing”- Route root domain to this project: Directs
example.comto your application. Requires root domain configuration. - Redirect root domain to subdomain: Redirects
example.com→www.example.com
Best Practices
Section titled “Best Practices”- Use Subdomains: We recommend using
wwwor another subdomain as your primary domain rather than the root domain for better CDN compatibility - 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
- SSL Certificates: Keep the
_acme-challengerecord even after SSL generation for future renewals
Verification and Troubleshooting
Section titled “Verification and Troubleshooting”Check DNS Propagation
Section titled “Check DNS Propagation”After updating records:
- Click Refresh in the domain settings
- Check status indicators (✓ = configured correctly)
- Allow 5-48 hours for full DNS propagation
Common Issues
Section titled “Common Issues”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-challengerecord 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
Support
Section titled “Support”Need assistance? Join our Discord community: discord.sherpa.sh