---
title: "Jak wdrożyć stronę Jekyll w 2026"
description: "Wdróż stronę Jekyll z krótkim Dockerfile i jednym poleceniem: Ruby uruchamia jekyll build, Caddy serwuje _site przez HTTPS, za 9,99 € miesięcznie."
---

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

# Jak wdrożyć stronę Jekyll w 2026: Dockerfile, jedno polecenie i HTTPS

Zespół Pethost · 25 października 2026 · 9 min czytania

Masz stronę w Jekyllu, która buduje się na twoim laptopie przez `bundle exec jekyll build`, i chcesz ją mieć online pod adresem z HTTPS. Na Pethost wystarczy do tego Dockerfile z 38 linii, który skopiujesz z tej strony, i jedno polecenie, `pethost deploy`. Strona, którą tworzy `jekyll new`, za pierwszym razem była online po 34 sekundach, a po zmianie po 3 sekundach.

**W skrócie**

- **Jeden plik:** Dockerfile w dwóch etapach. Ruby 4.0 uruchamia `bundle install` i `JEKYLL_ENV=production bundle exec jekyll build`, a potem Caddy serwuje `_site`.
- **Jedno polecenie:** `pethost deploy` w katalogu z `_config.yml`. 34 s za pierwszym razem, 3 s przy kolejnym wdrożeniu.
- **Adresy Jekylla działają:** `/about/` odpowiada 200, `/about` do niego prowadzi, wpis odpowiada z `.html` i bez, a adres, pod którym nie ma podstrony, pokazuje własny `404.html` strony.
- **Adres:** `https://my-site.yourname.pethost.app`, od razu z HTTPS. Twoja własna domena to jeden rekord DNS.
- **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ę Jekyll w 2026

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

**Strona** to w tym przykładzie ta, którą tworzy szybki start Jekylla. Jekyll wymaga Ruby w wersji 2.7.0 lub nowszej; my zrobiliśmy ją z Ruby 4.0.9:

```
gem install jekyll bundler
jekyll new my-site
cd my-site
```

`jekyll new` zapisuje `Gemfile` z Jekyllem 4.4.1, motywem minima i pluginem jekyll-feed, uruchamia `bundle install`, który zapisuje `Gemfile.lock`, i dodaje stronę główną, podstronę about, wpis powitalny, `404.html` oraz `.gitignore`, który pomija `_site`. Zachowaj `Gemfile.lock`: build instaluje dokładnie te gemy, które on wymienia.

**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. Gdy trzeba się zalogować, `pethost deploy` otwiera przeglądarkę i cię loguje. Jeśli nie masz jeszcze planu, pokazuje, gdzie go wybrać, i czeka.

## Dlaczego strona Jekyll potrzebuje Dockerfile na Pethost

