Русский

Блог · Гайды по деплою

Как задеплоить приложение на Nuxt в 2026: одна команда, Node-сервер и HTTPS

Команда Pethost · · Обновлено · 7 мин чтения

У вас есть приложение на Nuxt, которое работает с npm run dev, и вы хотите выложить его по адресу с HTTPS, с рендерингом на сервере. На Pethost это одна команда, pethost deploy, в папке, где лежит package.json. Она сама пишет Dockerfile, запускает nuxt build и запускает сервер, который получился при сборке. Стартовый проект Nuxt в первый раз собрался и запустился за 53 секунды.

Коротко
  • Одна команда: pethost deploy в папке с package.json. Не нужно ни выбирать пресет, ни добавлять скрипт запуска.
  • Что она делает: находит nuxt и скрипт, который запускает nuxt build, пишет Dockerfile, который его выполняет, и запускает node .output/server/index.mjs.
  • Порт: сервер Nuxt слушает 3000. Pethost сам это находит и направляет туда адрес по HTTPS.
  • Адрес: https://nuxt-app.yourname.pethost.app, сразу. Свой домен — одна DNS-запись.
  • Цена: 9,99 € в месяц за 2 vCPU, 3 GB и 30 GB — для этого приложения и всех остальных ваших проектов. Бесплатного тарифа нет.

Что нужно, чтобы задеплоить приложение на Nuxt в 2026 году

Три вещи: само приложение, команда pethost и аккаунт Pethost.

Приложение здесь — то, что остается после страницы установки Nuxt, с минимальным шаблоном и npm:

npm create nuxt@latest nuxt-app

Команда создает nuxt.config.ts, папку app/ и package.json вот с такими скриптами. Скрипта запуска среди них нет, и он не нужен:

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

Команда — это одна программа, которая ставится одной строкой. Все ее команды есть в справочнике CLI.

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

Аккаунту нужен тариф. Если вы не вошли, pethost deploy откроет браузер, и вы войдете. Если тарифа еще нет, команда покажет, где его выбрать, и подождет.

Деплой приложения на Nuxt одной командой

Перейдите в папку с package.json и запустите pethost deploy. Вот весь экран для стартового проекта:

$ 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. Она спрашивает одно Имя проекта — первое слово его адреса. Enter берет имя папки.
  2. Машина не находит, что запускать Папка уходит прямо на вашу машину, без node_modules. Строка с крестиком — ее ответ: проект запускается из Dockerfile или Compose-файла, а в папке пока нет ни того, ни другого.
  3. pethost пишет Dockerfile Он увидел nuxt в package.json и скрипт, который запускает nuxt build, и загружает папку снова.
  4. Машина собирает и запускает его Она видит, что сервер слушает порт 3000, и направляет туда адрес. Затем pethost сам открывает адрес и печатает, что тот ответил: 200.

Файл .pethost говорит, какому проекту соответствует эта папка. Закоммитьте его вместе с Dockerfile, и следующий деплой ничего не спросит.

Dockerfile, который pethost пишет для Nuxt

Вот файл целиком, как он был записан в папку стартового проекта:

# 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"]

Его первые строки говорят, что pethost прочитал в вашей папке. Оттуда берутся три вещи:

Работающий стартовый проект занял 30 MB памяти. Если машина не может собрать или запустить Dockerfile, который написал pethost, pethost убирает файл из вашей папки и говорит, что не получилось.

Runtime config и переменные окружения

Nuxt читает свой runtime config из переменных, которые начинаются с NUXT_, когда запускается сервер. На Pethost переменная — это одна команда. Она попадает в файл .env проекта на машине, который читает сервис и сохраняют все следующие деплои:

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

Приложение перезапускается с новым значением. pethost env показывает список имен, а pethost env --show печатает файл со значениями.

Измените страницу и задеплойте снова

Отредактируйте app/app.vue и запустите ту же команду. Второй деплой стартового проекта занял 12 секунд, потому что машина хранит слои сборки и кеш 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

Чтобы вместо этого деплоить каждый пуш, один раз подключите репозиторий:

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

Pethost читает только те репозитории, которые вы дали его GitHub App. Если деплой пошел не так, pethost rollback возвращает предыдущую версию, а ваша машина хранит три версии перед текущей. ИИ-агент может сделать все это за вас через MCP-сервер Pethost: как агент деплоит проект и следит за ним.

