---
title: "Jak wdrożyć aplikację React Router w 2026"
description: "Wdróż aplikację React Router z renderowaniem na serwerze: pethost deploy buduje Dockerfile z szablonu i serwuje ją przez HTTPS w 11 s, za 9,99 € miesięcznie."
---

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

# Jak wdrożyć aplikację React Router w 2026: Dockerfile z szablonu, jedno polecenie i HTTPS

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

Masz aplikację z `create-react-router`, renderuje się na serwerze, a ty chcesz ją mieć w sieci pod adresem z HTTPS. Domyślny szablon ma już Dockerfile, a na Pethost projekt nie potrzebuje niczego więcej: uruchom `pethost deploy` w katalogu aplikacji. Za pierwszym razem szablon zbudował się i uruchomił w 11 sekund, a pod nowym adresem odpowiedział 200.

**W skrócie**

- **Jedno polecenie:** `pethost deploy` w katalogu, który utworzył `create-react-router`. Do aplikacji nic nie dochodzi i nie wypełniasz żadnych ustawień builda.
- **Co robi:** wgrywa katalog, buduje na twojej maszynie Dockerfile z samego szablonu i uruchamia `react-router-serve`.
- **Port:** serwer nasłuchuje na 3000. Pethost sam to znajduje i kieruje tam adres, przez HTTPS.
- **Adres:** `https://my-app.yourname.pethost.app` od 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ę React Router w 2026

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

**Aplikacja** to tutaj domyślny szablon, z renderowaniem na serwerze i Tailwind CSS:

```
npx create-react-router@latest my-app
```

Zostawia `package.json`, `package-lock.json`, katalog `app/` i `Dockerfile`. Jego skrypty to te, które uruchamia Dockerfile:

```
"scripts": {
  "build": "react-router build",
  "dev": "react-router dev",
  "start": "react-router-serve ./build/server/index.js",
  "typecheck": "react-router typegen && tsc"
}
```

**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ę React Router jednym poleceniem

Przejdź do katalogu aplikacji i uruchom `pethost deploy`. Oto cały ekran, dla domyślnego szablonu:

```
$ cd my-app
$ pethost deploy
Name it [my-app]:    it will live at https://my-app.sam.pethost.app
✓ Packed 22 files, 174 KB   (left out node_modules)
✓ Uploaded straight to your machine
✓ Built and started in 11 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. **Katalog trafia na twoją maszynę** Bez `node_modules`: build instaluje je tam, z `package-lock.json`.
3. **Maszyna buduje Dockerfile** To plik samego szablonu, niezmieniony. Linia pod spodem mówi o jedynej rzeczy, którą dodała maszyna: pliku Compose wokół Dockerfile, z usługą o nazwie `app`.
4. **Aplikacja startuje i zostaje odpytana** Maszyna widzi, że serwer nasłuchuje na 3000, i kieruje tam adres. Potem pethost sam odpytuje adres i wypisuje, co odpowiedział: 200.

Zapytaliśmy wdrożony szablon o to, o co pyta odwiedzający. Strona główna odpowiedziała 200 z HTML-em wyrenderowanym na serwerze, `/favicon.ico` odpowiedział 200, a adres bez trasy odpowiedział 404 z własną stroną błędu React Routera.

Plik `.pethost` mówi, którym projektem jest ten katalog. Zrób z nim commit, a kolejne wdrożenie o nic nie zapyta.

## Dockerfile szablonu React Router

Oto plik, który zapisał `create-react-router`, a maszyna zbudowała go tak, jak jest:

```
FROM node:24-alpine AS development-dependencies-env
COPY . /app
WORKDIR /app
RUN npm ci

FROM node:24-alpine AS production-dependencies-env
COPY ./package.json package-lock.json /app/
WORKDIR /app
RUN npm ci --omit=dev

FROM node:24-alpine AS build-env
COPY . /app/
COPY --from=development-dependencies-env /app/node_modules /app/node_modules
WORKDIR /app
RUN npm run build

