Français

Blog · Guides de déploiement

Comment déployer un site Eleventy en 2026 : une commande, HTTPS et un Dockerfile qui reste à vous

Par l’équipe Pethost · · Mis à jour le · 9 min de lecture

Vous avez un site Eleventy qui se construit sur votre ordinateur, et vous voulez le mettre en ligne à une adresse en HTTPS. Sur Pethost, c’est une seule commande, pethost deploy, lancée dans le dossier qui contient package.json. Elle écrit le Dockerfile à votre place, lance votre script de build et sert _site. Un petit site créé comme le font les premiers pas d’Eleventy a été construit et démarré en 24 secondes la première fois.

En bref
  • Un script : "build": "npx @11ty/eleventy" dans package.json, comme le conseille la page de déploiement d’Eleventy elle-même.
  • Une commande : pethost deploy dans le dossier qui contient package.json. Elle écrit un Dockerfile qui lance le script et sert _site.
  • Les adresses propres fonctionnent : /about/ répond 200, /about y mène, et une adresse qui n’est pas une page répond 404.
  • L’adresse : https://my-site.yourname.pethost.app, en HTTPS d’emblée. Votre propre domaine, c’est un enregistrement DNS.
  • Le prix : 9,99 € par mois pour 2 vCPU, 3 GB et 30 GB, pour ce site et tous vos autres projets. Il n’y a pas d’offre gratuite.

Ce qu’il faut pour déployer un site Eleventy en 2026

Trois choses : le site, la commande pethost et un compte Pethost.

Le site est ici créé comme le font les premiers pas d’Eleventy, avec deux pages 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

Ajoutez le script de build. La page de déploiement d’Eleventy le conseille pour tout hébergeur qui construit le site à votre place, et c’est ainsi que pethost sait qu’il s’agit d’un site Eleventy qui se construit avec une commande :

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

La commande est un seul programme, qui s’installe en une ligne. Toutes ses commandes sont dans la référence de la CLI.

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

Le compte a besoin d’une offre. Si vous n’êtes pas connecté, pethost deploy ouvre votre navigateur et vous connecte. Si vous n’avez pas encore d’offre, la commande vous montre où en choisir une, et attend.

Déployer le site Eleventy en une commande

Allez dans le dossier qui contient package.json et lancez pethost deploy. Voici l’écran entier, pour le site ci-dessus :

$ 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. Elle pose une seule question Le nom du projet, qui est le premier mot de son adresse. La touche Entrée prend le nom du dossier.
  2. La machine ne trouve rien à lancer Le dossier part directement sur votre machine, sans node_modules. La ligne avec la croix est sa réponse : un projet tourne à partir d’un Dockerfile ou d’un fichier Compose, et le dossier n’a encore ni l’un ni l’autre.
  3. pethost écrit le Dockerfile Il a vu @11ty/eleventy dans package.json et un script qui le lance, et il envoie de nouveau le dossier.
  4. La machine le construit et le démarre Puis pethost interroge lui-même l’adresse, et affiche ce qu’elle a répondu : 200.

Le fichier .pethost indique à quel projet correspond ce dossier. Commitez-le avec le Dockerfile, et le prochain déploiement ne demandera rien.

Le Dockerfile que pethost écrit pour Eleventy

Voici le fichier tel qu’il a été écrit dans le dossier du site, en entier :

# 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

Ses premières lignes disent ce que pethost a lu dans votre dossier. Trois choses en viennent :

La seconde moitié est un petit serveur web pour _site, le dossier de sortie par défaut d’Eleventy. Si la machine ne peut pas construire ou démarrer le Dockerfile écrit par pethost, pethost retire le fichier de votre dossier et dit ce qui a échoué.

Les adresses propres d’Eleventy fonctionnent-elles ?

Eleventy écrit about.md dans _site/about/index.html, l’adresse de la page est donc /about/. Nous avons demandé au site déployé ce que demande un visiteur :

Ce qu’a répondu le site Eleventy déployé
AdresseRéponse
/200, la page d’accueil
/about/200, la page
/about308, une redirection vers /about/
/nothing404

Si votre site a un 404.html à la racine de _site, une adresse qui n’est pas une page l’affiche.

Modifier une page et redéployer

Modifiez une page et lancez la même commande. Le deuxième déploiement a pris 4 secondes, car la machine garde les couches du build et le cache de 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

Pour construire et déployer plutôt à chaque push, connectez le dépôt une fois :

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

Pethost ne lit que les dépôts que vous avez donnés à son application GitHub. Si un déploiement tourne mal, pethost rollback remet la version d’avant, et votre machine garde les trois versions qui précèdent l’actuelle. Un agent IA peut faire tout cela pour vous via le serveur MCP de Pethost : comment un agent déploie un projet et s’en occupe. La même commande déploie un site VitePress.

Utiliser votre propre domaine pour le site

