---
title: "Jak wdrożyć aplikację TanStack Start w 2026"
description: "Wdróż TanStack Start na serwerze Node: dodaj Nitro i skrypt start, uruchom pethost deploy, a aplikacja działa z HTTPS po 29 s, za 9,99 € miesięcznie."
---

[Blog](https://pethost.dev/pl/blog/) · Poradniki wdrożeń

# Jak wdrożyć aplikację TanStack Start w 2026: Nitro, skrypt start i jedno polecenie

Zespół Pethost · 10 października 2026 · Zaktualizowano 25 października 2026 · 8 min czytania

Masz aplikację TanStack Start i chcesz ją mieć na serwerze Node pod adresem z HTTPS. Przewodnik TanStacka po hostingu wymaga do tego od aplikacji dwóch rzeczy: pluginu Nitro i skryptu `start`. Gdy oba są na miejscu, `pethost deploy` pisze Dockerfile, buduje aplikację i wypisuje jej adres. Aplikacja utworzona przez TanStack CLI za pierwszym razem zbudowała się i uruchomiła w 29 sekund.

**W skrócie**

- **Dwie rzeczy w aplikacji:** plugin Nitro, który dodaje `--deployment nitro` przy tworzeniu aplikacji, i `"start": "node .output/server/index.mjs"` w `package.json`.
- **Jedno polecenie:** `pethost deploy` w katalogu z `package.json`. Pisze Dockerfile, który uruchamia `npm run build`, a potem `npm run start`.
- **Port:** serwer Nitro nasłuchuje na 3000. Pethost sam to znajduje i kieruje tam adres, przez HTTPS.
- **Nieudany build niczego nie zmienia:** poprzednia wersja dalej działa, a ekran pokazuje błąd builda.
- **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ę TanStack Start w 2026

Trzech rzeczy: aplikacji, polecenia `pethost` i konta Pethost.

**Aplikacja** to tutaj ta, którą tworzy TanStack CLI, z Nitro jako celem wdrożenia:

```
npx @tanstack/cli@latest create my-app --deployment nitro
```

Flaga dodaje plugin Nitro do `vite.config.ts`. W aplikacji, którą już masz, dodaj go tak, jak mówi część przewodnika po hostingu poświęcona Nitro:

```
import { tanstackStart } from '@tanstack/react-start/plugin/vite'
import { defineConfig } from 'vite'
import { nitro } from 'nitro/vite'
import viteReact from '@vitejs/plugin-react'

export default defineConfig({
  plugins: [tanstackStart(), nitro(), viteReact()],
})
```

Potem dodaj do `package.json` skrypt, który uruchamia to, co zapisuje build. CLI zostawia tam `build`, ale nie `start`:

```
"scripts": {
  "dev": "vite dev --port 3000",
  "build": "vite build",
  "start": "node .output/server/index.mjs"
}
```

**Polecenie** to jeden program, instalowany jedną linią. Wszystkie jego polecenia są w [dokumentacji CLI](https://pethost.dev/docs/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ę TanStack Start jednym poleceniem

Przejdź do katalogu z `package.json` i uruchom `pethost deploy`. Oto cały ekran dla aplikacji utworzonej przez CLI:

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

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

Wrote .pethost (commit it). Next:   pethost logs -f   ·   pethost open
```

1. **Pyta o jedno** O nazwę projektu, która jest pierwszym słowem jego adresu. Enter bierze nazwę katalogu.
2. **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 w katalogu nie ma jeszcze żadnego z nich.
3. **pethost pisze Dockerfile** Przeczytał skrypty `build` i `start` w `package.json` i wgrywa katalog jeszcze raz.
4. **Maszyna buduje i uruchamia aplikację** Widzi, że serwer nasłuchuje na porcie 3000, i tam kieruje adres. Potem pethost sam odpytuje adres i wypisuje, co ten odpowiedział: 200.

Zapytaliśmy wdrożoną aplikację o to, o co pyta odwiedzający. Strona główna i `/about` odpowiedziały 200 z HTML-em renderowanym na serwerze, a adres bez trasy odpowiedział 404. Działający serwer zajął 43 MB pamięci.

## Dockerfile, który pethost pisze dla TanStack Start

Oto cały plik, tak jak trafił do katalogu aplikacji:

```
# Written by pethost deploy for this Node.js project: Node 24 (no .nvmrc names another),
# npm installs it (package-lock.json), package.json builds it with "vite build",
# package.json starts it with "node .output/server/index.mjs".
# 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 ["npm", "run", "start"]
```

Jego pierwsze linie mówią, co pethost przeczytał w twoim katalogu. Menedżer pakietów to ten, który wskazuje twój lockfile, a wersja Node to ta, którą podaje `.nvmrc` albo `.node-version`, a gdy nie ma żadnego z nich, Node 24. Build i start to twoje dwa skrypty, tak jak je napisałeś.

### Bez skryptu start

Aplikację TanStack Start można zbudować pod kilka rodzajów hostingu, więc pethost nie zgaduje, jak uruchamia się twoja. Bez skryptu `start` nie pisze żadnego pliku i mówi dlaczego:

```
$ pethost deploy
Name it [my-app]:    it will live at https://my-app.sam.pethost.app
✓ Packed 13 files, 177 KB
✓ Uploaded straight to your machine
✗ /compose.yaml: the project directory has no compose.yaml at its root: add one
  package.json builds the project and names nothing that starts it (no start script), and what it builds is no site of a kind pethost has a row for.
  Your coding agent writes one in a minute: "Write a Dockerfile for this app".
  Then run pethost deploy again.     How Pethost runs a folder: https://pethost.dev/docs/api/#CreateProject
```

Dodaj skrypt i uruchom polecenie jeszcze raz.

## Zmień trasę i wdróż ponownie

Zmień trasę i uruchom to samo polecenie. Drugie wdrożenie trwało 7 sekund, bo maszyna przechowuje warstwy builda i cache npm:

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

### Gdy build się nie powiedzie

Zepsuliśmy plik trasy, żeby to zobaczyć. Ekran pokazuje log builda z błędem, a ostatnia linia mówi, co dostają odwiedzający. Oto ten ekran, skrócony do trzech linii:

```
$ pethost deploy
my-app (.pethost)
✗ Deploy failed: failed to build: failed to solve: process "/bin/sh -c npm run build" did not complete successfully: exit code: 1
    #9 0.793 Error: Error transforming route file /app/src/routes/about.tsx: SyntaxError: Unexpected token, expected "," (4:19)
  Nothing changed: the version before still runs.
```

Żeby wdrażać po każdym pushu, podłącz raz repozytorium poleceniem `pethost github sam/my-app`. Pethost czyta tylko repozytoria udostępnione jego GitHub App. `pethost rollback` przywraca wersję sprzed bieżącej, a twoja maszyna trzyma trzy wersje sprzed niej. Agent AI może zrobić to wszystko za ciebie przez serwer MCP Pethost: [jak agent wdraża projekt i o niego dba](https://pethost.dev/pl/blog/hosting-for-ai-coding-agents/).

## Zmienne środowiskowe i własna domena

Zmienna, którą czyta funkcja serwerowa, to jedno polecenie. Pyta o wartość, nie pokazując jej, zapisuje ją w pliku `.env` projektu na maszynie, a kolejne wdrożenia ją zachowują:

```
pethost env set DATABASE_URL
```

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.

## 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 aplikacji zajął 43 MB tej pamięci, więc na maszynie zostaje miejsce na jej bazę danych, workera i twoje inne projekty, na przykład [aplikację React Router](https://pethost.dev/pl/blog/deploy-react-router-app/) obok niej. Nie ma [opłaty za projekt](https://pethost.dev/pl/blog/unlimited-projects-flat-monthly-fee/) ani [żadnych liczników](https://pethost.dev/pl/blog/paas-without-usage-based-billing/): funkcje serwerowe nie są rozliczane za wywołanie.

- **9,99 €** miesięcznie za wszystkie twoje projekty, bez liczników
- **29 s** na zbudowanie i uruchomienie aplikacji za pierwszym razem
- **7 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 funkcja serwerowa [nigdy nie czeka na zimny start](https://pethost.dev/pl/blog/always-on-hosting-no-cold-starts/). Plany są w [cenniku](https://pethost.dev/pl/#pricing) na stronie głównej.

**Jeden projekt otwarty w zakładce Żądania.** Ile ich przyszło, jak szybko dostały odpowiedź, i wykres ostatnich 15 minut.

![Panel Pethost: jeden projekt otwarty w zakładce Żądania, z liczbą żądań, czasami odpowiedzi i wykresem ostatnich 15 minut.](https://pethost.dev/shots/project.webp)

### Pethost to najlepszy wybór dla

- **Programistów z full-stackową aplikacją React**: serwer, jego funkcje serwerowe i 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

### Jak uruchomić TanStack Start na serwerze Node?

Dodaj plugin Nitro do `vite.config.ts` i skrypt `"start": "node .output/server/index.mjs"` do `package.json`, tak jak mówi przewodnik TanStacka po hostingu. `npm run build` zapisuje wtedy serwer w `.output`, a `npm run start` uruchamia go na porcie 3000.

### Czy aplikacja TanStack Start potrzebuje Dockerfile do wdrożenia?

Na Pethost projekt działa z Dockerfile albo z pliku Compose, ale nie musisz go pisać: gdy `package.json` ma skrypty `build` i `start`, `pethost deploy` pisze Dockerfile i go wdraża. Plik zostaje w twoim katalogu i możesz go zmieniać.

### Co się dzieje, gdy build TanStack Start nie powiedzie się przy wdrożeniu?

Dla odwiedzających nic się nie zmienia. Wdrożenie się zatrzymuje, ekran pokazuje log builda z błędem, a wersja, która działała wcześniej, działa dalej.

### Czy mogę wdrażać aplikację TanStack Start z GitHuba po każdym pushu?

Tak. Wdróż raz katalog poleceniem `pethost deploy`, a potem uruchom `pethost github owner/repository`. Od tej pory każdy push do repozytorium sam się wdraża, a `pethost rollback` wraca do wcześniejszego commita.

### Ile kosztuje hosting aplikacji TanStack Start na Pethost?

9,99 € miesięcznie za Starter, z 2 vCPU, 3 GB i 30 GB, bez opłaty za projekt i bez opłat za żądania: działają tam też twoje inne aplikacje, strony i bazy danych. Nie ma darmowego planu. Ceny są bez VAT.

Ekrany to wdrożenia aplikacji, którą zapisuje `npx @tanstack/cli@latest create --deployment nitro`, z TanStack Start 1.168.61, Nitro 3.0.260610-beta i pethost 0.2.1, na naszej testowej maszynie, która wcześniej niczego nie budowała. Konto na nich to przykładowe `sam`.

1. [TanStack Start: hosting](https://tanstack.com/start/latest/docs/framework/react/guide/hosting)
2. [TanStack Start: szybki start](https://tanstack.com/start/latest/docs/framework/react/quick-start)
3. [pethost, narzędzie wiersza poleceń Pethost](https://pethost.dev/docs/cli/)

## 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.

[Hostuj wszystko za 9,99 €/mies.](https://console.pethost.dev/)

## Czytaj dalej

- 10 października 2026 [Jak wdrożyć stronę VitePress w 2026: jedno polecenie, HTTPS i Dockerfile, który zostaje u ciebie](https://pethost.dev/pl/blog/deploy-vitepress-site/) Wdróż stronę VitePress jednym poleceniem: pethost deploy pisze Dockerfile, buduje stronę i serwuje ją przez HTTPS za 9,99 € miesięcznie.
- 10 października 2026 [Jak wdrożyć stronę Eleventy w 2026: jedno polecenie, HTTPS i Dockerfile, który zostaje u ciebie](https://pethost.dev/pl/blog/deploy-eleventy-site/) Wdróż stronę Eleventy (11ty) jednym poleceniem: pethost deploy pisze Dockerfile, buduje _site i serwuje ją przez HTTPS za 9,99 € miesięcznie.
- 25 września 2026 [Dostawcy hostingu z oficjalnym serwerem MCP w 2026: wdrożenie, logi i rollback w porównaniu](https://pethost.dev/pl/blog/hosting-with-mcp-server/) W 2026 oficjalny serwer MCP ma 18 z 19 platform hostingowych, a narzędzie do rollbacku dwie. Pethost wdraża, czyta logi, robi rollback i przywraca backup.
- 16 września 2026 [Hosting dla agentów AI do kodowania w 2026: niech Claude Code albo Codex sam wdraża i debuguje produkcję](https://pethost.dev/pl/blog/hosting-for-ai-coding-agents/) Żeby Claude Code albo Codex sam wdrażał i debugował produkcję, hosting musi dać agentowi pięć rzeczy. Pethost je daje, od 9,99 € miesięcznie.

[Wszystkie artykuły](https://pethost.dev/pl/blog/) · [O Pethost](https://pethost.dev/about/) · [Cennik](https://pethost.dev/pl/#pricing)

Pethost · Stephan Gomer · NIP 1133096755

Pethost

- [Szablony](https://pethost.dev/pl/templates/)
- [O nas](https://pethost.dev/about/)
- [Dokumentacja](https://pethost.dev/docs/)
- [Blog](https://pethost.dev/pl/blog/)
- [API](https://pethost.dev/docs/api/)
- [CLI](https://pethost.dev/docs/cli/)
- [Plugin](https://github.com/pethost-dev/plugin)
- [Regulamin](https://pethost.dev/terms/)
- [Prywatność](https://pethost.dev/privacy/)
- [Zwroty](https://pethost.dev/refunds/)
- [support@pethost.dev](mailto:support@pethost.dev)

Bazy danych

- [Postgres](https://pethost.dev/pl/postgres/)

Porównania

- [Coolify vs Dokploy vs CapRover vs Dokku](https://pethost.dev/pl/blog/coolify-vs-dokploy-vs-caprover-vs-dokku/)
- [Coolify Cloud vs Dokploy Cloud](https://pethost.dev/pl/blog/coolify-cloud-vs-dokploy-cloud/)
- [Cennik Railway vs Render vs Fly.io](https://pethost.dev/pl/blog/railway-vs-render-vs-fly-io-pricing/)
- [Zarządzany hosting Docker Compose](https://pethost.dev/pl/blog/managed-docker-compose-hosting/)

Alternatywy

- [Alternatywy dla Railway](https://pethost.dev/pl/blog/railway-alternatives/)
- [Alternatywy dla Heroku](https://pethost.dev/pl/blog/heroku-alternatives/)
- [Alternatywy dla Dokploy](https://pethost.dev/pl/blog/dokploy-alternatives/)
- [Alternatywy dla Coolify](https://pethost.dev/pl/blog/coolify-alternatives/)
- [Alternatywy dla Render](https://pethost.dev/pl/blog/render-alternatives/)
- [Alternatywy dla Sliplane](https://pethost.dev/pl/blog/sliplane-alternatives/)
