Domains & SSL

Configure custom domains and SSL certificates for your projects

Domains & SSL

Learn how to configure custom domains and SSL certificates for your Parslinks projects. This guide covers everything from basic setup to advanced configurations.

Default Domains

Every project gets a free Parslinks subdomain automatically.

Production Domain

https://[project-slug].[org-slug].parslinks.app

Example:

https://my-app.acme.parslinks.app

Preview Domains

Preview deployments get unique URLs:

# Branch preview
https://my-app-git-feature.acme.parslinks.app

# Pull request preview
https://my-app-git-pr-123.acme.parslinks.app

# Deployment-specific
https://my-app-dep-abc123.acme.parslinks.app

Benefits of Default Domains

  • ✅ Instant availability
  • ✅ Automatic SSL certificates
  • ✅ No configuration needed
  • ✅ Global CDN
  • ✅ DDoS protection

Custom Domains

Add your own domain names to projects.

Adding a Custom Domain

  1. Navigate to Project

    • Go to your project dashboard
    • Click Domains tab
  2. Add Domain

    • Click Add Domain
    • Enter your domain name (e.g., myapp.com or www.myapp.com)
    • Click Add
  3. Configure DNS

    • Follow the DNS configuration instructions
    • Add the provided DNS records to your domain registrar
  4. Verify Domain

    • Wait for DNS propagation (usually 5-60 minutes)
    • Domain status will change from "Pending" to "Active"

Supported Domain Types

Apex Domain

example.com

DNS Configuration:

Type: A Record
Name: @
Value: 76.76.21.21

Or use ALIAS/ANAME (recommended):

Type: ALIAS
Name: @
Value: cname.parslinks.app

Subdomain

www.example.com
app.example.com
api.example.com

DNS Configuration:

Type: CNAME
Name: www (or your subdomain)
Value: cname.parslinks.app

Wildcard Domain

*.example.com

DNS Configuration:

Type: CNAME
Name: *
Value: cname.parslinks.app

Note: Wildcard domains require Team plan or higher.

DNS Configuration Examples

Using Cloudflare

  1. Log into Cloudflare Dashboard
  2. Select your domain
  3. Go to DNSRecords
  4. Click Add record
  5. Configure:
    Type: CNAME
    Name: www
    Target: cname.parslinks.app
    Proxy status: DNS only (gray cloud)
    TTL: Auto
  6. Click Save

Using GoDaddy

  1. Log into GoDaddy
  2. Go to My ProductsDNS
  3. Click Add under DNS Records
  4. Configure:
    Type: CNAME
    Name: www
    Value: cname.parslinks.app
    TTL: 1 Hour
  5. Click Save

Using Namecheap

  1. Log into Namecheap
  2. Go to Domain ListManage
  3. Advanced DNS tab
  4. Click Add New Record
  5. Configure:
    Type: CNAME Record
    Host: www
    Value: cname.parslinks.app
    TTL: Automatic
  6. Save changes

Using Route 53 (AWS)

  1. Open Route 53 Console
  2. Select hosted zone
  3. Click Create Record
  4. Configure:
    Record name: www
    Record type: CNAME
    Value: cname.parslinks.app
    TTL: 300
    Routing policy: Simple
  5. Create record

Verifying DNS Configuration

Check if DNS is configured correctly:

# Check CNAME record
dig www.example.com CNAME

# Expected output:
www.example.com. 300 IN CNAME cname.parslinks.app.

# Check A record (for apex domains)
dig example.com A

# Expected output:
example.com. 300 IN A 76.76.21.21

Or use online tools:

SSL Certificates

All domains get automatic SSL certificates from Let's Encrypt.

Automatic SSL

When you add a domain:

  1. Domain Verification: Parslinks verifies domain ownership
  2. Certificate Issuance: SSL certificate automatically requested
  3. Certificate Installation: Certificate installed on edge network
  4. HTTPS Enabled: Domain accessible via HTTPS
  5. Auto-Renewal: Certificate renews automatically before expiration

SSL Status

Monitor SSL certificate status in the Domains tab:

✅ Active - Certificate valid and active
⏳ Pending - Certificate being issued
🔄 Renewing - Certificate being renewed
⚠️ Expiring Soon - Certificate expires in < 30 days
❌ Failed - Certificate issuance failed

SSL Certificate Details

View certificate information:

Issued To: example.com
Issuer: Let's Encrypt
Valid From: Jan 1, 2024
Valid Until: Apr 1, 2024
Type: RSA 2048-bit
Status: Active
Auto-Renew: Enabled

Force HTTPS

Automatically redirect HTTP to HTTPS:

  1. Go to Project SettingsDomains
  2. Enable Force HTTPS
  3. All HTTP requests redirect to HTTPS with 301 status
http://example.com → https://example.com

Custom SSL Certificates

Bring your own SSL certificate (Team plan or higher):

  1. Go to DomainsCustom SSL
  2. Click Upload Certificate
  3. Provide:
    • Certificate (PEM format)
    • Private key (PEM format)
    • Certificate chain (optional)
  4. Click Upload

Example certificate format:

-----BEGIN CERTIFICATE-----
MIIDXTCCAkWgAwIBAgIJAKL0UG+mRKN...
-----END CERTIFICATE-----

Wildcard SSL

Wildcard certificates cover all subdomains:

*.example.com

Covers:

  • app.example.com
  • dashboard.example.com
  • api.example.com
  • Any other subdomain

Automatic for Parslinks domains - Manual DNS verification required for custom domains.

Domain Management

Multiple Domains per Project

Add multiple domains to one project:

Primary: example.com
Aliases: www.example.com
         app.example.com
         myapp.com

All domains serve the same deployment.

Domain Redirects