FROM node:24-alpine
COPY ./package.json package-lock.json /app/
COPY --from=production-dependencies-env /app/node_modules /app/node_modules
COPY --from=build-env /app/build /app/build
WORKDIR /app
CMD ["npm", "run", "start"]
```

Trzy rzeczy, które warto o nim wiedzieć na Pethost:

- **Potrzebuje lockfile’a.** Oba kroki `npm ci` czytają `package-lock.json`, więc trzymaj go w katalogu i w repozytorium.
- **Nie deklaruje portu.** Plik nie ma linii `EXPOSE` i jej nie potrzebuje: maszyna sama znajduje port, na którym nasłuchuje działający serwer.
- **Działająca aplikacja jest mała.** Ostatni etap zawiera zależności produkcyjne i build. Działający szablon zajął 79 MB pamięci.

Aplikacja bez Dockerfile nie utknie. W katalogu, w którym nie ma ani Dockerfile, ani pliku Compose, `pethost deploy` pisze Dockerfile dla rodzajów projektów, które zna, tak jak dla [aplikacji Nuxt](https://pethost.dev/pl/blog/deploy-nuxt-app/), a przy każdym innym katalogu mówi, dlaczego żadnego nie napisał.

## Zmień trasę i wdróż ponownie

Zmień trasę i uruchom to samo polecenie. Drugie wdrożenie szablonu zajęło 6 sekund, bo maszyna przechowuje warstwy builda:

```
$ pethost deploy
my-app (.pethost)
✓ Packed 23 files · uploaded · built and started in 6 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
```

Żeby zamiast tego wdrażać po każdym pushu, podłącz raz repozytorium:

```
pethost github sam/my-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](https://pethost.dev/pl/blog/hosting-for-ai-coding-agents/).

## Zmienne środowiskowe i własna domena

Zmienna, którą loader albo action czyta na serwerze, 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 SESSION_SECRET
```

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 szablonu zajął 79 MB tej pamięci, więc na maszynie zostaje miejsce na bazę danych aplikacji, workera i twoje inne projekty. 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/): renderowanie na serwerze nie jest rozliczane za żądanie, a pracowity miesiąc kosztuje tyle samo co spokojny.

- **9,99 €** miesięcznie za wszystkie twoje projekty, bez liczników
- **11 s** na zbudowanie i uruchomienie szablonu za pierwszym razem
- **79 MB** pamięci dla działającej aplikacji

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 pierwsze żądanie z rana [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.

**Każdy projekt podpisany.** Siedem projektów na jednej maszynie Starter: aplikacje z ich adresami i żądaniami z ostatniej doby, bazy danych z aplikacjami, które z nich korzystają.

![Strona główna panelu Pethost: CPU, pamięć i dysk maszyny oraz jej projekty jako karty.](https://pethost.dev/shots/projects.webp)

### Pethost to najlepszy wybór dla

- **Programistów z aplikacją React full-stack**: aplikacja renderowana na serwerze i jej 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

### Gdzie hostować aplikację React Router z renderowaniem na serwerze?

U każdego dostawcy hostingu, który uruchamia serwer Node albo kontener Docker. Na Pethost uruchamiasz `pethost deploy` w katalogu aplikacji: maszyna buduje Dockerfile z szablonu, uruchamia `react-router-serve` i serwuje aplikację przez HTTPS.

### Czy trzeba zmieniać Dockerfile, który pisze create-react-router?

Nie. Maszyna zbudowała Dockerfile domyślnego szablonu tak, jak jest. Nie ma on linii `EXPOSE` i jej nie potrzebuje: Pethost sam znajduje port, na którym nasłuchuje serwer, czyli 3000.

### Czy mogę wdrażać aplikację React Router 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.

### Jak ustawić zmienne środowiskowe w aplikacji React Router?

Uruchom `pethost env set NAME` w katalogu aplikacji. Polecenie pyta o wartość, nie pokazując jej, i zapisuje ją w pliku `.env` projektu na maszynie, który czyta serwer, a każde kolejne wdrożenie zachowuje.

### Ile kosztuje hosting aplikacji React Router 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 domyślnego szablonu, który zapisuje `create-react-router`, z React Router 8.4.0 i pethost 0.2.1, na naszej maszynie testowej. Konto na nich to przykładowe `sam`.

1. [React Router: instalacja](https://reactrouter.com/start/framework/installation)
2. [React Router: wdrażanie](https://reactrouter.com/start/framework/deploying)
3. [React Router: oficjalne szablony](https://github.com/remix-run/react-router-templates)
4. [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ć aplikację TanStack Start w 2026: Nitro, skrypt start i jedno polecenie](https://pethost.dev/pl/blog/deploy-tanstack-start-app/) 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.
- 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.

[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/)
