184 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
		
		
			
		
	
	
			184 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
|  | # DNS Setup Guide for candivista.com
 | ||
|  | 
 | ||
|  | This guide will help you configure your domain name `candivista.com` to point to your VPS at `168.231.108.135`. | ||
|  | 
 | ||
|  | ## DNS Configuration
 | ||
|  | 
 | ||
|  | ### Required DNS Records
 | ||
|  | 
 | ||
|  | You need to add the following DNS records in your domain registrar's DNS management panel: | ||
|  | 
 | ||
|  | #### A Records
 | ||
|  | ``` | ||
|  | Type: A | ||
|  | Name: @ | ||
|  | Value: 168.231.108.135 | ||
|  | TTL: 300 (or default) | ||
|  | 
 | ||
|  | Type: A   | ||
|  | Name: www | ||
|  | Value: 168.231.108.135 | ||
|  | TTL: 300 (or default) | ||
|  | ``` | ||
|  | 
 | ||
|  | #### Optional CNAME Record (Alternative to www A record)
 | ||
|  | ``` | ||
|  | Type: CNAME | ||
|  | Name: www | ||
|  | Value: candivista.com | ||
|  | TTL: 300 (or default) | ||
|  | ``` | ||
|  | 
 | ||
|  | ### DNS Propagation
 | ||
|  | 
 | ||
|  | After adding these records: | ||
|  | 1. DNS changes can take 5 minutes to 48 hours to propagate globally | ||
|  | 2. You can check propagation status at: https://www.whatsmydns.net/ | ||
|  | 3. Test locally with: `nslookup candivista.com` and `nslookup www.candivista.com` | ||
|  | 
 | ||
|  | ## SSL Certificate Setup
 | ||
|  | 
 | ||
|  | ### Option 1: Let's Encrypt (Recommended)
 | ||
|  | 
 | ||
|  | 1. **Update your email in the SSL setup script:** | ||
|  |    ```bash | ||
|  |    # Edit nginx/ssl-setup.sh | ||
|  |    EMAIL="your-actual-email@example.com" | ||
|  |    ``` | ||
|  | 
 | ||
|  | 2. **Run the SSL setup:** | ||
|  |    ```bash | ||
|  |    chmod +x nginx/ssl-setup.sh | ||
|  |    ./nginx/ssl-setup.sh | ||
|  |    ``` | ||
|  | 
 | ||
|  | 3. **Deploy with SSL:** | ||
|  |    ```bash | ||
|  |    ./deploy-production.sh | ||
|  |    ``` | ||
|  | 
 | ||
|  | ### Option 2: Cloudflare (Alternative)
 | ||
|  | 
 | ||
|  | If you prefer using Cloudflare: | ||
|  | 
 | ||
|  | 1. **Add your domain to Cloudflare** | ||
|  | 2. **Point your nameservers to Cloudflare** | ||
|  | 3. **Enable SSL/TLS encryption mode: "Full (strict)"** | ||
|  | 4. **Update nginx configuration to use Cloudflare's origin certificates** | ||
|  | 
 | ||
|  | ## Verification Steps
 | ||
|  | 
 | ||
|  | ### 1. Check DNS Resolution
 | ||
|  | ```bash | ||
|  | # Check A record
 | ||
|  | nslookup candivista.com | ||
|  | nslookup www.candivista.com | ||
|  | 
 | ||
|  | # Check from different locations
 | ||
|  | dig candivista.com @8.8.8.8 | ||
|  | dig www.candivista.com @1.1.1.1 | ||
|  | ``` | ||
|  | 
 | ||
|  | ### 2. Test HTTP/HTTPS Access
 | ||
|  | ```bash | ||
|  | # Test HTTP (should redirect to HTTPS)
 | ||
|  | curl -I http://candivista.com | ||
|  | 
 | ||
|  | # Test HTTPS
 | ||
|  | curl -I https://candivista.com | ||
|  | 
 | ||
|  | # Test www subdomain
 | ||
|  | curl -I https://www.candivista.com | ||
|  | ``` | ||
|  | 
 | ||
