Desplegar en Vercel
Es el despliegue actual de producción (vercel.json con framework: nextjs).
Pasos
- Importa el repositorio en Vercel (root directory:
init). Vercel detecta Next.js y pnpm. - En Settings → Environment Variables añade las de Variables de entorno
(como mínimo
JWT_SECRET,MONGODB_URI/MONGODB_URI_EU,MONGODB_DB_NAME,CRON_SECRET,GOOGLE_SCRIPT_URL,GOOGLE_SCRIPT_SECRET). - En MongoDB Atlas → Network Access, permite las IPs de Vercel (en planes sin IP fija:
0.0.0.0/0con usuario de base de datos con contraseña fuerte y permisos solo sobre esa base). - Despliega. Tras el primer despliegue, crea la cuenta owner ejecutando
pnpm bootstrap:owner …en tu máquina con las mismas variables de producción.
Crons
vercel.json define:
{ "path": "/api/cron/sales-follow-ups", "schedule": "0 0 * * *" }
Vercel añade Authorization: Bearer CRON_SECRET automáticamente si la variable existe.
La cola de verificación de emails necesita un latido cada ~10 minutos. En el plan Hobby los crons solo pueden ser diarios, así que ese latido lo da el disparador del Apps Script (ver Apps Script). En Pro puedes añadir en su lugar:
{ "path": "/api/cron/email-verification", "schedule": "*/10 * * * *" }
Con un cron de Vercel la llamada no lleva la cabecera de región; solo se procesa la región por defecto (
MONGODB_REGION_DEFAULT). Si usas Asia, sigue usando el disparador del Apps Script, que llama a ambas.
Regiones
Con clusters en Europa y Asia (Vercel Pro) puedes desplegar funciones cerca de cada uno: "regions": ["fra1", "sin1"]
en vercel.json y MONGODB_SPLIT_BY_REGION=true.
Tiempos máximos
Algunas rutas declaran maxDuration (enriquecimiento: 300 s; verificación: 60 s). En Hobby el máximo real es
menor: lotes de enriquecimiento grandes pueden cortarse; el panel ya limita a 5 empresas por petición.