Polski

Blog · Poradniki wdrożeń

Jak wdrożyć stronę VitePress w 2026: jedno polecenie, HTTPS i Dockerfile, który zostaje u ciebie

Zespół Pethost · · Zaktualizowano · 7 min czytania

Masz stronę w VitePress, która buduje się na twoim laptopie, i chcesz ją mieć online pod adresem z HTTPS. Na Pethost to jedno polecenie, pethost deploy, uruchomione w katalogu z package.json. Samo pisze za ciebie Dockerfile, buduje stronę i wypisuje jej adres. Startowa strona VitePress za pierwszym razem zbudowała się i uruchomiła w 43 sekundy.

W skrócie
  • Jedno polecenie: pethost deploy w katalogu z package.json. Nie ma pliku konfiguracyjnego do napisania ani ustawień builda do wypełnienia.
  • Co robi: znajduje skrypt, który uruchamia vitepress build, pisze Dockerfile, który go uruchamia, i serwuje docs/.vitepress/dist.
  • Adres: https://my-docs.yourname.pethost.app, od razu z HTTPS. Twoja własna domena to jeden rekord DNS.
  • Dockerfile jest twój: zostaje w katalogu, możesz go trzymać i zmieniać, a pethost nigdy więcej go nie nadpisze.
  • Cena: 9,99 € miesięcznie za 2 vCPU, 3 GB i 30 GB, na tę stronę i każdy inny twój projekt. Nie ma darmowego planu.

Czego potrzebujesz, żeby wdrożyć stronę VitePress w 2026

Trzech rzeczy: strony, polecenia pethost i konta Pethost.

Strona to katalog w takim stanie, w jakim zostawiają go pierwsze kroki VitePress: npm add -D vitepress, a potem npx vitepress init. Kreator wkłada podstrony do docs/, a do package.json trzy skrypty:

"scripts": {
  "docs:dev": "vitepress dev ./docs",
  "docs:build": "vitepress build ./docs",
  "docs:preview": "vitepress preview ./docs"
}

Polecenie to jeden program, instalowany jedną linią:

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óż stronę VitePress jednym poleceniem

Przejdź do katalogu z package.json i uruchom pethost deploy. Oto cały ekran dla strony startowej, którą pisze vitepress init:

$ cd my-docs
$ pethost deploy
Name it [my-docs]:    it will live at https://my-docs.sam.pethost.app
✓ Packed 6 files, 90 KB   (left out node_modules)
✓ Uploaded straight to your machine
✗ /compose.yaml: the project directory has no compose.yaml at its root: add one
✓ VitePress site detected, wrote Dockerfile.
✓ Packed 7 files, 91 KB   (left out node_modules)
✓ Uploaded straight to your machine
✓ Built and started in 43 s
  · wrote compose.yaml for the Dockerfile: the service app, reading .env, port 80
✓ app listens on 80 → https://my-docs.sam.pethost.app
  It answers 200.

https://my-docs.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 Zobaczył vitepress w package.json i skrypt, który uruchamia vitepress build, więc wgrywa katalog jeszcze raz.
  4. Maszyna buduje i uruchamia projekt Potem pethost sam odpytuje adres i wypisuje, co ten odpowiedział: 200.

Plik .pethost mówi, którym projektem jest ten katalog. Zrób jego commit razem z Dockerfile, a następne wdrożenie o nic nie zapyta.

Dockerfile, który pethost pisze dla VitePress

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

# Written by pethost deploy for this VitePress site: package.json builds it with
# "vitepress build ./docs", which writes docs/.vitepress/dist, Node 24 (no .nvmrc names
# another), npm installs it (package-lock.json).
# It is yours now: change it as you like. pethost does not write it again.

FROM node:24 AS build
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 docs:build

# The site is files: Caddy serves them on port 80.
FROM caddy:2
COPY --from=build /app/docs/.vitepress/dist /srv

