Docs

Dominios y DNS

Tabla de Contenidos

  1. Dominio Raiz
  2. Mapa de Subdominios
  3. Convencion de Nombres
  4. Tipos de Registros DNS
  5. Arbol de Subdominios por Ambiente
  6. Flujo de Resolucion DNS
  7. Configuracion Cloudflare
  8. Troubleshooting DNS

1. Dominio Raiz

El dominio principal de Nvito es nvito.mx, registrado y gestionado integramente a traves de Cloudflare Registrar. Esta decision consolida DNS, proxy, SSL, WAF y registrar en un solo proveedor, eliminando la necesidad de coordinar nameservers entre servicios.

CampoValor
Dominionvito.mx
RegistrarCloudflare Registrar
NameserversCloudflare (automatico al usar CF Registrar)
RenovacionAnual (~$10.11 USD/ano para .mx)
WHOIS PrivacyIncluido por Cloudflare
DNSSECHabilitado automaticamente

Por que Cloudflare Registrar

Cloudflare cobra el precio de costo del registro de dominio sin markup. Al tener el dominio y el DNS en el mismo proveedor, no hay propagacion de nameservers y los cambios DNS toman efecto en segundos.

2. Mapa de Subdominios

Nvito utiliza 16 subdominios distribuidos en 3 ambientes (produccion, DEV y TEST). Cada subdominio apunta a un servicio especifico con un proposito bien definido.

2.1 Produccion

SubdominioServicioHostingAccesoDescripcion
nvito.mxLanding pageCloudflare PagesPublicoSitio institucional y marketing
app.nvito.mxnvito-pwaRailwayPublicoProgressive Web App para invitados y anfitriones
inv.nvito.mxnvito-invitationsRailwayPublicoMicrositios de invitaciones generados por el motor
api.nvito.mxCloudflare Worker → RailwayWorker proxyPublico (API)API REST backend, protegida por Worker que oculta el origin
cdn.nvito.mxCloudflare R2R2 Custom DomainPublicoImagenes, assets, templates HTML de invitaciones
admin.nvito.mxnvito-adminRailwayPrivado (CF Access + Clerk)Panel administrativo para gestion de eventos
docs.nvito.mxnvito-docsCloudflare PagesPrivado (CF Access)Documentacion tecnica y de negocio

2.2 DEV (rama develop)

SubdominioServicioHostingAcceso
dev-api.nvito.mxnvito-api (dev)VPS + CoolifyPublico (API)
dev-admin.nvito.mxnvito-admin (dev)VPS + CoolifyPrivado (CF Access + Clerk)
dev-app.nvito.mxnvito-pwa (dev)VPS + CoolifyPublico
dev-inv.nvito.mxnvito-invitations (dev)VPS + CoolifyPublico

2.3 TEST (rama test)

SubdominioServicioHostingAcceso
test-api.nvito.mxnvito-api (test)VPS + CoolifyPublico (API)
test-admin.nvito.mxnvito-admin (test)VPS + CoolifyPrivado (CF Access + Clerk)
test-app.nvito.mxnvito-pwa (test)VPS + CoolifyPublico
test-inv.nvito.mxnvito-invitations (test)VPS + CoolifyPublico

admin siempre protegido

Independientemente del ambiente, admin.nvito.mx, dev-admin.nvito.mx y test-admin.nvito.mx estan protegidos con Cloudflare Access (Zero Trust). El acceso publico directo esta bloqueado; se requiere autenticacion via email OTP antes de llegar a Clerk.

3. Convencion de Nombres

La convencion de nombres sigue un patron predecible que permite identificar inmediatamente el ambiente y el servicio de cualquier subdominio.

Produccion

{servicio}.nvito.mx

Donde {servicio} es uno de: app, inv, api, cdn, admin, docs. El dominio raiz nvito.mx se reserva para la landing page.

Ambientes no productivos

{env}-{servicio}.nvito.mx

Donde {env} es dev o test, y {servicio} es el mismo identificador que en produccion.

Ejemplos