Redirect one domain to another:

  1. Go to Domains → Select domain
  2. Click Configure Redirect
  3. Enter target domain
  4. Choose redirect type (301 or 302)
  5. Save

Example:

www.example.com → example.com (301 Permanent)
old-domain.com → new-domain.com (301 Permanent)

Removing Domains

  1. Go to Domains tab
  2. Find the domain
  3. Click Remove
  4. Confirm removal

Note: This doesn't affect your DNS records. Remove those separately from your registrar.

Transferring Domains

Move a domain from one project to another:

  1. Remove domain from current project
  2. Add domain to new project
  3. No DNS changes needed (if both projects in same org)

Advanced Configurations

Branch-Specific Domains

Assign different domains to different branches:

main branch → example.com
staging branch → staging.example.com
develop branch → dev.example.com

Configuration:

  1. Go to Project SettingsGit
  2. Enable Branch Domains
  3. Map branches to domains:
    main → example.com
    staging → staging.example.com
    develop → dev.example.com

Path-Based Routing

Route different paths to different projects:

example.com/ → Marketing site
example.com/app → Web application
example.com/docs → Documentation

Note: Requires reverse proxy or CDN configuration.

Domain Aliases

Create aliases that redirect to primary domain:

Primary: example.com

Aliases:
  www.example.com → example.com
  myapp.com → example.com
  www.myapp.com → example.com

Custom Headers

Add custom headers for your domain:

  1. Go to Project SettingsHeaders
  2. Add header rules:
    X-Frame-Options: DENY
    X-Content-Type-Options: nosniff
    Strict-Transport-Security: max-age=31536000

CORS Configuration

Configure CORS for API domains:

Access-Control-Allow-Origin: https://example.com
Access-Control-Allow-Methods: GET, POST, PUT, DELETE
Access-Control-Allow-Headers: Content-Type, Authorization

Domain Privacy & Security

DDoS Protection

All domains include DDoS protection:

  • Automatic traffic filtering
  • Rate limiting
  • IP reputation filtering
  • Challenge pages for suspicious traffic

DNS Security

Best practices:

  • ✅ Enable DNSSEC at your registrar
  • ✅ Use strong registrar credentials
  • ✅ Enable 2FA on domain registrar
  • ✅ Lock domain transfers
  • ✅ Use registry lock (for critical domains)

Domain Locking

Lock domain configuration to prevent unauthorized changes:

  1. Go to Domains → Select domain
  2. Enable Lock Domain
  3. Requires admin approval to modify

Access Control

Restrict domain access by:

IP Allowlist

Allow only from:
  203.0.113.0/24
  198.51.100.0/24

Password Protection

Username: admin
Password: ********

Geographic Restrictions

Block traffic from: [Countries]
Allow traffic from: [Countries]

Troubleshooting

Domain Not Working

Check DNS Configuration:

dig www.example.com

Verify it returns Parslinks nameservers.

Common issues:

  • DNS not propagated yet (wait up to 48h)
  • Wrong CNAME value
  • Proxy enabled on Cloudflare (disable for SSL verification)
  • DNS record not added at registrar

SSL Certificate Failed

Reasons:

  • Domain not pointing to Parslinks
  • CAA records blocking Let's Encrypt
  • Rate limit reached (too many certs)
  • Domain not verified

Solutions:

  1. Verify DNS is correct
  2. Check CAA records allow Let's Encrypt
  3. Wait 24 hours if rate limited
  4. Contact support if persistent

HTTPS Not Working

Check:

  • Wait for SSL certificate issuance (5-10 minutes)
  • Verify domain status is "Active"
  • Clear browser cache
  • Try incognito/private browsing

Domain Shows Wrong Content

Possible causes:

  • DNS cache (wait for TTL expiration)
  • Browser cache (hard refresh: Ctrl+Shift+R)
  • CDN cache (purge cache in settings)
  • Wrong domain assigned to project

DNS Propagation Slow

Speed up propagation:

  • Use lower TTL values (300 seconds)

  • Flush local DNS cache:

    # Windows
    ipconfig /flushdns
    
    # Mac
    sudo dscacheutil -flushcache
    
    # Linux
    sudo systemd-resolve --flush-caches
  • Wait up to 48 hours for global propagation

Best Practices

1. Use HTTPS Everywhere

✅ Always use HTTPS for production
✅ Enable Force HTTPS redirect
✅ Monitor certificate expiration

2. Configure www Redirect

Choose one primary domain:
  Option A: example.com (apex)
  Option B: www.example.com (www)

Redirect the other to primary

3. Use Apex Domain

✅ Recommended: example.com
❌ Avoid: www.example.com as primary

Reason: Cleaner, easier to remember.

4. Set Up Monitoring

Monitor your domains:

  • SSL certificate expiration
  • DNS configuration changes
  • Domain availability
  • Performance metrics

5. Document Configuration

Keep records of:

  • DNS settings
  • Domain registrar credentials
  • SSL certificate details
  • Redirect rules

Domain Limits

PlanCustom DomainsWildcard DomainsCustom SSL
Free1
ProUnlimited
TeamUnlimited
EnterpriseUnlimited

Frequently Asked Questions

Can I use a domain I already own?

Yes! Just add it to your project and configure DNS.

How long does DNS propagation take?

Usually 5-60 minutes, but can take up to 48 hours globally.

No. Buy domains from any registrar (GoDaddy, Namecheap, etc.) and connect them.

Can I use the same domain for multiple projects?

No. Each domain can only point to one project at a time.

What if my SSL certificate expires?

Certificates auto-renew. If renewal fails, you'll be notified.

Yes! Disable proxy (gray cloud) during SSL verification, then re-enable.

How do I transfer a domain from another host?

  1. Remove domain from old host
  2. Add to Parslinks
  3. Update DNS records
  4. Wait for propagation

Next Steps