COPY <<'EOF' /etc/caddy/Caddyfile
:80 {
	root * /srv
	# A browser that takes its answers compressed gets them so.
	encode
	# Names that begin with a dot are no pages;
	# .well-known is the one such folder that is there for visitors.
	@own {
		path */.*
		not path /.well-known/*
	}
	error @own 404
	# A page's address works without its ".html", and a folder's leads to its index.html.
	try_files {path} {path}.html {path}/
	file_server
	# An address that is no page: the site's own 404.html, if it has one.
	handle_errors 404 {
		rewrite * /404.html
		file_server
	}
}
EOF
EXPOSE 80

Jego pierwsze linie mówią, co pethost przeczytał w twoim katalogu. Stamtąd biorą się trzy rzeczy:

Druga połowa to mały serwer WWW dla zbudowanych podstron. Zapytaliśmy wdrożoną stronę startową o to, o co pyta odwiedzający. Strona główna, /markdown-examples i /markdown-examples.html odpowiedziały 200, a adres, pod którym nie ma podstrony, odpowiedział 404 z własną stroną „404” VitePress.

Dwie kolejne rzeczy chronią cię przed złym plikiem. 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. A jeśli twoja konfiguracja ustawia base na ścieżkę taką jak /docs/, pethost niczego nie pisze i mówi dlaczego: na Pethost strona stoi w katalogu głównym własnego adresu, więc ustaw base na "/" i wdróż ponownie.

Zmień podstronę i wdróż ponownie

Zmień podstronę i uruchom to samo polecenie. Drugie wdrożenie strony startowej zajęło 4 sekundy, bo maszyna przechowuje warstwy builda:

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

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

pethost github sam/my-docs          # 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 dokumentacji

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 docs.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łą witryną, dla dokumentacji, która 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. Zbudowana strona VitePress to pliki za jednym małym serwerem WWW, więc na maszynie zostaje miejsce na aplikację, którą dokumentacja opisuje, jej bazę danych i twoje inne projekty. Nie ma opłaty za projekt ani żadnych liczników: druga strona nic więcej nie kosztuje.

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. Panel pokazuje najczęściej odwiedzane ścieżki z ostatnich 30 dni, a w dokumentacji to lista podstron, które ludzie naprawdę czytają. Maszyna działa cały czas, więc strona nigdy nie czeka na zimny start. Plany są w cenniku na stronie głównej.

Które podstrony ludzie czytają. Dziesięć najczęściej odwiedzanych ścieżek projektu z ich udziałem i czasami odpowiedzi oraz log pojedynczych żądań.
Panel Pethost: dziesięć najczęściej odwiedzanych ścieżek projektu z udziałem, liczbą i czasami odpowiedzi oraz log pojedynczych żądań.

Pethost to najlepszy wybór dla

  • Programistów, którzy trzymają dokumentację obok aplikacji: API, jego baza danych i jego strona VitePress na jednej maszynie, na jednym rachunku
  • Programistów solo z kilkoma projektami pobocznymi, każdym z własną stroną
  • Osób, za które wdraża agent: Claude Code albo Codex wystawia stronę do sieci i czyta jej logi
  • Małych zespołów, które do startu chcą trzymać dokumentację za hasłem

Poszukaj gdzie indziej, jeśli

  • Twoja aplikacja potrzebuje kilku regionów albo autoskalowania

Pytania

Czy strona VitePress 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 strony VitePress i ją wdraża. Plik zostaje w twoim katalogu i możesz go zmieniać.

Jakiego menedżera pakietów i jakiej wersji Node używa build VitePress?

Tych, które wskazuje twój katalog. Menedżer pakietów to ten z twojego lockfile’a: npm, pnpm, Yarn albo Bun. Wersja Node to ta z .nvmrc albo .node-version, a gdy nie ma żadnego z nich, Node 24.

Czy mogę wdrażać VitePress 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 podpiąć własną domenę z HTTPS do strony VitePress?

Uruchom pethost domain add docs.example.com i utwórz jeden rekord DNS, który polecenie wypisze: CNAME na nazwę twojej maszyny. Certyfikat pojawia się sam, gdy tylko nazwa zacznie się rozwiązywać, i sam się odnawia.

Ile kosztuje hosting strony VitePress na Pethost?

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

Dlaczego pethost deploy odrzuca stronę VitePress, która ustawia base?

Strona zbudowana z base ustawionym na ścieżkę taką jak /docs/ szuka swoich stylów i skryptów pod tą ścieżką. Na Pethost strona stoi w katalogu głównym własnego adresu, więc pethost nie pisze dla niej Dockerfile i mówi o tym. Ustaw base na "/" i wdróż ponownie.

Ekrany to wdrożenia strony, którą pisze vitepress init, z VitePress 1.6.4 i pethost 0.2.1, na naszej maszynie testowej. Konto na nich to przykładowe sam.

  1. VitePress: pierwsze kroki
  2. VitePress: wdrażanie strony
  3. pethost, narzędzie wiersza poleceń Pethost

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.