Appearance
Custom Domains
Quick Setup
- Add your domain to
exodus.yml:
yaml
targets:
default:
server: my-vps
domain:
- example.com
- www.example.com- Add DNS records at your registrar:
| Type | Name | Value |
|---|---|---|
| A | @ | YOUR_SERVER_IP |
| A | www | YOUR_SERVER_IP |
- Deploy:
bash
exodus deployDNS Propagation
DNS changes can take 1-48 hours to propagate globally. Most propagate within 5-30 minutes.
Deploy After DNS
SSL certificates are provisioned on first deploy. If DNS hasn't propagated yet, SSL will fail. Wait for DNS to resolve, then redeploy.
Common Providers
Cloudflare
- Go to DNS settings
- Add A record:
@→YOUR_SERVER_IP - Add A record:
www→YOUR_SERVER_IP
Cloudflare Proxy
If using Cloudflare proxy (orange cloud), set SSL/TLS mode to Full or Full (Strict) to avoid redirect loops.
Namecheap
- Go to Domain List → Manage → Advanced DNS
- Add A record:
@→YOUR_SERVER_IP - Add A record:
www→YOUR_SERVER_IP
GoDaddy
- Go to My Products → DNS
- Add A record:
@→YOUR_SERVER_IP - Add A record:
www→YOUR_SERVER_IP
Google Domains / Squarespace
- Go to DNS settings
- Add A record:
@→YOUR_SERVER_IP - Add A record:
www→YOUR_SERVER_IP
Subdomains
For subdomains like app.example.com:
yaml
targets:
default:
domain:
- app.example.comDNS record:
| Type | Name | Value |
|---|---|---|
| A | app | YOUR_SERVER_IP |
Multiple Domains
Point multiple domains to the same project:
yaml
targets:
default:
domain:
- example.com
- www.example.com
- myapp.io
- www.myapp.ioEach domain needs its own A records pointing to your server.
Wildcard Domains
Not currently supported. Add each subdomain explicitly.
Troubleshooting
ERR_SSL_PROTOCOL_ERROR / SSL_ERROR_RX_RECORD_TOO_LONG
SSL certificate failed to provision. DNS wasn't ready when you deployed.
Fix: Wait for DNS propagation, then redeploy:
bash
exodus deployERR_TOO_MANY_REDIRECTS (HTTP 301/302 loop)
Cloudflare proxy with wrong SSL setting.
Fix: Set Cloudflare SSL/TLS mode to Full or Full (Strict).
ERR_CONNECTION_REFUSED / ERR_CONNECTION_TIMED_OUT
Domain not pointing to your server, or firewall blocking.
Fix:
- Verify DNS:
dig example.com +shortshould return your server IP - Check firewall:
exodus sshthensudo ufw status
502 Bad Gateway
Container crashed or not running.
Fix:
bash
exodus ps # Check if container is running
exodus logs # Check for errors
exodus restart # Restart container404 Not Found
Caddy not configured for this domain.
Fix: Redeploy to regenerate Caddy config:
bash
exodus deployDNS Not Resolving (NXDOMAIN)
- Check DNS records are correct at registrar
- Wait for propagation (check dnschecker.org)
- Verify:
dig example.com +short
Wrong IP / Old Site Showing
Cached DNS records. Wait for TTL to expire, or flush local DNS:
bash
# macOS
sudo dscacheutil -flushcache
# Linux
sudo systemd-resolve --flush-caches
# Windows
ipconfig /flushdns