|
# 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
|