Español

Blog · Guías de despliegue

Cómo desplegar una app Nuxt en 2026: un comando, un servidor Node y HTTPS

Por el equipo de Pethost · · Actualizado · 8 min de lectura

Tienes una app Nuxt que funciona con npm run dev, y quieres ponerla en línea en una dirección con HTTPS, renderizando en el servidor. En Pethost es un comando, pethost deploy, ejecutado en la carpeta que tiene package.json. Él escribe el Dockerfile por ti, ejecuta nuxt build e inicia el servidor que deja el build. El starter del propio Nuxt se construyó e inició en 53 s la primera vez.

En resumen
  • Un comando: pethost deploy en la carpeta que tiene package.json. No hay preset que elegir ni script de inicio que agregar.
  • Qué hace: encuentra nuxt y el script que ejecuta nuxt build, escribe un Dockerfile que lo ejecuta e inicia node .output/server/index.mjs.
  • El puerto: el servidor de Nuxt escucha en el 3000. Pethost lo detecta y envía la dirección ahí, por HTTPS.
  • La dirección: https://nuxt-app.yourname.pethost.app desde el primer momento. Tu propio dominio es un registro DNS.
  • El precio: 9,99 € al mes por 2 vCPU, 3 GB y 30 GB, para esta app y cada uno de tus otros proyectos. No hay plan gratuito.

Qué necesitas para desplegar una app Nuxt en 2026

Tres cosas: la app, el comando pethost y una cuenta de Pethost.

La app aquí es la que deja la página de instalación de Nuxt, con la plantilla mínima y npm:

npm create nuxt@latest nuxt-app

El comando escribe nuxt.config.ts, la carpeta app/ y un package.json con estos scripts. Ninguno es un script de inicio, y no hace falta ninguno:

"scripts": {
  "build": "nuxt build",
  "dev": "nuxt dev",
  "generate": "nuxt generate",
  "preview": "nuxt preview",
  "postinstall": "nuxt prepare"
}

El comando es un solo programa, que se instala con una línea. Todos sus comandos están en la referencia de la CLI.

curl -fsSL https://pethost.dev/install.sh | sh      # macOS, Linux
irm https://pethost.dev/install.ps1 | iex           # Windows, in PowerShell

La cuenta necesita un plan. Si no has iniciado sesión, pethost deploy abre tu navegador e inicia sesión por ti. Si aún no tienes plan, te muestra dónde elegir uno, y espera.

Despliega la app Nuxt con un comando

Ve a la carpeta que tiene package.json y ejecuta pethost deploy. Esta es la pantalla entera, para el starter:

$ cd nuxt-app
$ pethost deploy
Name it [nuxt-app]:    it will live at https://nuxt-app.sam.pethost.app
✓ Packed 45 files, 450 KB   (left out node_modules)
✓ Uploaded straight to your machine
✗ /compose.yaml: the project directory has no compose.yaml at its root: add one
✓ Nuxt project detected, wrote Dockerfile.
✓ Packed 46 files, 451 KB   (left out node_modules)
✓ Uploaded straight to your machine
✓ Built and started in 53 s
  · wrote compose.yaml for the Dockerfile: the service app, reading .env
✓ app listens on 3000 → https://nuxt-app.sam.pethost.app
  It answers 200.

https://nuxt-app.sam.pethost.app

Wrote .pethost (commit it). Next:   pethost logs -f   ·   pethost open
  1. Pregunta una sola cosa El nombre del proyecto, que es la primera palabra de su dirección. Con Enter se queda el nombre de la carpeta.
  2. La máquina no encuentra nada que ejecutar La carpeta va directa a tu máquina, sin node_modules. La línea con la cruz es su respuesta: un proyecto se ejecuta desde un Dockerfile o un archivo de Compose, y la carpeta aún no tiene ninguno de los dos.
  3. pethost escribe el Dockerfile Vio nuxt en package.json y un script que ejecuta nuxt build, y vuelve a subir la carpeta.
  4. La máquina lo construye y lo inicia Ve que el servidor escucha en el 3000 y envía la dirección ahí. Después pethost visita la dirección él mismo e imprime lo que respondió: 200.

El archivo .pethost dice qué proyecto es esta carpeta. Haz commit de él junto con el Dockerfile, y el siguiente despliegue no pregunta nada.

El Dockerfile que pethost escribe para Nuxt

Este es el archivo tal como se escribió en la carpeta del starter, entero:

# Written by pethost deploy for this Nuxt project: Node 24 (no .nvmrc names another),
# npm installs it (package-lock.json), package.json builds it with "nuxt build", node
# runs .output/server/index.mjs (package.json has no start script).
# It is yours now: change it as you like. pethost does not write it again.

FROM node:24
WORKDIR /app

COPY . .

# Every dependency: what builds the project, and may start it, is among the ones for
# development.
RUN --mount=type=cache,target=/root/.npm \
    npm install

RUN npm run build

ENV NODE_ENV=production
CMD ["node", ".output/server/index.mjs"]

Sus primeras líneas dicen qué leyó pethost en tu carpeta. Tres cosas salen de ahí:

El starter en ejecución ocupaba 30 MB de memoria. Si la máquina no puede construir o iniciar el Dockerfile que escribió pethost, pethost saca el archivo de tu carpeta y dice qué falló.

Runtime config y variables de entorno

Nuxt lee su runtime config de las variables que empiezan por NUXT_ cuando se inicia el servidor. En Pethost una variable es un comando. Va al archivo .env del proyecto en la máquina, que el servicio lee y que cada despliegue posterior conserva:

pethost env set NUXT_PUBLIC_API_BASE=https://api.example.com
pethost env set NUXT_API_SECRET          # asks for the value without showing it

