Українська

Блог · Гайди з деплою

Як задеплоїти сайт на Eleventy у 2026: одна команда, HTTPS і Dockerfile, що лишається у вас

Команда Pethost · · Оновлено · 8 хв читання

У вас є сайт на Eleventy, який збирається на ноутбуці, і ви хочете, щоб він був онлайн за адресою з HTTPS. У Pethost це одна команда, pethost deploy, у папці, де лежить package.json. Вона сама пише Dockerfile, запускає ваш скрипт збірки та віддає _site. Невеликий сайт, зроблений за першими кроками з документації Eleventy, першого разу зібрався й запустився за 24 секунди.

Коротко
  • Один скрипт: "build": "npx @11ty/eleventy" у package.json, як радить сторінка Eleventy про деплой.
  • Одна команда: pethost deploy у папці, де лежить package.json. Вона пише Dockerfile, який запускає скрипт і віддає _site.
  • Чисті адреси працюють: /about/ відповідає 200, /about веде на неї, а адреса, за якою немає сторінки, відповідає 404.
  • Адреса: https://my-site.yourname.pethost.app, з HTTPS одразу. Ваш власний домен — це один DNS-запис.
  • Ціна: 9,99 € на місяць за 2 vCPU, 3 GB і 30 GB, для цього сайту й усіх інших ваших проєктів. Безплатного тарифу немає.

Що потрібно, щоб задеплоїти сайт на Eleventy у 2026

Три речі: сайт, команда pethost і акаунт Pethost.

Сайт тут зроблено за першими кроками з документації Eleventy, з двома сторінками в Markdown:

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

Додайте скрипт збірки. Сторінка Eleventy про деплой радить його для кожного хостинг-провайдера, який збирає сайт за вас, і саме з нього pethost дізнається, що це сайт на Eleventy, який збирається командою:

"scripts": {
  "build": "npx @11ty/eleventy"
}

Команда — це одна програма, яка встановлюється одним рядком. Усі її команди описано в довіднику CLI.

curl -fsSL https://pethost.dev/install.sh | sh      # macOS, Linux
irm https://pethost.dev/install.ps1 | iex           # Windows, in PowerShell

Акаунту потрібен тариф. Якщо ви не ввійшли, pethost deploy відкриє браузер і виконає вхід. Якщо тарифу ще немає, команда покаже, де його обрати, і зачекає.

Деплой сайту на Eleventy однією командою

Перейдіть у папку, де лежить package.json, і запустіть pethost deploy. Ось увесь екран для сайту вище:

$ 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
  1. Вона питає одне Назву проєкту, яка стає першим словом його адреси. Enter бере назву папки.
  2. Машина не знаходить, що запускати Папка йде просто на вашу машину, без node_modules. Рядок із хрестиком — це її відповідь: проєкт запускається з Dockerfile або файлу Compose, а в папці поки немає ні того, ні іншого.
  3. pethost пише Dockerfile Він побачив @11ty/eleventy у package.json і скрипт, який його запускає, та завантажує папку ще раз.
  4. Машина збирає й запускає сайт Потім pethost сам відкриває адресу й виводить, що вона відповіла: 200.

Файл .pethost каже, який проєкт відповідає цій папці. Закомітьте його разом із Dockerfile, і наступний деплой нічого не питатиме.

Dockerfile, який pethost пише для Eleventy

Ось файл повністю, таким, яким його записано в папку сайту:

# 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

Його перші рядки кажуть, що pethost прочитав у вашій папці. Звідти береться три речі:

Друга половина — це невеликий вебсервер для _site, типової папки виводу Eleventy. Якщо машина не може зібрати чи запустити Dockerfile, який написав pethost, pethost забирає цей файл із вашої папки й каже, що не вдалося.

Чи працюють чисті адреси Eleventy?

Eleventy записує about.md у _site/about/index.html, тож адреса сторінки — /about/. Ми запитали в задеплоєного сайту те, що запитує відвідувач:

Що відповів задеплоєний сайт на Eleventy
АдресаВідповідь
/200, головна сторінка
/about/200, сторінка
/about308, редирект на /about/
/nothing404

Якщо у вашому сайті є 404.html у корені _site, адреса, за якою немає сторінки, покаже його.

Змініть сторінку й задеплойте знову

Відредагуйте сторінку й запустіть ту саму команду. Другий деплой тривав 4 секунди, бо машина зберігає шари збірки та кеш 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

Щоб натомість збирати й деплоїти на кожен пуш, один раз підключіть репозиторій:

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

Pethost читає лише ті репозиторії, які ви надали його GitHub App. Якщо деплой пішов не так, pethost rollback повертає попередню версію, а ваша машина зберігає три версії перед поточною. ШІ-агент може зробити все це за вас через MCP-сервер Pethost: як агент деплоїть проєкт і доглядає за ним. Та сама команда деплоїть і сайт на VitePress.

Власний домен для сайту

Будь-яке ім’я в домені вашого акаунта одразу стає адресою з HTTPS. Домен, яким ви володієте, потребує однієї команди й одного DNS-запису:

pethost domain add www.example.com

Команда виводить запис, який треба створити: CNAME з вашого імені на ім’я вашої машини. Сертифікат з’являється сам, щойно ім’я почне вказувати на машину, і сам поновлюється. pethost password ставить сторінку з паролем перед усім сайтом, якщо він ще не публічний.

Що ви отримуєте за ці гроші

Pethost коштує 9,99 € на місяць за все, що ви хостите, на 2 vCPU, 3 GB пам’яті та 30 GB диска. Зібраний сайт на Eleventy — це файли за одним невеликим вебсервером, тож на машині лишається місце для бекенду контактної форми, бази даних та інших ваших проєктів. Плати за проєкт немає, і нічого не тарифікується за використанням: другий сайт не коштує нічого більше, як і місяць із великою кількістю читачів.

Що вже зроблено за вас: HTTPS із сертифікатами, які поновлюються самі, деплої з GitHub, щонічні бекапи, що зберігаються 14 днів, SSH у будь-який контейнер і облік кожного запиту. Панель показує найпопулярніші шляхи за останні 30 днів, а для блогу це список дописів, які люди справді читають. Машина працює завжди, тож сторінка ніколи не чекає на холодний старт. Тарифи — у розділі ціни на головній сторінці.

Які сторінки читають люди. Десять найпопулярніших шляхів проєкту з їхньою часткою та часом відповіді, а також лог окремих запитів.
Панель Pethost: десять найпопулярніших шляхів проєкту з часткою, кількістю й часом відповіді та лог окремих запитів.

Pethost — найкращий вибір для

  • Тих, у кого є блог і ще щось: сайт на Eleventy, застосунок і база даних на одній машині, з одним рахунком
  • Соло-розробників із кількома сайд-проєктами, кожен зі своїм сайтом
  • Тих, за кого деплоїть агент: Claude Code чи Codex викладає сайт онлайн і читає його логи
  • Невеликих команд, яким потрібен сайт за сторінкою з паролем до запуску

Шукайте інше, якщо

  • Вашому застосунку потрібні кілька регіонів або автомасштабування

Питання

Чи потрібен Dockerfile, щоб задеплоїти сайт на Eleventy?

У Pethost проєкт запускається з Dockerfile або файлу Compose, і писати його самому не треба: у папці, де немає ні того, ні іншого, pethost deploy пише Dockerfile для сайту на Eleventy і деплоїть його. Файл лишається у вашій папці, і ви можете його змінювати.

Яку команду збірки використовує деплой Eleventy?

Ваш власний скрипт build із package.json, наприклад "build": "npx @11ty/eleventy". Dockerfile запускає npm run build і віддає _site, типову папку виводу Eleventy.

Чому pethost deploy не написав Dockerfile для мого сайту на Eleventy?

Він пише його, коли в package.json є @11ty/eleventy і скрипт, який його запускає. Додайте "build": "npx @11ty/eleventy" до скриптів і запустіть команду ще раз.

Чи можна деплоїти сайт на Eleventy з GitHub на кожен пуш?

Так. Один раз задеплойте папку через pethost deploy, потім запустіть pethost github owner/repository. Відтоді кожен пуш у репозиторій сам збирається й деплоїться, а pethost rollback повертає до попереднього коміту.

Як підключити власний домен із HTTPS до сайту на Eleventy?

Запустіть pethost domain add www.example.com і створіть один DNS-запис, який вона виведе: CNAME на ім’я вашої машини. Сертифікат з’являється сам, щойно ім’я почне вказувати на машину, і сам поновлюється.

Скільки коштує хостинг сайту на Eleventy в Pethost?

9,99 € на місяць за Starter, з 2 vCPU, 3 GB і 30 GB і без плати за проєкт: там працюють і ваші інші сайти, застосунки та бази даних. Безплатного тарифу немає. Ціни вказано без ПДВ.

На екранах — деплої сайту з двох сторінок, зробленого за першими кроками з документації Eleventy, з Eleventy 3.1.6 і pethost 0.2.1, на нашій тестовій машині, яка раніше нічого не збирала. Акаунт на них — приклад, sam.

  1. Eleventy: початок роботи
  2. Eleventy: деплой і хостинг
  3. pethost, командний рядок Pethost

Запустіть свої проєкти вже сьогодні

Деплойте застосунки, ботів і бази даних з агента, з GitHub або в браузері, скільки поміститься, за однією фіксованою ціною. Нічого за лічильником, нічого зверху.

Хостити всі проєкти за 9,99 €/міс