Русский

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

Как задеплоить сайт на 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

Если в корне _site есть 404.html, адрес, по которому нет страницы, покажет его.

Изменить страницу и задеплоить снова

Отредактируйте страницу и запустите ту же команду. Второй деплой занял 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" в scripts и запустите команду снова.

Можно ли деплоить сайт на 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 €/мес