La app se reinicia con el valor nuevo. pethost env lista los nombres, y pethost env --show imprime el archivo con sus valores.

Cambia una página y vuelve a desplegar

Edita app/app.vue y ejecuta el mismo comando. El segundo despliegue del starter tardó 12 s, porque la máquina conserva las capas del build y la caché de npm:

$ pethost deploy
nuxt-app (.pethost)
✓ Packed 47 files · uploaded · built and started in 12 s
  · wrote compose.yaml for the Dockerfile: the service app, reading .env
  · kept the project's x-pethost
  It answers 200.
https://nuxt-app.sam.pethost.app

Para desplegar en cambio con cada push, conecta el repositorio una vez:

pethost github sam/nuxt-app          # from now on, every push deploys itself

Pethost solo lee los repositorios que diste a su GitHub App. Si un despliegue sale mal, pethost rollback vuelve a poner la versión anterior, y tu máquina conserva las tres versiones anteriores a la actual. Un agente de IA puede hacer todo esto por ti a través del servidor MCP de Pethost: cómo un agente despliega y cuida un proyecto.

Usa tu propio dominio para la app Nuxt

Cualquier nombre bajo el dominio de tu cuenta es una dirección desde el primer momento, con HTTPS. Un dominio tuyo lleva un comando y un registro DNS:

pethost domain add app.example.com

El comando imprime el registro que hay que crear: un CNAME de tu nombre al nombre de tu máquina. El certificado llega solo en cuanto el nombre resuelve, y se renueva solo. pethost password pone una página de contraseña delante de toda la app, para una que aún no es pública.

Qué obtienes por el precio

Pethost cuesta 9,99 € al mes por todo lo que alojas, con 2 vCPU, 3 GB de memoria y 30 GB de disco. El servidor del starter ocupaba 30 MB de esa memoria, así que en la máquina queda sitio para la API a la que llama la app, su base de datos y tus otros proyectos. No pagas por proyecto y nada se mide por uso: el renderizado en el servidor no se cobra por petición.

Lo que ya está hecho por ti: HTTPS con certificados que se renuevan solos, despliegues desde GitHub, backups cada noche conservados 14 días, SSH a cualquier contenedor y cada petición contada, con los paths más visitados y la tasa de errores de los últimos 30 días. La máquina está siempre encendida, así que una página nunca espera a un arranque en frío. Los planes están en la parte de precios de la página principal.

Lo que ocupa cada proyecto. La página Capacidad: cada proyecto con su memoria, CPU y disco.
La página Capacidad del panel de Pethost: cada proyecto con su memoria, CPU y disco.

Pethost es la mejor opción para

  • Desarrolladores Vue con una app full-stack: el servidor de Nuxt, sus rutas de API y su base de datos en una sola máquina, en una sola factura
  • Desarrolladores en solitario con varios proyectos personales, cada uno en su propia dirección
  • Quien deja que su agente despliegue por él: Claude Code o Codex pone la app en línea y lee sus logs
  • Startups en sus inicios que quieren un gasto mensual fijo mientras el producto es pequeño

Busca otra opción si

  • Tu aplicación necesita varias regiones o autoescalado

Preguntas

¿Una app Nuxt necesita un Dockerfile para desplegarse?

En Pethost un proyecto se ejecuta desde un Dockerfile o un archivo de Compose, y no tienes que escribirlo tú: en una carpeta que no tiene ninguno de los dos, pethost deploy escribe el Dockerfile para un proyecto Nuxt y lo despliega. El archivo se queda en tu carpeta, y puedes cambiarlo.

¿Qué preset de Nitro necesita Nuxt en Pethost?

No hace falta configurar ninguno. nuxt build escribe por defecto un servidor Node en .output, y el Dockerfile lo inicia con node .output/server/index.mjs.

¿En qué puerto escucha el servidor de Nuxt?

En el 3000 por defecto. Pethost encuentra el puerto en el que escucha el servidor en ejecución y envía la dirección ahí, por HTTPS, así que no hay puerto que declarar.

¿Cómo configuro variables de entorno para una app Nuxt en producción?

Ejecuta pethost env set NUXT_API_SECRET en la carpeta de la app. El comando pide el valor sin mostrarlo y lo pone en el archivo .env del proyecto en la máquina. Nuxt lee las variables que empiezan por NUXT_ en su runtime config cuando se inicia el servidor.

¿Puedo desplegar una app Nuxt desde GitHub con cada push?

Sí. Despliega la carpeta una vez con pethost deploy y luego ejecuta pethost github owner/repository. Desde entonces cada push al repositorio se despliega solo, y pethost rollback vuelve a un commit anterior.

¿Cuánto cuesta alojar una app Nuxt en Pethost?

9,99 € al mes por Starter, con 2 vCPU, 3 GB y 30 GB, sin pagar por proyecto ni por petición: tus otras apps, sitios y bases de datos también se ejecutan ahí. No hay plan gratuito. Los precios son sin IVA.

Las pantallas son despliegues de la app que escribe npm create nuxt@latest con su plantilla mínima, con Nuxt 4.6.1 y pethost 0.2.1, en una máquina de pruebas nuestra. La cuenta que aparece es la de ejemplo, sam.

  1. Nuxt: instalación
  2. Nuxt: despliegue
  3. Nuxt: runtime config
  4. pethost, la línea de comandos de Pethost

Pon tus proyectos en línea hoy

Despliega apps, bots y bases de datos desde tu agente, GitHub o el navegador, tantos como quepan, a un precio fijo. Nada medido, nada cobrado aparte.

Alojar todos tus proyectos por 9,99 €/mes