Skip to main content
Comfaca Créditos en Línea se compila con Nuxt 4 y se sirve mediante el preset node-server de Nitro, que genera un servidor Node.js autónomo en .output/server/index.mjs. El despliegue no requiere contenedores: basta con Node.js 20+, acceso a la base de datos MariaDB/MySQL y las variables de entorno correctamente configuradas.

Requisitos del Servidor

Antes de iniciar el proceso de build, asegúrate de que el servidor de destino cumpla los siguientes requisitos:
  • Node.js >= 20.x
  • pnpm >= 10.x
  • MariaDB >= 10.6 o MySQL >= 8.0 accesible desde el servidor
  • Acceso SFTP al servidor de documentos (para almacenamiento de archivos adjuntos)
  • Variables de entorno de producción configuradas en el entorno o en un archivo .env

Build de Producción

1

Configurar las variables de entorno de producción

Copia la plantilla de variables de entorno y edítala con los valores reales de producción. Presta especial atención a las variables marcadas como críticas en la sección de Variables de Entorno de Producción.
2

Instalar dependencias

Usa el flag --frozen-lockfile para garantizar que las versiones instaladas coincidan exactamente con el pnpm-lock.yaml del repositorio, evitando actualizaciones no controladas en producción.
3

Generar el cliente Prisma

Prisma genera el cliente tipado a partir del esquema prisma/schema.prisma. Este paso es obligatorio después de cualquier install limpio.
4

Ejecutar las migraciones de base de datos

Aplica todas las migraciones pendientes sobre la base de datos de producción. Asegúrate de que DATABASE_URL apunte a la base de datos correcta antes de ejecutar este comando.
5

Compilar la aplicación

Nuxt invoca Vite para el bundle del cliente y Rollup vía Nitro para el servidor. El resultado queda en .output/:
Tras el build, la carpeta .output/ contiene:
6

Iniciar el servidor

Lanza el servidor Node.js directamente desde el artefacto generado. Nitro gestiona las rutas de API y las páginas SSR de forma autónoma.
El servidor escucha en el puerto definido por NUXT_PORT (por defecto 3000). Puedes cambiar el host con NUXT_HOST.

Variables de Entorno de Producción

Las siguientes variables son críticas para la seguridad y el correcto funcionamiento en producción. Una configuración incorrecta puede exponer datos de usuarios o inutilizar la autenticación.
Nunca establezcas MAIL_REJECT_UNAUTHORIZED=false en producción. Esta opción desactiva la verificación del certificado TLS del servidor SMTP y solo debe usarse para diagnóstico en entornos locales.

Daemon de Monitoreo de Firmas

El proceso server/nohup/app.ts es un daemon independiente que monitorea en tiempo real el estado de las firmas electrónicas pendientes. En producción debe ejecutarse como proceso de fondo separado al servidor Nuxt:
Este comando lanza el proceso con nohup y redirige tanto stdout como stderr al archivo de log storage/logs/nohup-firmas.log:
Para verificar que el proceso está activo:
Asegúrate de que el directorio storage/logs/ exista y tenga permisos de escritura antes de iniciar el daemon.

Health Check

El servidor expone el endpoint GET /api/health para monitoreo externo. Retorna el estado general de la aplicación incluyendo si el sistema está en línea o en mantenimiento:
El campo status puede ser "ok" o "maintenance" según el valor de la clave status_online en la tabla de configuraciones. Configura tu balanceador de carga o monitor de uptime para hacer polling a este endpoint cada 30–60 segundos.

Prerender y Rutas Dinámicas

La configuración de Nitro en nuxt.config.ts define qué rutas se prerrenderizan en build time y cuáles siempre se sirven de forma dinámica en el servidor:
Las rutas /admin/** y /dash/** requieren autenticación y datos en tiempo real, por lo que siempre se sirven desde el servidor Node.js. crawlLinks: false evita que Nitro rastree y prerrendere páginas de forma automática, dejando el control explícito en el array routes. La regla adicional en routeRules desactiva ISR para el dashboard de usuario:

PM2 (Opcional)

Para gestionar el ciclo de vida del proceso Node.js en producción, PM2 ofrece reinicio automático ante fallos, gestión de logs y monitoreo de métricas. El siguiente archivo de ecosistema sirve como punto de partida:
Antes de desplegar en el servidor de producción, puedes verificar que el build es funcional ejecutando pnpm preview en tu máquina local. Este comando sirve la carpeta .output/ generada por pnpm build en http://localhost:3000, permitiéndote detectar errores de configuración sin afectar el entorno productivo.