Railway to Vercel Deployment Chain

Configuración para despliegue automático en cadena: Railway (API) → Vercel (Frontend).

Objetivo

Cuando Railway termine de desplegar la API exitosamente, automáticamente disparar el deployment del frontend en Vercel.

Configuración en Railway

1. Obtener el Webhook de Vercel

Primero necesitas el webhook URL de Vercel:

En tu proyecto de Vercel, ve a Settings → Git → Deploy Hooks

URL del webhook de Vercel: https://api.vercel.com/v1/integrations/deploy/[hook-id]

2. Configurar Webhook en Railway

Usando Railway CLI:

  • railway login
  • railway link [your-project-id]

O en la Railway Dashboard: Project → Settings → Webhooks → Add Webhook

3. Configuración Avanzada con Middleware

Si necesitas más control, puedes crear un endpoint intermedio que maneje la lógica de cuándo disparar el webhook de Vercel.

Configuración en Vercel

1. Deploy Hook

En Vercel Dashboard:

  1. Project → Settings → Git → Deploy Hooks
  2. Create Hook
  3. Name: "Railway API Ready"
  4. Branch: staging
  5. Copy the webhook URL

2. Environment Variables

Asegúrate de que Vercel tenga las variables correctas:

  • NEXT_PUBLIC_GRAPHQL_URL - URL de tu API en Railway
  • NEXT_PUBLIC_SUPABASE_URL
  • NEXT_PUBLIC_SUPABASE_ANON_KEY

3. Build Command Override (Opcional)

Si necesitas esperar que la API esté lista antes de hacer build, puedes crear un script que verifique la disponibilidad de la API.

Flujo Completo

  1. GitHub Push to staging
  2. Railway detects change
  3. Railway builds & deploys API
  4. Deployment Success?
  5. Railway webhook triggered
  6. Vercel receives webhook
  7. Vercel builds & deploys Frontend
  8. Both deployed!

Comandos Útiles

Verificar Webhooks

  • railway webhooks list - Listar webhooks en Railway
  • Test webhook manualmente con curl

Debug

  • railway logs - Ver logs de Railway
  • vercel logs [deployment-url] - Ver logs de Vercel

Consideraciones

Timing

  • Railway deployment: ~2-5 minutos
  • Webhook trigger: ~5-10 segundos
  • Vercel deployment: ~1-3 minutos

Error Handling

  • Si Railway falla → No se dispara Vercel
  • Si Vercel falla → Railway ya está desplegado (OK)
  • Webhook falla → Puedes disparar Vercel manualmente

Ambientes

  • Railway: ENVIRONMENT=staging
  • Vercel: VERCEL_ENV=preview (para staging)
  • Vercel: VERCEL_ENV=production (para main)

Resultado

Una vez configurado:

  1. Push a staging → Railway despliega API automáticamente
  2. API lista → Webhook dispara Vercel automáticamente
  3. Frontend desplegado con API actualizada

¡No más deployments manuales ni tiempos de espera fijos!