PatronProduccionDEVTEST
API Backendapi.nvito.mxdev-api.nvito.mxtest-api.nvito.mx
Panel Adminadmin.nvito.mxdev-admin.nvito.mxtest-admin.nvito.mx
Invitacionesinv.nvito.mxdev-inv.nvito.mxtest-inv.nvito.mx
PWAapp.nvito.mxdev-app.nvito.mxtest-app.nvito.mx

Consistencia con variables de entorno

Las variables CORS_ORIGINS, FRONTEND_URL y CDN_URL en cada ambiente siguen exactamente esta convencion. Si se agrega un nuevo servicio, el subdominio debe seguir el mismo patron.

4. Tipos de Registros DNS

Nvito utiliza 4 tipos principales de registros DNS en Cloudflare, cada uno con un proposito distinto.

4.1 Registro A (Address)

Apunta un subdominio a una direccion IPv4 fija. Se usa para los subdominios que apuntan al VPS de Contabo donde corre Coolify.

dev-api.nvito.mx      A    212.28.185.197    Proxied
dev-admin.nvito.mx    A    212.28.185.197    Proxied
test-api.nvito.mx     A    212.28.185.197    Proxied
test-admin.nvito.mx   A    212.28.185.197    Proxied

Todos apuntan a la misma IP del VPS. Traefik (dentro de Coolify) rutea al contenedor correcto segun el header Host.

4.2 Registro CNAME (Canonical Name)

Apunta un subdominio a otro dominio (alias). Se usa para servicios managed que proveen su propio dominio.

nvito.mx              CNAME    nvito-landing.pages.dev         # Cloudflare Pages
docs.nvito.mx         CNAME    nvito-docs.pages.dev            # Cloudflare Pages
cdn.nvito.mx          CNAME    {account}.r2.cloudflarestorage.com  # R2 Custom Domain
app.nvito.mx          CNAME    {service}.up.railway.app        # Railway (futuro)

4.3 Registro TXT (Text)

Almacena texto arbitrario. Se usa principalmente para verificacion de propiedad y seguridad de email.

nvito.mx              TXT    "v=spf1 include:_spf.google.com ~all"
_dmarc.nvito.mx       TXT    "v=DMARC1; p=quarantine; rua=mailto:dmarc@nvito.mx"
RegistroProposito
SPFDefine que servidores pueden enviar email en nombre de nvito.mx
DMARCPolitica de validacion de email: quarantine para mensajes que fallen SPF/DKIM

4.4 Registro MX (Mail Exchange)

Define los servidores de correo entrante. Actualmente no se recibe correo en nvito.mx, pero se configura si se necesita en el futuro.

5. Arbol de Subdominios por Ambiente

6. Flujo de Resolucion DNS

Cuando un usuario accede a cualquier subdominio de Nvito, el flujo de resolucion pasa por Cloudflare antes de llegar al origin server.

Puntos clave del flujo

  1. Anycast: Cloudflare utiliza una red Anycast global. El DNS siempre resuelve a la IP del edge node mas cercano al usuario, no a la IP real del origin.
  2. Proxy mode: Todos los subdominios tienen el proxy de Cloudflare habilitado (icono naranja en el dashboard). Esto oculta la IP real del origin.
  3. SSL termination: Cloudflare termina SSL en el edge y re-encripta la conexion al origin (modo Full).
  4. Cache: Los assets estaticos (imagenes, CSS, JS) se cachean en el edge. Las respuestas de API no se cachean.

7. Configuracion Cloudflare

7.1 SSL/TLS

ConfiguracionValorDescripcion
Modo SSLFull (Strict)Cloudflare verifica el certificado del origin
Always Use HTTPSHabilitadoRedirect automatico HTTP → HTTPS
Minimum TLS Version1.2Rechaza conexiones TLS 1.0 y 1.1
HSTSHabilitadomax-age=31536000; includeSubDomains
Automatic HTTPS RewritesHabilitadoReescribe URLs http:// en el HTML

7.2 Proxy Mode

