Skip to content

Instantly share code, notes, and snippets.

@SyNeto
Last active November 19, 2025 19:02
Show Gist options
  • Select an option

  • Save SyNeto/ffb26a1d7e87bbcd00fd1b275690e0f2 to your computer and use it in GitHub Desktop.

Select an option

Save SyNeto/ffb26a1d7e87bbcd00fd1b275690e0f2 to your computer and use it in GitHub Desktop.
Checklist: Migración DNS ernjv.me de GoDaddy a Cloudflare

Checklist: Migración DNS ernjv.me de GoDaddy a Cloudflare

Pre-migración

  • Crear cuenta en Cloudflare (https://dash.cloudflare.com/sign-up)
  • Tener acceso a GoDaddy para cambiar nameservers
  • Verificar que ProtonMail está funcionando (enviar email de prueba)

Paso 1: Agregar dominio a Cloudflare

  • En Cloudflare Dashboard → "Add a site"
  • Ingresar ernjv.me
  • Seleccionar plan Free
  • Esperar escaneo automático de registros DNS

Paso 2: Verificar registros importados

Cloudflare debería importar automáticamente. Verificar que existan:

ProtonMail (CRÍTICO - no modificar)

  • MX @mail.protonmail.ch (Priority: 10)
  • MX @mailsec.protonmail.ch (Priority: 20)
  • TXT @v=spf1 include:_spf.protonmail.ch mx ~all
  • TXT @protonmail-verification=e95282e4d789648901889db11d96790faa170e50
  • TXT _dmarcv=DMARC1; p=quarantine
  • CNAME protonmail._domainkeyprotonmail.domainkey.dm7p5kz32i3p5ipcmvqqz3w5js7a3dsnp2gpbh3n572nrwy3t2uiq.domains.proton.ch

AWS Global Accelerator (CONSERVAR TEMPORALMENTE)

⚠️ NO eliminar todavía - Estos registros mantienen tu producción actual funcionando:

  • A @76.223.105.230 (verificar que existe)
  • A @13.248.243.5 (verificar que existe)
  • CNAME wwwernjv.me (verificar que existe)

Se reemplazarán con Terraform cuando configuremos DO App Platform para producción


Paso 3: Cambiar Nameservers en GoDaddy

  • Ir a GoDaddy → DNS Management → Nameservers
  • Cambiar de "Default" a "Custom"
  • Ingresar los nameservers de Cloudflare:
    • mark.ns.cloudflare.com
    • melinda.ns.cloudflare.com
  • Guardar cambios

Paso 4: Esperar propagación

  • En Cloudflare, hacer clic en "Check nameservers"
  • Esperar confirmación (puede tomar 1-48 horas, usualmente <1 hora)
  • Verificar con: dig ernjv.me NS +short
    • Debe mostrar: mark.ns.cloudflare.com y melinda.ns.cloudflare.com

Paso 5: Verificar servicios (CRÍTICO)

Email

  • Enviar email de prueba a tu dirección @ernjv.me
  • Verificar que llega correctamente
  • Enviar email desde @ernjv.me y verificar que no va a spam

Producción actual


Paso 6: Obtener credenciales para Terraform

  • En Cloudflare → My Profile → API Tokens
  • Crear token con permisos:
    • Zone:DNS:Edit
    • Zone:Zone:Read
  • Guardar el token de forma segura
  • Obtener Zone ID de ernjv.me (en Overview del dominio)

Post-migración (Terraform) - SIGUIENTE FASE

Una vez confirmada la migración, configuraremos en Terraform:

  • Agregar provider Cloudflare
  • Configurar registros para producción (@ y www) → Esto reemplazará los A de AWS
  • Configurar registro para staging
  • Configurar wildcard para *.testing.ernjv.me
  • Integrar con flujos de ephemeral environments
  • Eliminar registros antiguos de AWS

Rollback (si algo falla)

Si hay problemas con el email o producción:

  1. En GoDaddy, revertir nameservers a:
    • ns73.domaincontrol.com
    • ns74.domaincontrol.com
  2. Esperar propagación
  3. Investigar el problema en Cloudflare

Notas importantes

  • NO eliminar los registros A de AWS hasta configurar producción en DO App Platform
  • NO modificar los registros de ProtonMail durante la migración
  • Proxy (nube naranja): Dejar en "DNS only" (nube gris) para MX y registros de email
  • TTL: Cloudflare usa TTL automático, está bien
  • La propagación DNS puede tomar hasta 48 horas, pero usualmente es <1 hora

Resumen del flujo

AHORA (GoDaddy)          DESPUÉS (Cloudflare)       FUTURO (Terraform)
─────────────────        ────────────────────       ──────────────────
A → AWS (prod)     →     A → AWS (prod)       →     CNAME → DO App Platform
MX → ProtonMail    →     MX → ProtonMail      →     MX → ProtonMail (sin cambios)
                                                     CNAME staging → DO
                                                     CNAME *.testing → DO

Contacto de soporte

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment