Blog · Poradniki wdrożeń
Jak wdrożyć stronę Eleventy w 2026: jedno polecenie, HTTPS i Dockerfile, który zostaje u ciebie
Masz stronę w Eleventy, 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, uruchamia twój skrypt build i serwuje _site. Mała strona zrobiona tak, jak robią ją pierwsze kroki Eleventy, za pierwszym razem zbudowała się i uruchomiła w 24 sekundy.
- Jeden skrypt:
"build": "npx @11ty/eleventy"wpackage.json, tak jak radzi strona Eleventy o wdrażaniu. - Jedno polecenie:
pethost deployw katalogu zpackage.json. Pisze Dockerfile, który uruchamia skrypt i serwuje_site. - Czyste adresy działają:
/about/odpowiada 200,/aboutdo niego prowadzi, a adres, pod którym nie ma podstrony, odpowiada 404. - 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ę Eleventy w 2026
Trzech rzeczy: strony, polecenia pethost i konta Pethost.
Strona jest tu zrobiona tak, jak robią ją pierwsze kroki Eleventy, z dwiema podstronami w Markdownie:
mkdir my-site && cd my-site
npm init -y
npm pkg set type="module"
npm install @11ty/eleventy
echo '# Heading' > index.md
echo '# About' > about.md
Dodaj skrypt build. Strona Eleventy o wdrażaniu radzi go przy każdym hostingu, który buduje stronę za ciebie, i po nim pethost poznaje, że to strona Eleventy budowana poleceniem:
"scripts": {
"build": "npx @11ty/eleventy"
}
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.
Wdróż stronę Eleventy jednym poleceniem
Przejdź do katalogu z package.json i uruchom pethost deploy. Oto cały ekran dla strony powyżej:
$ cd my-site
$ pethost deploy
Name it [my-site]: it will live at https://my-site.sam.pethost.app
✓ Packed 5 files, 55 KB (left out node_modules)
✓ Uploaded straight to your machine
✗ /compose.yaml: the project directory has no compose.yaml at its root: add one
✓ Eleventy site detected, wrote Dockerfile.
✓ Packed 6 files, 56 KB (left out node_modules)
✓ Uploaded straight to your machine
✓ Built and started in 24 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.
- 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. - pethost pisze Dockerfile Zobaczył
@11ty/eleventywpackage.jsoni skrypt, który go uruchamia, więc wgrywa katalog jeszcze raz. - 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 Eleventy
Oto cały plik, tak jak trafił do katalogu strony:
# Written by pethost deploy for this Eleventy site: package.json builds it with "npx
# @11ty/eleventy", which writes _site, 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 build
# The site is files: Caddy serves them on port 80.
FROM caddy:2
COPY --from=build /app/_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
Jego pierwsze linie mówią, co pethost przeczytał w twoim katalogu. Stamtąd biorą się trzy rzeczy:
- Build to twój skrypt, uruchamiany przez
npm run build. To, co skrypt robi poza Eleventy, na przykład krok z CSS, wykonuje się razem z nim. - Menedżer pakietów to ten, który wskazuje twój lockfile: npm, pnpm, Yarn albo Bun.
- Wersja Node to ta, którą podaje
.nvmrcalbo.node-version, a gdy nie ma żadnego z nich, Node 24.
Druga połowa to mały serwer WWW dla _site, domyślnego katalogu wyjściowego Eleventy. 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.
Czy czyste adresy Eleventy działają?
Eleventy zapisuje about.md jako _site/about/index.html, więc adres tej podstrony to /about/. Zapytaliśmy wdrożoną stronę o to, o co pyta odwiedzający:
| Adres | Odpowiedź |
|---|---|
/ | 200, strona główna |
/about/ | 200, podstrona |
/about | 308, przekierowanie na /about/ |
/nothing | 404 |
Jeśli twoja strona ma 404.html w katalogu głównym _site, adres, pod którym nie ma podstrony, pokazuje właśnie ją.
Zmień podstronę i wdróż ponownie
Zmień treść podstrony i uruchom to samo polecenie. Drugie wdrożenie zajęło 4 sekundy, bo maszyna przechowuje warstwy builda i cache npm:
$ pethost deploy
my-site (.pethost)
✓ Packed 7 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-site.sam.pethost.app
Żeby zamiast tego budować i wdrażać po każdym pushu, podłącz raz repozytorium:
pethost github sam/my-site # 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. To samo polecenie wdraża stronę VitePress.
Użyj własnej domeny dla strony
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 pojawia się sam, gdy tylko nazwa zacznie się rozwiązywać, i sam się odnawia. 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 Eleventy to pliki za jednym małym serwerem WWW, więc na maszynie zostaje miejsce na backend formularza kontaktowego, bazę danych i twoje inne projekty. Nie ma opłaty za projekt ani żadnych liczników: druga strona nic więcej nie kosztuje, tak samo jak miesiąc z wieloma czytelnikami.
- 9,99 € miesięcznie za wszystkie twoje projekty, bez liczników
- 24 s na zbudowanie i uruchomienie strony za pierwszym razem
- 4 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. Panel pokazuje najczęściej odwiedzane ścieżki z ostatnich 30 dni, a w blogu to lista wpisów, 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.
Pethost to najlepszy wybór dla
- Osób z blogiem i czymś więcej: strona Eleventy, aplikacja i baza danych 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ć stronę za hasłem
Poszukaj gdzie indziej, jeśli
- Twoja aplikacja potrzebuje kilku regionów albo autoskalowania
Pytania
Czy strona Eleventy 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 Eleventy i ją wdraża. Plik zostaje w twoim katalogu i możesz go zmieniać.
Jakiego polecenia build używa wdrożenie Eleventy?
Twojego własnego skryptu build z package.json, na przykład "build": "npx @11ty/eleventy". Dockerfile uruchamia npm run build i serwuje _site, domyślny katalog wyjściowy Eleventy.
Dlaczego pethost deploy nie napisał Dockerfile dla mojej strony Eleventy?
Pisze go, gdy package.json ma @11ty/eleventy i skrypt, który go uruchamia. Dodaj "build": "npx @11ty/eleventy" do skryptów i uruchom polecenie jeszcze raz.
Czy mogę wdrażać stronę Eleventy 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ę buduje i wdraża, a pethost rollback wraca do wcześniejszego commita.
Jak podpiąć własną domenę z HTTPS do strony Eleventy?
Uruchom pethost domain add www.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 Eleventy 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 dwustronicowej strony zrobionej tak, jak robią ją pierwsze kroki Eleventy, z Eleventy 3.1.6 i pethost 0.2.1, na naszej maszynie testowej, która wcześniej niczego nie budowała. Konto na nich to przykładowe sam.
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.