Projekt na Pethost działa z Dockerfile albo z pliku Compose. Dla rodzajów projektów, które zna, takich jak [strona Eleventy](https://pethost.dev/pl/blog/deploy-eleventy-site/), `pethost deploy` sam pisze Dockerfile. Jekylla wśród nich nie ma, więc w katalogu, który zrobił `jekyll new`, wdrożenie zatrzymuje się na odpowiedzi maszyny. Oto cały ekran:

```
$ pethost deploy
Name it [my-site]:              it will live at https://my-site.sam.pethost.app
✓ Packed 8 files, 17 KB
✓ Uploaded straight to your machine
✗ /compose.yaml: the project directory has no compose.yaml at its root: add one
  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
```

Nie utworzono niczego: ani projektu, ani adresu. Dodaj poniższy plik i uruchom to samo polecenie.

## Dockerfile dla strony Jekyll

Zapisz to jako `Dockerfile` w katalogu z `_config.yml`. To cały plik:

```
# Jekyll builds the site into _site, and Caddy serves it.
FROM ruby:4.0 AS build
WORKDIR /site

# The gems first: a change to a page does not install them again.
COPY Gemfile Gemfile.lock ./
RUN bundle install

COPY . .
RUN JEKYLL_ENV=production bundle exec jekyll build

# The site is files: Caddy serves them on port 80.
FROM caddy:2
COPY --from=build /site/_site /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
```

Pierwszy etap buduje stronę tak, jak robisz to na laptopie:

- **`ruby:4.0`** to pełny obraz Ruby, z kompilatorem C. Niektóre gemy Jekylla, takie jak eventmachine i bigdecimal, kompilują się przy instalacji: na `ruby:4.0-slim`, który nie ma kompilatora, `bundle install` się nie udał. Jeśli twoja strona przypina wersję Ruby w `.ruby-version`, wpisz tu tę samą.
- **Najpierw gemy.** `Gemfile` i `Gemfile.lock` są kopiowane same, więc zmiana podstrony albo wpisu korzysta z gemów, które maszyna już zainstalowała. Lock zapisany na Macu też działa: zbudowaliśmy stronę z lockiem, który wymieniał tylko macOS, a `bundle install` sam wybrał gemy dla Linuksa.
- **`JEKYLL_ENV=production`** to build, który podaje krok o wdrażaniu w samouczku Jekylla. To, co twoje layouty pokazują tylko w produkcji, na przykład analityka, trafia do stron.

Drugi etap to mały serwer WWW, który `pethost` pisze dla każdej strony złożonej z plików. Serwuje `_site`, katalog wyjściowy Jekylla, i nic z obrazu Ruby nie idzie razem z nim: strona działała w 15 MB pamięci.

## Wdróż stronę Jekyll jednym poleceniem

Uruchom `pethost deploy` jeszcze raz, teraz z Dockerfile w katalogu. Oto cały ekran:

```
$ pethost deploy
Name it [my-site]:              it will live at https://my-site.sam.pethost.app
✓ Packed 9 files, 18 KB
✓ Uploaded straight to your machine
✓ Built and started in 34 s
  · wrote compose.yaml for the Dockerfile: the service app, reading .env, port 80
✓ app listens on 80 → https://my-site.sam.pethost.app
  It answers 200.

https://my-site.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 prosto na twoją maszynę** Dziewięć plików: to, co zapisał `jekyll new`, i Dockerfile. Linia zaczynająca się od `·` to maszyna, która mówi, co zrobiła sama: znalazła Dockerfile i żadnego pliku Compose, więc go napisała.
3. **Maszyna buduje i uruchamia projekt** Te 34 sekundy obejmują pobranie obrazów Ruby i Caddy, których maszyna jeszcze nie miała. 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.

### Czy adresy Jekylla działają?

Jekyll zapisuje `about.markdown` jako `_site/about/index.html`, a wpis pod adresem, który daje jego domyślny permalink, `/:categories/:year/:month/:day/:title:output_ext`. Zapytaliśmy wdrożoną stronę o to, o co pyta odwiedzający:

**Co odpowiedziała wdrożona strona Jekyll**

| Adres | Odpowiedź |
| --- | --- |
| `/` | 200, strona główna z listą wpisów |
| `/about/` | 200, podstrona |
| `/about` | 308, przekierowanie na `/about/` |
| `/jekyll/update/2026/10/25/welcome-to-jekyll.html` | 200, wpis powitalny |
| `/jekyll/update/2026/10/25/welcome-to-jekyll` | 200, ten sam wpis |
| `/feed.xml` | 200, kanał Atom |
| `/nothing` | 404, strona błędu samej witryny: „Page not found :(” |

Podstrony, kanał i arkusz stylów przyszły skompresowane do przeglądarki, która o to poprosiła.

## Ustaw url strony, zmień podstronę i wdróż ponownie

`jekyll new` zostawia `url` pusty w `_config.yml`, więc linki w kanale nie miały hosta: `/jekyll/update/2026/10/25/welcome-to-jekyll.html`. Czytnik kanałów potrzebuje całego adresu. Ustaw go, a razem z nim tytuł strony:

```
title: My site
url: "https://my-site.sam.pethost.app"
```

Potem uruchom to samo polecenie. Drugie wdrożenie zajęło 3 sekundy, bo maszyna przechowuje warstwy builda: gemy nie były instalowane ponownie.

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

Linki w kanale zaczynają się teraz od `https://my-site.sam.pethost.app/`, a tytuły podstron mówią „My site”.

### Wdrażaj stronę Jekyll z GitHuba po każdym pushu

Umieść katalog w repozytorium, z Dockerfile i `.pethost`; `_site` zostaje poza nim, tak jak mówi `.gitignore` Jekylla. Potem raz podłącz repozytorium:

```
pethost github sam/my-site          # from now on, every push deploys itself
```

Maszyna pobiera każdy commit i buduje go tym samym Dockerfile. 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/).

