Files
Sankofa/docs/proxmox/CLOUDFLARE_DOMAIN_SETUP.md

145 lines
3.9 KiB
Markdown
Raw Permalink Normal View History

# Cloudflare Domain Setup Guide
**Last Updated**: 2024-12-19
## Current Status
The domain `sankofa.nexus` is **not currently in your Cloudflare account**. You need to add it before DNS records can be created.
## Option 1: Add Domain to Cloudflare (Recommended)
### Steps
1. **Log in to Cloudflare Dashboard**
- Go to: https://dash.cloudflare.com
- Log in with: `pandoramannli@gmail.com`
2. **Add Domain**
- Click "Add a Site" or "Add Site"
- Enter: `sankofa.nexus`
- Click "Add site"
3. **Choose Plan**
- Select a plan (Free plan is sufficient for DNS)
4. **Update Nameservers**
- Cloudflare will provide nameservers (e.g., `ns1.cloudflare.com`, `ns2.cloudflare.com`)
- Update your domain registrar to use these nameservers
- Wait for DNS propagation (can take up to 24 hours, usually much faster)
5. **Verify Domain is Active**
- Once nameservers are updated, Cloudflare will show the domain as "Active"
6. **Get Zone ID**
```bash
./scripts/get-cloudflare-info.sh
```
This will automatically retrieve and add the Zone ID to `.env`
7. **Create DNS Records**
```bash
./scripts/setup-dns-records.sh
```
## Option 2: Use Existing Domain
If you have another domain already in Cloudflare:
1. **Check Available Domains**
```bash
source .env
curl -s -X GET "https://api.cloudflare.com/client/v4/zones" \
-H "X-Auth-Email: ${CLOUDFLARE_EMAIL}" \
-H "X-Auth-Key: ${CLOUDFLARE_API_KEY}" | \
jq -r '.result[] | "\(.name) - Zone ID: \(.id)"'
```
2. **Update Configuration**
- Update `DOMAIN` in `.env` to use existing domain
- Update all configuration files that reference `sankofa.nexus`
## Option 3: Use Subdomain
If you want to use a subdomain of an existing domain:
1. **Identify Parent Domain**
- Check available zones (see Option 2)
2. **Create Subdomain Records**
- Use the parent domain's Zone ID
- Create records like `proxmox1.parent-domain.com`
3. **Update Configuration**
- Update `DOMAIN` in `.env`
- Update FQDNs in configuration files
## Verification
After adding the domain, verify it's accessible:
```bash
# Get Zone ID
./scripts/get-cloudflare-info.sh
# Check Zone ID in .env
grep ZONE_ID .env
# Create DNS records
./scripts/setup-dns-records.sh
```
## DNS Records to be Created
Once the domain is added, the script will create:
### For ml110-01 (192.168.11.10):
- `ml110-01.sankofa.nexus` → A record → 192.168.11.10
- `ml110-01-api.sankofa.nexus` → CNAME → ml110-01.sankofa.nexus
- `ml110-01-metrics.sankofa.nexus` → CNAME → ml110-01.sankofa.nexus
### For r630-01 (192.168.11.11):
- `r630-01.sankofa.nexus` → A record → 192.168.11.11
- `r630-01-api.sankofa.nexus` → CNAME → r630-01.sankofa.nexus
- `r630-01-metrics.sankofa.nexus` → CNAME → r630-01.sankofa.nexus
## Troubleshooting
### Domain Not Found
- **Issue**: Zone ID cannot be retrieved
- **Solution**: Add domain to Cloudflare account first
### Nameservers Not Updated
- **Issue**: Domain shows as "Pending" in Cloudflare
- **Solution**: Update nameservers at your domain registrar
### DNS Propagation Delay
- **Issue**: DNS records not resolving
- **Solution**: Wait for DNS propagation (usually 5-15 minutes, can take up to 24 hours)
### API Authentication Errors
- **Issue**: 401 or 403 errors
- **Solution**: Verify credentials in `.env` file are correct
## Next Steps
1. **Add Domain to Cloudflare** (if not already added)
2. **Update Nameservers** at domain registrar
3. **Wait for Activation** (domain status becomes "Active")
4. **Run Scripts**:
```bash
./scripts/get-cloudflare-info.sh
./scripts/setup-dns-records.sh
```
5. **Verify DNS Resolution**:
```bash
dig ml110-01.sankofa.nexus
dig r630-01.sankofa.nexus
```
## Related Documentation
- [Deployment Readiness](./DEPLOYMENT_READINESS.md)
- [Environment Variables](./ENVIRONMENT_VARIABLES.md)
- [DNS Configuration](./DNS_CONFIGURATION.md)