Blog · Poradniki wdrożeń
Jak wdrożyć aplikację Nuxt w 2026: jedno polecenie, serwer Node i HTTPS
Masz aplikację Nuxt, która działa po npm run dev, i chcesz ją mieć w sieci pod adresem z HTTPS, z renderowaniem na serwerze. Na Pethost to jedno polecenie, pethost deploy, uruchomione w katalogu z package.json. Samo pisze za ciebie Dockerfile, uruchamia nuxt build i startuje serwer, który zbudował build. Starter samego Nuxta za pierwszym razem zbudował się i uruchomił w 53 sekundy.
- Jedno polecenie:
pethost deployw katalogu zpackage.json. Nie trzeba wybierać presetu ani dopisywać skryptu start. - Co robi: znajduje
nuxti skrypt, który uruchamianuxt build, pisze Dockerfile, który go wykonuje, i startujenode .output/server/index.mjs. - Port: serwer Nuxta nasłuchuje na 3000. Pethost sam to znajduje i kieruje tam adres, przez HTTPS.
- Adres:
https://nuxt-app.yourname.pethost.appod razu. Twoja własna domena to jeden rekord DNS. - Cena: 9,99 € miesięcznie za 2 vCPU, 3 GB i 30 GB, na tę aplikację i każdy inny twój projekt. Nie ma darmowego planu.
Czego potrzebujesz, żeby wdrożyć aplikację Nuxt w 2026
Trzech rzeczy: aplikacji, polecenia pethost i konta Pethost.
Aplikacja to tutaj to, co zostawia strona instalacji Nuxta, z szablonem minimal i npm:
npm create nuxt@latest nuxt-app
Tworzy nuxt.config.ts, katalog app/ i package.json z tymi skryptami. Żaden z nich nie jest skryptem start i żaden nie jest potrzebny:
"scripts": {
"build": "nuxt build",
"dev": "nuxt dev",
"generate": "nuxt generate",
"preview": "nuxt preview",
"postinstall": "nuxt prepare"
}
Polecenie to jeden program, instalowany jedną linią. Wszystkie jego polecenia są w dokumentacji CLI.
curl -fsSL https://pethost.dev/install.sh | sh # macOS, Linux
irm https://pethost.dev/install.ps1 | iex # Windows, in PowerShell
Konto potrzebuje planu. Jeśli nie jesteś zalogowany, pethost deploy otwiera przeglądarkę i cię loguje. Jeśli nie masz jeszcze planu, pokazuje, gdzie go wybrać, i czeka.
Wdróż aplikację Nuxt jednym poleceniem
Przejdź do katalogu z package.json i uruchom pethost deploy. Oto cały ekran, dla startera:
$ 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
- Pyta o jedno O nazwę projektu, która jest pierwszym słowem jego adresu. Enter bierze nazwę katalogu.
- Maszyna nie znajduje nic do uruchomienia Katalog trafia prosto na twoją maszynę, bez
node_modules. Linia z krzyżykiem to jej odpowiedź: projekt działa z Dockerfile albo z pliku Compose, a katalog nie ma jeszcze żadnego z nich. - pethost pisze Dockerfile Zobaczył
nuxtwpackage.jsoni skrypt, który uruchamianuxt build, i wgrywa katalog jeszcze raz. - Maszyna go buduje i uruchamia Widzi, że serwer nasłuchuje na 3000, i kieruje tam adres. Potem pethost sam odpytuje adres i wypisuje, co odpowiedział: 200.
Plik .pethost mówi, którym projektem jest ten katalog. Zrób commit razem z Dockerfile, a kolejne wdrożenie o nic nie zapyta.
Dockerfile, który pethost pisze dla Nuxta
Oto cały plik, tak jak został zapisany w katalogu startera:
# 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"]
Jego pierwsze linie mówią, co pethost przeczytał w twoim katalogu. Stamtąd biorą się trzy rzeczy:
- Menedżer pakietów to ten, który wskazuje twój lockfile: npm, pnpm, Yarn albo Bun.
- Wersja Node to ta, którą podaje
.nvmrcalbo.node-version, a Node 24, gdy nie ma żadnego z nich. - Start to twój skrypt
start, jeślipackage.jsongo ma. Starter go nie ma, więc plik uruchamia to, conuxt buildzapisuje z domyślnym presetem serwera Node:.output/server/index.mjs.
Działający starter zajął 30 MB pamięci. Jeśli maszyna nie zbuduje albo nie uruchomi Dockerfile napisanego przez pethost, pethost usuwa ten plik z twojego katalogu i mówi, co się nie udało.
Runtime config i zmienne środowiskowe
Nuxt czyta swój runtime config ze zmiennych zaczynających się od NUXT_, gdy serwer startuje. Na Pethost zmienna to jedno polecenie. Trafia do pliku .env projektu na maszynie, który usługa czyta, a każde kolejne wdrożenie zachowuje:
pethost env set NUXT_PUBLIC_API_BASE=https://api.example.com
pethost env set NUXT_API_SECRET # asks for the value without showing it
Aplikacja startuje ponownie z nową wartością. pethost env wypisuje nazwy, a pethost env --show wypisuje plik z wartościami.
Zmień stronę i wdróż ponownie
Zmień app/app.vue i uruchom to samo polecenie. Drugie wdrożenie startera zajęło 12 sekund, bo maszyna przechowuje warstwy builda i cache 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
Żeby zamiast tego wdrażać po każdym pushu, podłącz raz repozytorium:
pethost github sam/nuxt-app # from now on, every push deploys itself
Pethost czyta tylko repozytoria udostępnione jego GitHub App. Jeśli wdrożenie pójdzie źle, pethost rollback przywraca wersję sprzed niego, a twoja maszyna trzyma trzy wersje sprzed bieżącej. Agent AI może zrobić to wszystko za ciebie przez serwer MCP Pethost: jak agent wdraża projekt i o niego dba.
Użyj własnej domeny dla aplikacji Nuxt
Każda nazwa pod domeną twojego konta od razu jest adresem, z HTTPS. Domena, którą masz, to jedno polecenie i jeden rekord DNS:
pethost domain add app.example.com
Polecenie wypisuje rekord do utworzenia: CNAME z twojej nazwy na nazwę twojej maszyny. Certyfikat pojawia się sam, gdy tylko nazwa zacznie się rozwiązywać, i sam się odnawia. pethost password stawia stronę z hasłem przed całą aplikacją, gdy nie jest jeszcze publiczna.
Co dostajesz za tę cenę
Pethost kosztuje 9,99 € miesięcznie za wszystko, co hostujesz, na 2 vCPU, 3 GB pamięci i 30 GB dysku. Serwer startera zajął 30 MB tej pamięci, więc na maszynie zostaje miejsce na API, które wywołuje aplikacja, jej bazę danych i twoje inne projekty. Nie ma opłaty za projekt ani żadnych liczników: renderowanie na serwerze nie jest rozliczane za żądanie.
- 9,99 € miesięcznie za wszystkie twoje projekty, bez liczników
- 53 s na zbudowanie i uruchomienie startera za pierwszym razem
- 12 s na kolejne wdrożenie
Co jest już zrobione za ciebie: HTTPS z certyfikatami, które same się odnawiają, wdrożenia z GitHuba, nocne backupy trzymane przez 14 dni, SSH do każdego kontenera i każde żądanie policzone, z najczęściej odwiedzanymi ścieżkami i odsetkiem błędów z ostatnich 30 dni. Maszyna działa cały czas, więc strona nigdy nie czeka na zimny start. Plany są w cenniku na stronie głównej.
Pethost to najlepszy wybór dla
- Programistów Vue z aplikacją full-stack: serwer Nuxta, jego trasy API i jego baza danych na jednej maszynie, na jednym rachunku
- Programistów solo z kilkoma projektami pobocznymi, każdym pod własnym adresem
- Osób, za które wdraża agent: Claude Code albo Codex wystawia aplikację do sieci i czyta jej logi
- Wczesnych startupów, które chcą stałego miesięcznego kosztu, póki produkt jest mały
Poszukaj gdzie indziej, jeśli
- Twoja aplikacja potrzebuje kilku regionów albo autoskalowania
Pytania
Czy aplikacja Nuxt potrzebuje Dockerfile do wdrożenia?
Na Pethost projekt działa z Dockerfile albo z pliku Compose, ale nie musisz go pisać: w katalogu, w którym nie ma żadnego z nich, pethost deploy pisze Dockerfile dla projektu Nuxt i go wdraża. Plik zostaje w twoim katalogu i możesz go zmieniać.
Jakiego presetu Nitro potrzebuje Nuxt na Pethost?
Żadnego nie trzeba ustawiać. nuxt build domyślnie zapisuje serwer Node w .output, a Dockerfile uruchamia go przez node .output/server/index.mjs.
Na jakim porcie nasłuchuje serwer Nuxt?
Domyślnie na 3000. Pethost znajduje port, na którym nasłuchuje działający serwer, i tam kieruje adres, przez HTTPS, więc nie trzeba deklarować portu.
Jak ustawić zmienne środowiskowe dla aplikacji Nuxt na produkcji?
Uruchom pethost env set NUXT_API_SECRET w katalogu aplikacji. Polecenie pyta o wartość, nie pokazując jej, i zapisuje ją w pliku .env projektu na maszynie. Nuxt wczytuje zmienne zaczynające się od NUXT_ do swojego runtime config, gdy serwer startuje.
Czy mogę wdrażać aplikację Nuxt z GitHuba po każdym pushu?
Tak. Wdróż katalog raz przez pethost deploy, a potem uruchom pethost github owner/repository. Od tej chwili każdy push do repozytorium sam się wdraża, a pethost rollback wraca do wcześniejszego commita.
Ile kosztuje hosting aplikacji Nuxt na Pethost?
9,99 € miesięcznie za plan Starter, z 2 vCPU, 3 GB i 30 GB, bez opłaty za projekt i bez opłaty za żądanie: twoje inne aplikacje, strony i bazy danych też tam działają. Nie ma darmowego planu. Ceny są bez VAT.
Ekrany to wdrożenia aplikacji, którą npm create nuxt@latest tworzy z szablonu minimal, z Nuxt 4.6.1 i pethost 0.2.1, na naszej maszynie testowej. Konto na nich to przykładowe sam.
Opublikuj swoje projekty jeszcze dziś
Wdrażaj aplikacje, boty i bazy danych ze swojego agenta, z GitHuba lub w przeglądarce, tyle, ile się zmieści, w jednej stałej cenie. Nic liczonego za zużycie, nic doliczanego.