How to Set Up a Custom Domain with Free SSL for Docker Containers
Connecting a custom domain to your Docker container is a foundational step toward running a production ready application. A custom domain improves credibility, strengthens branding, supports SEO, and ensures secure HTTPS access for users and APIs.
SnapDeploy simplifies this entire process. You can attach your own domain to a running container and receive a free SSL certificate automatically, without managing certificates, reverse proxies, or load balancers.
Why Custom Domains Matter for Containerized Applications
Running a container on a random subdomain may work during development, but production workloads require a stable and professional endpoint. A custom domain provides:
- Brand consistency across applications and services
- Better SEO indexing for public facing services
- Increased trust with HTTPS enabled by default
- Easier integration with third party services and webhooks
Prerequisites
Before starting, make sure you have:
- A Docker container already deployed on SnapDeploy
- Access to your domain's DNS settings
- A SnapDeploy Starter plan or higher
Every SnapDeploy container already includes a free subdomain like myapp.containers.snapdeploy.dev. Custom domains are an upgrade feature available on paid plans.
How Custom Domains Work on SnapDeploy
SnapDeploy follows a simple and reliable approach:
- You point your domain to SnapDeploy's proxy IP using an A record
- SnapDeploy verifies DNS ownership
- A free SSL certificate is issued automatically using Let's Encrypt
- HTTPS is enforced and certificates auto renew
This approach works for both root domains and subdomains without requiring CNAME flattening or external proxies.
Step by Step Guide
Step 1: Open Custom Domain Settings
Log in to your SnapDeploy dashboard and select the container you want to expose. Navigate to Container Settings → Custom Domains and click Add Domain.
Step 2: Enter Your Domain Name
Enter the full domain or subdomain you want to use:
api.example.comexample.com
SnapDeploy will generate an IP address for this domain mapping.
Step 3: Copy the Provided IP Address
SnapDeploy will display a public IPv4 address such as 52.XX.XX.XX. This is the IP your domain will point to.
Step 4: Configure DNS Using an A Record
Go to your DNS provider and add an A record:
- Type: A
- Name:
apifor api.example.com, or@for example.com - Value: SnapDeploy IP address
- TTL: Auto or 300
Step 5: Wait for DNS Propagation
DNS propagation typically completes within 5 to 30 minutes. SnapDeploy continuously checks until the record resolves correctly.
Step 6: Automatic SSL Certificate
Once DNS is verified, SnapDeploy automatically provisions a free SSL certificate using Let's Encrypt. No manual uploads, no renewal configuration, no downtime. SSL is usually active within 5 to 10 minutes after DNS propagation.
Step 7: Access Your Application
Your container is now available at https://yourdomain.com. All traffic is encrypted, and certificates renew automatically.
Why SnapDeploy Uses A Records Instead of CNAME
SnapDeploy relies on A records rather than CNAME records. This provides:
- Works with both root domains and subdomains
- Avoids CNAME flattening limitations
- Offers predictable routing for container workloads
- Improves reliability across DNS providers
DNS Provider Instructions
Cloudflare
Add an A record pointing to the SnapDeploy IP. Both DNS-only and Proxied modes work. If using proxied mode, set SSL to Full or Full Strict.
Namecheap
Go to Domain List → Advanced DNS. Add a new A record with @ for root or subdomain name. Set TTL to Automatic.
GoDaddy
Open DNS Management, add an A record with the SnapDeploy IP. Propagation usually completes within 10 to 20 minutes.
AWS Route 53
Open your hosted zone, create a new A record with alias disabled, paste the SnapDeploy IP address.
Plan Based Domain Limits
| Plan | Custom Domains |
|---|---|
| Free | 0 |
| Hobby | 0 |
| Starter | 2 |
| Pro | 5 |
| Business | Unlimited |
Competitor Comparison
| Platform | Free SSL | Root Domains | Setup Time |
|---|---|---|---|
| SnapDeploy | Yes | Yes (A record) | 5-10 min |
| Render | Yes | Needs workaround | 10-15 min |
| Railway | Yes | CNAME only | 10-15 min |
Troubleshooting
Domain Not Verifying
DNS propagation may still be in progress. Verify the A record points to the correct IP and ensure there are no conflicting records.
SSL Not Active
Wait a few more minutes after DNS verification. Confirm the domain resolves to the SnapDeploy IP. Avoid switching DNS records during provisioning.
Mixed Content Warnings
Ensure your application references HTTPS URLs. Update hardcoded HTTP assets and verify environment variables use HTTPS endpoints.
Conclusion
Setting up a custom domain with HTTPS for a Docker container does not need to involve complex infrastructure or manual certificate management.
SnapDeploy provides a clean, reliable workflow using A records and automatic SSL provisioning so your application is production ready in minutes.
Ready to Deploy?
Get 100 free hours to deploy and test your applications. No credit card required.
Get DevOps Tips & Updates
Container deployment guides, platform updates, and DevOps best practices. No spam.
Unsubscribe anytime. We respect your privacy.