Migrar desde Vercel
En Zenavo, una aplicación Next.js se ejecuta como un único servidor que está siempre en marcha (next start) en lugar de funciones serverless, y un sitio estático lo sirve Caddy. La mayoría de aplicaciones se trasladan sin cambiar el código.
Equivalencias entre Vercel y Zenavo
| Vercel | Zenavo |
|---|---|
| Proyecto | Un servicio en un proyecto |
| Despliegues Git de la rama de producción | Desplegar con cada push |
| Despliegues de vista previa | Sin equivalente: añade un servicio que siga otra rama, o clona el proyecto |
| Serverless y Edge Functions | Parte del único servidor de Next.js |
| Variables de entorno | Variables; NEXT_PUBLIC_* como argumentos de compilación |
Redirects, rewrites y headers de vercel.json | next.config.js, o la configuración de tu servidor estático |
| Vercel Postgres, KV, Blob | Sigue con el proveedor, o pasa a servicios de base de datos |
| Cron Jobs | Aún no hay tareas programadas: ejecuta un servicio worker con un planificador |
1. Despliega la aplicación
- Añade un servidor y crea un proyecto.
- Add Service → GitHub, elige el repositorio y define el directorio raíz si la aplicación está en un monorepo.
- Sigue la guía de Next.js o de Sitios estáticos: Next.js se compila con
next buildy arranca connext start; Vite y otras compilaciones estáticas se sirven desde su carpeta de salida.
Lo que se comporta distinto que en Vercel:
- La regeneración estática incremental y la caché de imágenes funcionan con
next start, pero su caché vive en el contenedor y empieza vacía tras cada despliegue. - El middleware se ejecuta en el servidor Node.js, no en una ubicación edge.
- Los redirects, rewrites y headers de
vercel.jsonno se leen. Pásalos aredirects(),rewrites()yheaders()ennext.config.js.
2. Copia las variables
vercel env pull .env.production --environment=productionPega las líneas en la pestaña Variable del servicio → Edit Raw Variables, sin las VERCEL_*. Pasa todas las variables NEXT_PUBLIC_* (y VITE_* en sitios estáticos) a Settings → Build → Build arguments, porque se necesitan al compilar. Borra el archivo después.
3. Datos
Las bases de datos del Marketplace de Vercel (Neon, Upstash, Supabase y otras) siguen funcionando desde Zenavo con sus cadenas de conexión. Para traer PostgreSQL a tu servidor, vuélcalo en SQL plano con pg_dump --no-owner --no-acl "$POSTGRES_URL" | gzip > vercel.sql.gz, y súbelo y restáuralo en la pestaña Backup & Restore de un nuevo servicio PostgreSQL (Subir una copia de seguridad).
4. Cambia el dominio
Asocia el dominio en Networking y apúntalo al servidor con un registro A. Si el dominio usa los servidores de nombres de Vercel, cambia el registro en Vercel DNS o traslada antes los servidores de nombres (Dominios y HTTPS).