|  | ### 3. SSL Certificate Verification
 | ||
|  | ```bash | ||
|  | # Check SSL certificate
 | ||
|  | openssl s_client -connect candivista.com:443 -servername candivista.com | ||
|  | 
 | ||
|  | # Test SSL Labs rating
 | ||
|  | # Visit: https://www.ssllabs.com/ssltest/analyze.html?d=candivista.com
 | ||
|  | ``` | ||
|  | 
 | ||
|  | ## Troubleshooting
 | ||
|  | 
 | ||
|  | ### Common Issues
 | ||
|  | 
 | ||
|  | 1. **DNS not resolving:** | ||
|  |    - Wait for propagation (up to 48 hours) | ||
|  |    - Check DNS records are correct | ||
|  |    - Verify TTL settings | ||
|  | 
 | ||
|  | 2. **SSL certificate issues:** | ||
|  |    - Ensure domain points to your server before running SSL setup | ||
|  |    - Check firewall allows ports 80 and 443 | ||
|  |    - Verify Let's Encrypt can reach your server | ||
|  | 
 | ||
|  | 3. **Nginx not starting:** | ||
|  |    - Check nginx configuration: `nginx -t` | ||
|  |    - Check logs: `docker logs candidat-nginx` | ||
|  |    - Verify SSL certificates exist | ||
|  | 
 | ||
|  | ### Useful Commands
 | ||
|  | 
 | ||
|  | ```bash | ||
|  | # Check nginx configuration
 | ||
|  | docker exec candidat-nginx nginx -t | ||
|  | 
 | ||
|  | # View nginx logs
 | ||
|  | docker logs candidat-nginx | ||
|  | 
 | ||
|  | # Restart nginx
 | ||
|  | docker-compose restart nginx | ||
|  | 
 | ||
|  | # Check all services
 | ||
|  | docker-compose ps | ||
|  | 
 | ||
|  | # View all logs
 | ||
|  | docker-compose logs -f | ||
|  | ``` | ||
|  | 
 | ||
|  | ## Security Considerations
 | ||
|  | 
 | ||
|  | 1. **Firewall Configuration:** | ||
|  |    - Only allow ports 80, 443, and SSH (22) | ||
|  |    - Block direct access to backend ports (8083, 3000, 3306) | ||
|  | 
 | ||
|  | 2. **SSL Security:** | ||
|  |    - The nginx configuration includes modern SSL settings | ||
|  |    - HSTS is enabled for security | ||
|  |    - Regular certificate renewal is automated | ||
|  | 
 | ||
|  | 3. **Rate Limiting:** | ||
|  |    - API endpoints are rate limited | ||
|  |    - Admin endpoints have stricter limits | ||
|  |    - Connection limits per IP are enforced | ||
|  | 
 | ||
|  | ## Monitoring
 | ||
|  | 
 | ||
|  | ### Health Checks
 | ||
|  | - Application health: `https://candivista.com/health` | ||
|  | - Nginx status: `https://candivista.com/nginx_status` (internal only) | ||
|  | 
 | ||
|  | ### Log Monitoring
 | ||
|  | ```bash | ||
|  | # Real-time access logs
 | ||
|  | docker exec candidat-nginx tail -f /var/log/nginx/access.log | ||
|  | 
 | ||
|  | # Error logs
 | ||
|  | docker exec candidat-nginx tail -f /var/log/nginx/error.log | ||
|  | 
 | ||
|  | # Application logs
 | ||
|  | docker-compose logs -f backend | ||
|  | docker-compose logs -f frontend | ||
|  | ``` | ||
|  | 
 | ||
|  | ## Next Steps
 | ||
|  | 
 | ||
|  | 1. **Configure your domain DNS records** as described above | ||
|  | 2. **Wait for DNS propagation** (check with whatsmydns.net) | ||
|  | 3. **Update your email** in the SSL setup script | ||
|  | 4. **Run the deployment script** to set up SSL and deploy | ||
|  | 5. **Test your application** at https://candivista.com | ||
|  | 6. **Set up monitoring** and regular backups |