## Użyj własnej domeny dla strony Jekyll

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 www.example.com
```

Polecenie wypisuje rekord do utworzenia: CNAME z twojej nazwy na nazwę twojej maszyny. Certyfikat od Let's Encrypt pojawia się sam, gdy tylko nazwa zacznie się rozwiązywać, i sam się odnawia. Potem ustaw `url` w `_config.yml` na nowy adres i wdróż ponownie, żeby kanał i linki podstron go podawały. `pethost password` stawia stronę z hasłem przed całą witryną, gdy ta 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 Jekyll to pliki za Caddy, w 15 MB tej pamięci, więc w planie jest miejsce na backend formularza komentarzy, bazę danych i twoje inne projekty. Nie ma [opłaty za projekt](https://pethost.dev/pl/blog/unlimited-projects-flat-monthly-fee/) ani żadnych liczników: drugi blog nic więcej nie kosztuje, tak samo jak miesiąc, w którym wpis trafi na pierwszą stronę jakiegoś forum.

- **9,99 €** miesięcznie za wszystkie twoje projekty, bez liczników
- **34 s** na zbudowanie i uruchomienie strony, razem z pobraniem obrazów
- **3 s** na wdrożenie po zmianie

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, bez żadnego skryptu na twoich stronach. Panel pokazuje najczęściej odwiedzane ścieżki z ostatnich 30 dni, a w blogu to lista wpisów, które ludzie naprawdę czytają. Nic nie usypia, więc czytelnik [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.

**Które wpisy 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ń.](https://pethost.dev/shots/traffic.webp)

### Pethost to najlepszy wybór dla

- **Blogerów, którzy budują więcej niż blog**: strona Jekyll, aplikacja i jej baza danych w jednym planie, na jednym rachunku
- **Programistów z kilkoma stronami**, z dokumentacją i stroną każdego projektu, za jedną stałą cenę
- **Osób, za które wdraża agent**: Claude Code albo Codex wdraża stronę i czyta jej logi
- **Małych zespołów**, które do startu trzymają stronę za hasłem

### Poszukaj gdzie indziej, jeśli

- Twoja aplikacja potrzebuje kilku regionów albo autoskalowania

## Pytania

### Czy strona Jekyll potrzebuje Dockerfile do wdrożenia na Pethost?

Tak. Projekt na Pethost działa z Dockerfile albo z pliku Compose, a `pethost deploy` nie pisze go dla Jekylla. Cały plik to 38 linii z tej strony: Ruby buduje stronę, a Caddy serwuje `_site`.

### Jakiej wersji Ruby używa Dockerfile dla Jekylla?

Tej, którą podaje jego pierwsza linia: `ruby:4.0`, czyli Ruby 4.0.9, gdy budowaliśmy stronę. Jekyll wymaga Ruby 2.7.0 lub nowszego, a strona, która przypina wersję w `.ruby-version`, powinna podać tam tę samą.

### Dlaczego linki w kanale mojej strony Jekyll są względne?

Bo `url` jest pusty w `_config.yml`, tak jak zostawia go `jekyll new`. Ustaw go na adres strony, na przykład `url: "https://my-site.sam.pethost.app"`, i wdróż ponownie: linki w kanale będą wtedy miały cały adres.

### Czy mogę wdrażać stronę Jekyll 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 buduje stronę tym samym Dockerfile i ją wdraża, a `pethost rollback` wraca do wcześniejszego commita.

### Jak podpiąć własną domenę z HTTPS do strony Jekyll?

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

### Ile kosztuje hosting strony Jekyll 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.

Ekrany to wdrożenia strony zrobionej przez `jekyll new`, z Jekyllem 4.4.1 i minima 2.5.2, Ruby 4.0.9 i Bundlerem 4.0.23 oraz pethost 0.2.4, na naszej maszynie testowej, która przed pierwszym wdrożeniem nie miała ani obrazu Ruby, ani obrazu Caddy. Konto na nich to przykładowe `sam`.

1. [Jekyll: szybki start](https://jekyllrb.com/docs/)
2. [Jekyll: instalacja i jej wymagania](https://jekyllrb.com/docs/installation/)
3. [Jekyll: krok po kroku, wdrożenie](https://jekyllrb.com/docs/step-by-step/10-deployment/)
4. [Jekyll: permalinki](https://jekyllrb.com/docs/permalinks/)
5. [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

- 25 października 2026 [Jak wdrożyć aplikację Streamlit w 2026: jedno polecenie, HTTPS i Dockerfile, który zostaje twój](https://pethost.dev/pl/blog/deploy-streamlit-app/) Wdróż aplikację Streamlit jednym poleceniem: pethost deploy pisze Dockerfile, uruchamia streamlit run i serwuje aplikację przez HTTPS za 9,99 €/mies.
- 24 października 2026 [Jak wdrożyć aplikację PHP w 2026: Laravel, Symfony albo zwykłe strony PHP jednym poleceniem](https://pethost.dev/pl/blog/deploy-php-app/) Wdróż aplikację PHP jednym poleceniem: pethost deploy pisze Dockerfile dla Laravela, Symfony lub zwykłych stron PHP i serwuje ją przez HTTPS za 9,99 €/mies.
- 10 października 2026 [Jak wdrożyć aplikację Gin w 2026: jedno polecenie, HTTPS i Dockerfile, który zostaje u ciebie](https://pethost.dev/pl/blog/deploy-gin-app/) Wdróż aplikację Go Gin jednym poleceniem: pethost deploy pisze Dockerfile, buduje program i serwuje go przez HTTPS za 9,99 € miesięcznie.
- 10 października 2026 [Jak wdrożyć aplikację Go Fiber w 2026: jedno polecenie, HTTPS i Dockerfile, który zostaje u ciebie](https://pethost.dev/pl/blog/deploy-fiber-app/) Wdróż aplikację Go Fiber jednym poleceniem: pethost deploy pisze Dockerfile, buduje ją w 45 sekund i serwuje przez HTTPS za 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/)
