Блог · Гайды по деплою
Как задеплоить приложение на Nuxt в 2026: одна команда, Node-сервер и HTTPS
У вас есть приложение на 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
- Она спрашивает одно Имя проекта — первое слово его адреса. Enter берет имя папки.
- Машина не находит, что запускать Папка уходит прямо на вашу машину, без
node_modules. Строка с крестиком — ее ответ: проект запускается из Dockerfile или Compose-файла, а в папке пока нет ни того, ни другого. - pethost пишет Dockerfile Он увидел
nuxtвpackage.jsonи скрипт, который запускаетnuxt build, и загружает папку снова. - Машина собирает и запускает его Она видит, что сервер слушает порт 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 прочитал в вашей папке. Оттуда берутся три вещи:
- Менеджер пакетов — тот, который называет ваш lockfile: npm, pnpm, Yarn или Bun.
- Версия Node — та, что указана в
.nvmrcили.node-version, а если нет ни того, ни другого, Node 24. - Запуск — ваш скрипт
start, если он есть вpackage.json. В стартовом проекте его нет, поэтому файл запускает то, чтоnuxt buildпишет со своим пресетом по умолчанию, Node-сервером:.output/server/index.mjs.
Работающий стартовый проект занял 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, который вызывает приложение, его базы данных и других ваших проектов. Платы за проект нет, и ничего не считается по счетчику: серверный рендеринг не оплачивается за каждый запрос.
- 9,99 € в месяц за все ваши проекты, без счетчиков
- 53 с на сборку и запуск стартового проекта в первый раз
- 12 с на следующий деплой
Что уже сделано за вас: HTTPS с сертификатами, которые продлеваются сами, деплои из GitHub, ночные бэкапы, которые хранятся 14 дней, SSH в любой контейнер и учет каждого запроса — с самыми популярными путями и долей ошибок за последние 30 дней. Машина всегда включена, поэтому страница никогда не ждет холодного старта. Тарифы — в разделе цен на главной странице.
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.
Запустите свои проекты уже сегодня
Деплойте приложения, ботов и базы данных из агента, с GitHub или в браузере, сколько поместится, по одной фиксированной цене. Ничего по счётчику, ничего сверху.