Tout nom sous le domaine de votre compte est aussitôt une adresse, en HTTPS. Un domaine à vous demande une commande et un enregistrement DNS :

pethost domain add www.example.com

La commande affiche l’enregistrement à créer : un CNAME de votre nom vers le nom de votre machine. Le certificat arrive tout seul dès que le nom se résout, et se renouvelle tout seul. pethost password place une page de mot de passe devant tout le site, pour un site qui n’est pas encore public.

Ce que vous obtenez pour ce prix

Pethost coûte 9,99 € par mois pour tout ce que vous hébergez, sur 2 vCPU, 3 GB de mémoire et 30 GB de disque. Un site Eleventy construit, ce sont des fichiers derrière un petit serveur web : la machine a donc de la place pour le backend d’un formulaire de contact, une base de données et vos autres projets. Il n’y a pas de frais par projet et rien n’est facturé à l’usage : le deuxième site ne coûte rien de plus, pas plus qu’un mois avec beaucoup de lecteurs.

Ce qui est déjà fait pour vous : HTTPS avec des certificats qui se renouvellent tout seuls, déploiements depuis GitHub, sauvegardes chaque nuit conservées 14 jours, SSH dans n’importe quel conteneur, et chaque requête comptée. La console affiche les chemins les plus sollicités des 30 derniers jours, ce qui, pour un blog, est la liste des articles que les gens lisent vraiment. La machine est toujours allumée, donc une page n’attend jamais un démarrage à froid. Les offres sont dans la partie tarifs de la page d’accueil.

Les pages que les gens lisent. Les dix chemins les plus sollicités d’un projet avec leur part et leurs temps de réponse, et le journal des requêtes une par une.
La console Pethost : les dix chemins les plus sollicités d’un projet avec leur part, leur nombre et leurs temps de réponse, et le journal des requêtes une par une.

Pethost est le meilleur choix pour

  • Ceux qui ont un blog et autre chose : le site Eleventy, une application et une base de données sur une machine, sur une seule facture
  • Les développeurs solo qui ont plusieurs projets perso, chacun avec son propre site
  • Ceux dont l’agent déploie à leur place : Claude Code ou Codex met le site en ligne et lit ses logs
  • Les petites équipes qui veulent un site derrière une page de mot de passe jusqu’au lancement

Cherchez ailleurs si

  • Votre application a besoin de plusieurs régions ou d’autoscaling

Questions

Faut-il un Dockerfile pour déployer un site Eleventy ?

Sur Pethost, un projet tourne à partir d’un Dockerfile ou d’un fichier Compose, et vous n’avez pas à l’écrire : dans un dossier qui n’a ni l’un ni l’autre, pethost deploy écrit le Dockerfile d’un site Eleventy et le déploie. Le fichier reste dans votre dossier, et vous pouvez le modifier.

Quelle commande de build utiliser pour déployer un site Eleventy ?

Votre propre script build de package.json, par exemple "build": "npx @11ty/eleventy". Le Dockerfile lance npm run build et sert _site, le dossier de sortie par défaut d’Eleventy.

Pourquoi pethost deploy n’a pas écrit de Dockerfile pour mon site Eleventy ?

Il en écrit un quand package.json contient @11ty/eleventy et un script qui le lance. Ajoutez "build": "npx @11ty/eleventy" aux scripts et relancez la commande.

Peut-on déployer un site Eleventy depuis GitHub à chaque push ?

Oui. Déployez le dossier une fois avec pethost deploy, puis lancez pethost github owner/repository. Dès lors, chaque push sur le dépôt se construit et se déploie tout seul, et pethost rollback revient à un commit précédent.

Comment utiliser un domaine personnalisé en HTTPS pour un site Eleventy ?

Lancez pethost domain add www.example.com et créez l’unique enregistrement DNS que la commande affiche, un CNAME vers le nom de votre machine. Le certificat arrive tout seul dès que le nom se résout, et se renouvelle tout seul.

Combien coûte l’hébergement d’un site Eleventy sur Pethost ?

9,99 € par mois pour Starter, avec 2 vCPU, 3 GB et 30 GB, sans frais par projet : vos autres sites, applications et bases de données y tournent aussi. Il n’y a pas d’offre gratuite. Les prix sont hors TVA.

Les écrans sont des déploiements d’un site de deux pages créé comme le font les premiers pas d’Eleventy, avec Eleventy 3.1.6 et pethost 0.2.1, sur une de nos machines de test qui n’avait encore rien construit. Le compte qu’on y voit est celui de l’exemple, sam.

  1. Eleventy : bien démarrer
  2. Eleventy : déploiement et hébergement
  3. pethost, la ligne de commande de Pethost

Mettez vos projets en ligne dès aujourd’hui

Déployez applications, bots et bases de données depuis votre agent, GitHub ou le navigateur, autant qu’il en tient, à un prix fixe. Rien au compteur, rien facturé en plus.

Tout héberger pour 9,99 €/mois