Блог · Гайди з деплою
Як задеплоїти застосунок на 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 прочитав у вашій папці. Звідти береться три речі:
- Менеджер пакетів — той, який називає ваш lock-файл: 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 або в браузері, скільки поміститься, за однією фіксованою ціною. Нічого за лічильником, нічого зверху.