Sube tu proyecto Nuxt, instala y construye desde el panel Node.js de Plesk, apunta la raíz del documento a .output/public y sirve páginas y rutas de API en Node.
Nuxt genera sus páginas en el servidor con Nitro, y en los planes Profesional y Avanzado eso corre bajo Node.js Toolkit sin tocar ninguna consola: subes el proyecto, el panel instala y construye, y el servidor arranca tu aplicación. Las rutas de API de server/api van en el mismo proceso. Esta guía sigue un despliegue real de Nuxt 4 en un subdominio del hosting; el camino es el mismo que en Astro (Cómo desplegar Astro con SSR en Node.js en tu plan Profesional o Avanzado) y Next.js (Cómo desplegar Next.js con SSR en tu hosting Profesional o Avanzado).
Antes de empezar
- Un plan Profesional o Avanzado (Qué incluye tu plan de hosting: recursos, límites y permisos) y un subdominio para la aplicación (Cómo crear un subdominio y qué puedes montar en él), con certificado (Cómo activar un certificado Let's Encrypt gratis en tu dominio). Al crear el subdominio, en Raíz del documento escribe
nuxten vez de la carpeta larga que propone el panel. - Tu proyecto Nuxt con la salida por defecto (
node-server): no hace falta ningún adaptador. Si tu web es estática (nuxt generate), no necesitas Node en el servidor: sube.output/publiccomo en Cómo publicar una web Astro en tu hosting sin Node en el servidor. - Comprueba en tu ordenador que
npm run buildtermina y quenode .output/server/index.mjssirve la web. Lo que no arranca ahí tampoco arrancará aquí.
Paso a paso
-
Sube el proyecto sin
node_modules,.nuxtni.outputa la carpetanuxt: un zip desde Archivos y Extraer archivos (Cómo publicar una web Astro en tu hosting sin Node en el servidor), o tu repositorio Git (Cómo desplegar tu web desde GitHub, GitLab o Bitbucket). Borra elindex.htmlde bienvenida de Plesk. -
En el subdominio, abre Node.js. Pulsa el valor de Archivo de inicio de la aplicación, escribe
.output/server/index.mjsy acepta. Avisará de que el archivo no existe: lo crea el build. -
Pulsa Activar Node.js y después Instalación de NPM. Tarda alrededor de un minuto.
-
Pulsa Ejecutar Script, escribe
buildy pulsa Ejecutar. En la ventana ves la salida de Nitro con la lista de archivos de.output/servery, al final, «Build complete!».
- Pulsa el valor de Raíz del documento, despliega la carpeta
nuxten el árbol, después.output, y eligepublic: ahí deja Nuxt los estáticos (_nuxt, imágenes,robots.txt) para que el servidor web los sirva sin pasar por Node. Al cambiarla, Plesk mueve la Raíz de la aplicación a.output: vuelve a ponerla ennuxt. El Archivo de inicio queda en.output/server/index.mjs.
- Pulsa Reiniciar app y abre
https://nuxt.tudominio.es. La primera petición tarda unos segundos (arranca Node); las siguientes salen al momento.
- Para actualizar: sube el código nuevo, Ejecutar Script →
buildy Reiniciar app. Si cambiaste dependencias, antes Instalación de NPM.
Cómo comprobar que ha funcionado
Recarga dos veces una página con algo dinámico (una hora, datos de una API): cambia en cada carga. Una ruta de server/api responde en JSON en https://nuxt.tudominio.es/api/lo-que-sea. Los archivos de /_nuxt/ y las imágenes de public cargan en 200 (F12 → Red). En el panel Node.js no queda ningún aviso rojo.
Si algo falla
- 503 o «Web application could not be started»: no existe
.output/server/index.mjs; el build falló. Repite el paso 4 y lee la salida hasta el error. - La página carga sin estilos ni JavaScript, o
/_nuxt/...da 404: la Raíz del documento no está en.output/public. Si en el árbol no ves.output, es que el build aún no ha terminado. - Todo da 404 después de cambiar la raíz del documento: la Raíz de la aplicación se quedó en
.output; ponla ennuxty reinicia. - Necesitas variables de entorno: Nuxt sobrescribe al arrancar cualquier clave de
runtimeConfigcon la variableNUXT_del mismo nombre (apiSecret→NUXT_API_SECRET,public.apiBase→NUXT_PUBLIC_API_BASE). En Variables de entorno personalizadas → especificar, y Reiniciar app; no hace falta reconstruir. - El build se queda sin memoria («JavaScript heap out of memory»): construye en tu ordenador y sube la carpeta
.outputya hecha; el panel solo la arranca. - Cualquier otra cosa: abre un ticket desde tu área de cliente (Cómo abrir un ticket de soporte y que se resuelva a la primera) con la salida del build o el error de la página.