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
-
Navigate to Project
- Go to your project dashboard
- Click Domains tab
-
Add Domain
- Click Add Domain
- Enter your domain name (e.g.,
myapp.com
orwww.myapp.com
) - Click Add
-
Configure DNS
- Follow the DNS configuration instructions
- Add the provided DNS records to your domain registrar
-
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
- Log into Cloudflare Dashboard
- Select your domain
- Go to DNS → Records
- Click Add record
- Configure:
Type: CNAME Name: www Target: cname.parslinks.app Proxy status: DNS only (gray cloud) TTL: Auto
- Click Save
Using GoDaddy
- Log into GoDaddy
- Go to My Products → DNS
- Click Add under DNS Records
- Configure:
Type: CNAME Name: www Value: cname.parslinks.app TTL: 1 Hour
- Click Save
Using Namecheap
- Log into Namecheap
- Go to Domain List → Manage
- Advanced DNS tab
- Click Add New Record
- Configure:
Type: CNAME Record Host: www Value: cname.parslinks.app TTL: Automatic
- Save changes
Using Route 53 (AWS)
- Open Route 53 Console
- Select hosted zone
- Click Create Record
- Configure:
Record name: www Record type: CNAME Value: cname.parslinks.app TTL: 300 Routing policy: Simple
- 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:
- Domain Verification: Parslinks verifies domain ownership
- Certificate Issuance: SSL certificate automatically requested
- Certificate Installation: Certificate installed on edge network
- HTTPS Enabled: Domain accessible via HTTPS
- 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:
- Go to Project Settings → Domains
- Enable Force HTTPS
- 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):
- Go to Domains → Custom SSL
- Click Upload Certificate
- Provide:
- Certificate (PEM format)
- Private key (PEM format)
- Certificate chain (optional)
- 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:
- Go to Domains → Select domain
- Click Configure Redirect
- Enter target domain
- Choose redirect type (301 or 302)
- Save
Example:
www.example.com → example.com (301 Permanent)
old-domain.com → new-domain.com (301 Permanent)
Removing Domains
- Go to Domains tab
- Find the domain
- Click ⋮ → Remove
- 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:
- Remove domain from current project
- Add domain to new project
- 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:
- Go to Project Settings → Git
- Enable Branch Domains
- 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:
- Go to Project Settings → Headers
- 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:
- Go to Domains → Select domain
- Enable Lock Domain
- 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:
- Verify DNS is correct
- Check CAA records allow Let's Encrypt
- Wait 24 hours if rate limited
- 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
Plan | Custom Domains | Wildcard Domains | Custom SSL |
---|---|---|---|
Free | 1 | ❌ | ❌ |
Pro | Unlimited | ✅ | ❌ |
Team | Unlimited | ✅ | ✅ |
Enterprise | Unlimited | ✅ | ✅ |
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.
Do I need to buy a domain from Parslinks?
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.
Can I use Cloudflare with Parslinks?
Yes! Disable proxy (gray cloud) during SSL verification, then re-enable.
How do I transfer a domain from another host?
- Remove domain from old host
- Add to Parslinks
- Update DNS records
- Wait for propagation