Todos los subdominios activos tienen el proxy de Cloudflare habilitado (icono naranja). Esto significa que:

  • La IP real del origin nunca se expone en respuestas DNS publicas
  • Todo el trafico pasa por el edge de Cloudflare para DDoS protection, WAF y cache
  • Los headers CF-Connecting-IP y X-Forwarded-For contienen la IP real del cliente

Nunca desactivar proxy mode en produccion

Si se desactiva el proxy (icono gris / DNS Only), la IP real del origin queda expuesta y se pierde toda la proteccion de Cloudflare: WAF, DDoS, SSL edge, Access. Solo se usa DNS Only para registros MX o TXT que no soportan proxy.

7.3 TTL de Registros DNS

ContextoTTLRazon
Proxied recordsAuto (300s)Cloudflare controla el TTL cuando el proxy esta activo
DNS Only records3600s (1h)TTL estandar para registros no proxied (MX, TXT)

Cuando un registro esta proxied, Cloudflare ignora el TTL configurado y usa su propio (tipicamente 300 segundos). Esto permite propagacion rapida de cambios.

7.4 Page Rules y Configuration Rules

ReglaAplica aConfiguracion
Cache Level: Standardcdn.nvito.mx/*Cache agresivo para assets estaticos
Browser Cache TTL: 4hcdn.nvito.mx/*Assets cached en el browser 4 horas
Security Level: Highapi.nvito.mx/*Challenge sospechosos antes de llegar al API
Cache Level: Bypassapi.nvito.mx/v1/*Nunca cachear respuestas de la API REST

8. Troubleshooting DNS

8.1 Propagacion DNS

Problema: Un cambio de DNS no se refleja inmediatamente.

Diagnostico:

# Verificar resolucion actual
dig admin.nvito.mx +short

# Verificar directamente contra nameservers de Cloudflare
dig @1.1.1.1 admin.nvito.mx +short

# Verificar TTL restante
dig admin.nvito.mx +noall +answer

Solucion: Los registros proxied de Cloudflare propagan en segundos. Si el cambio no se refleja, limpiar cache DNS local (sudo dscacheutil -flushcache en macOS) y verificar que no haya cache del browser.

8.2 Error 526 (Invalid SSL Certificate)

Problema: Cloudflare muestra error 526 al acceder a un subdominio.

Causa: El modo SSL esta en "Full (Strict)" pero el origin no tiene un certificado valido.

Solucion:

  1. Verificar que el origin tiene SSL (Let's Encrypt via Coolify/Traefik, o Railway auto-SSL)
  2. Si el certificado expiro, renovar en Coolify o cambiar temporalmente a modo "Full" (sin Strict)
  3. Para origins sin SSL propio, usar un Cloudflare Origin Certificate (15 anos, gratuito)

8.3 Proxy Mode vs DNS Only

Problema: Un subdominio no carga o muestra timeout.

Diagnostico: Verificar si el registro esta proxied:

# Si retorna IP de Cloudflare (104.x.x.x, 172.x.x.x) → proxied
# Si retorna IP del VPS (212.28.185.197) → DNS Only
dig admin.nvito.mx +short

Causa comun: Si el registro esta en DNS Only, el trafico va directo al VPS sin pasar por Cloudflare. Si el VPS no tiene SSL configurado para ese dominio, el navegador rechaza la conexion.

8.4 Cache de Cloudflare

Problema: Cambios en la aplicacion no se reflejan en el navegador.

Solucion:

  1. Purge cache en Cloudflare: Dashboard > Caching > Purge Everything (o por URL especifica)
  2. Development Mode: Activar temporalmente en Cloudflare para bypass de cache (3 horas)
  3. Verificar headers de cache: curl -I https://cdn.nvito.mx/path/to/asset y revisar CF-Cache-Status
CF-Cache-StatusSignificado
HITServido desde cache de Cloudflare
MISSOrigin consultado, respuesta cacheada para proximas requests
BYPASSCache deshabilitado para esta ruta
DYNAMICContenido dinamico, no cacheable
EXPIREDCache existia pero el TTL expiro, se re-valido con origin
Esta pagina fue util?