Blog · Poradniki wdrożeń
Jak wdrożyć stronę Jekyll w 2026: Dockerfile, jedno polecenie i HTTPS
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.
- Jeden plik: Dockerfile w dwóch etapach. Ruby 4.0 uruchamia
bundle installiJEKYLL_ENV=production bundle exec jekyll build, a potem Caddy serwuje_site. - Jedno polecenie:
pethost deployw katalogu z_config.yml. 34 s za pierwszym razem, 3 s przy kolejnym wdrożeniu. - Adresy Jekylla działają:
/about/odpowiada 200,/aboutdo niego prowadzi, wpis odpowiada z.htmli bez, a adres, pod którym nie ma podstrony, pokazuje własny404.htmlstrony. - 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.
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, 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.0to pełny obraz Ruby, z kompilatorem C. Niektóre gemy Jekylla, takie jak eventmachine i bigdecimal, kompilują się przy instalacji: naruby:4.0-slim, który nie ma kompilatora,bundle installsię nie udał. Jeśli twoja strona przypina wersję Ruby w.ruby-version, wpisz tu tę samą.- Najpierw gemy.
GemfileiGemfile.locksą 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, abundle installsam wybrał gemy dla Linuksa. JEKYLL_ENV=productionto 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
- Pyta o jedno O nazwę projektu, która jest pierwszym słowem jego adresu. Enter bierze nazwę katalogu.
- 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. - Maszyna buduje i uruchamia projekt Te 34 sekundy obejmują pobranie obrazów Ruby i Caddy, których maszyna jeszcze nie miała. Potem
pethostsam 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:
| 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.
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 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. Plany są w cenniku na stronie głównej.
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.
- Jekyll: szybki start
- Jekyll: instalacja i jej wymagania
- Jekyll: krok po kroku, wdrożenie
- Jekyll: permalinki
- 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.