Свой домен для приложения на Nuxt

Любое имя в домене вашего аккаунта сразу становится адресом с HTTPS. Для своего домена нужны одна команда и одна DNS-запись:

pethost domain add app.example.com

Команда печатает запись, которую нужно создать: CNAME с вашего имени на имя вашей машины. Сертификат появляется сам, как только имя начинает указывать на машину, и сам продлевается. pethost password ставит страницу с паролем перед всем приложением, если оно еще не для всех.

Что вы получаете за эти деньги

Pethost стоит 9,99 € в месяц за все, что вы хостите, на 2 vCPU, 3 GB памяти и 30 GB диска. Сервер стартового проекта занял 30 MB этой памяти, так что на машине остается место для API, который вызывает приложение, его базы данных и других ваших проектов. Платы за проект нет, и ничего не считается по счетчику: серверный рендеринг не оплачивается за каждый запрос.

Что уже сделано за вас: HTTPS с сертификатами, которые продлеваются сами, деплои из GitHub, ночные бэкапы, которые хранятся 14 дней, SSH в любой контейнер и учет каждого запроса — с самыми популярными путями и долей ошибок за последние 30 дней. Машина всегда включена, поэтому страница никогда не ждет холодного старта. Тарифы — в разделе цен на главной странице.

Сколько занимает каждый проект. Страница «Ресурсы»: каждый проект с его памятью, CPU и диском.
Страница «Ресурсы» в панели Pethost: каждый проект с его памятью, CPU и диском.

Pethost — лучший выбор для

  • Vue-разработчиков с full-stack-приложением: сервер Nuxt, его API-маршруты и база данных на одной машине, с одним счетом
  • Разработчиков-одиночек с несколькими личными проектами, у каждого из которых свой адрес
  • Людей, за которых деплоит агент: Claude Code или Codex выкладывает приложение и читает его логи
  • Стартапов на ранней стадии, которым нужны фиксированные расходы в месяц, пока продукт небольшой

Ищите другое, если

  • Вашему приложению нужны несколько регионов или автомасштабирование

Вопросы

Нужен ли Dockerfile, чтобы задеплоить приложение на Nuxt?

На Pethost проект запускается из Dockerfile или Compose-файла, и писать его самому не нужно: в папке, где нет ни того, ни другого, pethost deploy пишет Dockerfile для проекта на Nuxt и деплоит его. Файл остается в вашей папке, и его можно менять.

Какой пресет Nitro нужен Nuxt на Pethost?

Задавать его не нужно. По умолчанию nuxt build пишет Node-сервер в .output, и Dockerfile запускает его командой node .output/server/index.mjs.

Какой порт слушает сервер Nuxt?

По умолчанию 3000. Pethost находит порт, который слушает работающий сервер, и направляет туда адрес по HTTPS, так что объявлять порт не нужно.

Как задать переменные окружения для Nuxt в продакшене?

Запустите pethost env set NUXT_API_SECRET в папке приложения. Команда спросит значение, не показывая его, и запишет его в файл .env проекта на машине. Nuxt читает переменные, которые начинаются с NUXT_, в свой runtime config при запуске сервера.

Можно ли деплоить Nuxt из GitHub при каждом пуше?

Да. Один раз задеплойте папку командой pethost deploy, затем запустите pethost github owner/repository. С этого момента каждый пуш в репозиторий деплоится сам, а pethost rollback возвращает к более раннему коммиту.

Сколько стоит хостинг приложения на Nuxt на Pethost?

9,99 € в месяц за Starter с 2 vCPU, 3 GB и 30 GB, без платы за проект и без оплаты за запросы: там же работают ваши другие приложения, сайты и базы данных. Бесплатного тарифа нет. Цены без НДС.

На экранах — деплои приложения, которое npm create nuxt@latest пишет из минимального шаблона, с Nuxt 4.6.1 и pethost 0.2.1 на нашей тестовой машине. Аккаунт на них — пример, sam.

  1. Nuxt: установка
  2. Nuxt: деплой
  3. Nuxt: runtime config
  4. pethost, командная строка Pethost

Запустите свои проекты уже сегодня

Деплойте приложения, ботов и базы данных из агента, с GitHub или в браузере, сколько поместится, по одной фиксированной цене. Ничего по счётчику, ничего сверху.

Разместить проекты за 9,99 €/мес