---
title: "Comment déployer un site Jekyll en 2026 "
description: "Déployez un site Jekyll avec un court Dockerfile et une commande : Ruby lance jekyll build, Caddy sert _site en HTTPS, pour 9,99 € par mois."
---

[Blog](https://pethost.dev/fr/blog/) · Guides de déploiement

# Comment déployer un site Jekyll en 2026 : un Dockerfile, une commande et HTTPS

Par l’équipe Pethost · 25 octobre 2026 · 11 min de lecture

Vous avez un site Jekyll qui se construit sur votre ordinateur avec `bundle exec jekyll build`, et vous voulez le mettre en ligne à une adresse en HTTPS. Sur Pethost, il faut pour cela un Dockerfile de 38 lignes, à copier depuis cette page, et une commande, `pethost deploy`. Le site que crée `jekyll new` était en ligne en 34 secondes la première fois, et en 3 secondes après une modification.

**En bref**

- **Un fichier :** un Dockerfile en deux étapes. Ruby 4.0 lance `bundle install` et `JEKYLL_ENV=production bundle exec jekyll build`, puis Caddy sert `_site`.
- **Une commande :** `pethost deploy` dans le dossier qui contient `_config.yml`. 34 s la première fois, 3 s pour le déploiement suivant.
- **Les adresses de Jekyll fonctionnent :** `/about/` répond 200, `/about` y mène, un article répond avec ou sans `.html`, et une page absente affiche le `404.html` du site lui-même.
- **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 Jekyll en 2026

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

**Le site** est ici celui que crée le guide de démarrage de Jekyll. Jekyll demande Ruby 2.7.0 ou plus récent ; nous l’avons créé avec Ruby 4.0.9 :

```
gem install jekyll bundler
jekyll new my-site
cd my-site
```

`jekyll new` écrit un `Gemfile` avec Jekyll 4.4.1, le thème minima et le plugin jekyll-feed, lance `bundle install`, qui écrit `Gemfile.lock`, et ajoute une page d’accueil, une page « à propos », un article de bienvenue, un `404.html` et un `.gitignore` qui laisse `_site` de côté. Gardez `Gemfile.lock` : le build installe exactement les gems qu’il nomme.

**La commande** est un seul programme, installé en une ligne. Toutes ses commandes sont dans la [référence de la CLI](https://pethost.dev/docs/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, il vous montre où en choisir une, et attend.

## Pourquoi un site Jekyll a besoin d’un Dockerfile sur Pethost

Un projet sur Pethost tourne à partir d’un Dockerfile ou d’un fichier Compose. Pour les types de projet qu’il connaît, comme un [site Eleventy](https://pethost.dev/fr/blog/deploy-eleventy-site/), `pethost deploy` écrit lui-même le Dockerfile. Jekyll n’en fait pas partie : dans le dossier créé par `jekyll new`, le déploiement s’arrête donc à la réponse de la machine. Voici l’écran entier :

```
$ 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
```

Rien n’a été créé : ni projet, ni adresse. Ajoutez le fichier ci-dessous et relancez la même commande.

## Le Dockerfile pour un site Jekyll

Enregistrez ceci sous le nom `Dockerfile` dans le dossier qui contient `_config.yml`. C’est le fichier entier :

```
# 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
```

La première étape construit le site comme vous le faites sur votre ordinateur :

- **`ruby:4.0`** est l’image Ruby complète, avec un compilateur C. Certaines gems de Jekyll, comme eventmachine et bigdecimal, se compilent à l’installation : sur `ruby:4.0-slim`, qui n’a pas de compilateur, `bundle install` a échoué. Si votre site épingle une version de Ruby dans `.ruby-version`, mettez la même ici.
- **Les gems passent en premier.** `Gemfile` et `Gemfile.lock` sont copiés seuls, si bien qu’une modification d’une page ou d’un article réutilise les gems que la machine a déjà installées. Un lockfile écrit sur un Mac fonctionne aussi : nous avons construit le site avec un lockfile qui ne nommait que macOS, et `bundle install` a choisi lui-même les gems pour Linux.
- **`JEKYLL_ENV=production`** est le build que donne l’étape de déploiement de Jekyll lui-même. Ce que vos layouts n’affichent qu’en production, comme des statistiques de visite, se retrouve dans les pages.

La seconde étape est le petit serveur web que `pethost` écrit pour chaque site fait de fichiers. Il sert `_site`, le dossier de sortie de Jekyll, et rien de l’image Ruby ne l’accompagne : le site tournait dans 15 MB de mémoire.

## Déployer le site Jekyll en une commande

Relancez `pethost deploy`, cette fois avec le Dockerfile dans le dossier. Voici l’écran entier :

```
$ 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
```

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. **Le dossier part directement sur votre machine** Neuf fichiers : ce qu’a écrit `jekyll new`, et le Dockerfile. La ligne qui commence par `·` est la machine qui dit ce qu’elle a fait d’elle-même : elle a trouvé un Dockerfile et pas de fichier Compose, alors elle en a écrit un.
3. **La machine le construit et le démarre** Les 34 secondes comprennent le téléchargement des images de Ruby et de Caddy, que la machine n’avait pas encore. Puis `pethost` interroge lui-même l’adresse, et affiche ce qu’elle a répondu : 200.

Le fichier `.pethost` dit quel projet est ce dossier. Commitez-le avec le Dockerfile, et le déploiement suivant ne demande plus rien.

### Les adresses de Jekyll fonctionnent-elles ?

Jekyll écrit `about.markdown` dans `_site/about/index.html`, et un article à l’adresse que donne son permalien par défaut, `/:categories/:year/:month/:day/:title:output_ext`. Nous avons demandé au site déployé ce que demande un visiteur :

**Ce qu’a répondu le site Jekyll déployé**

| Adresse | Réponse |
| --- | --- |
| `/` | 200, la page d’accueil avec la liste des articles |
| `/about/` | 200, la page |
| `/about` | 308, une redirection vers `/about/` |
| `/jekyll/update/2026/10/25/welcome-to-jekyll.html` | 200, l’article de bienvenue |
| `/jekyll/update/2026/10/25/welcome-to-jekyll` | 200, le même article |
| `/feed.xml` | 200, le flux Atom |
| `/nothing` | 404, la page du site lui-même : « Page not found :( » |

Les pages, le flux et la feuille de style arrivaient compressés au navigateur qui le demandait.

## Définir l’url du site, modifier une page et redéployer

`jekyll new` laisse `url` vide dans `_config.yml`, si bien que les liens du flux n’avaient pas de nom d’hôte : `/jekyll/update/2026/10/25/welcome-to-jekyll.html`. Un lecteur de flux a besoin de l’adresse complète. Définissez-la, et le titre du site avec :

```
title: My site
url: "https://my-site.sam.pethost.app"
```

Puis relancez la même commande. Le deuxième déploiement a pris 3 secondes, parce que la machine garde les couches du build : les gems n’ont pas été réinstallées.

```
$ 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
```

Les liens du flux commencent maintenant par `https://my-site.sam.pethost.app/`, et les titres des pages disent « My site ».

### Déployer le site Jekyll depuis GitHub à chaque push

Mettez le dossier dans un dépôt, avec le Dockerfile et `.pethost` ; `_site` reste dehors, comme le dit le `.gitignore` de Jekyll. Puis connectez le dépôt une fois :

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

La machine télécharge chaque commit et le construit avec le même Dockerfile. 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 en place la version précédente, et votre machine garde les trois versions qui précèdent la version 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](https://pethost.dev/fr/blog/hosting-for-ai-coding-agents/).

## Utiliser votre propre domaine pour le site Jekyll

N’importe quel nom sous le domaine de votre compte est une adresse d’emblée, 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. Un certificat Let’s Encrypt arrive tout seul dès que le nom pointe vers la machine, et se renouvelle tout seul. Mettez ensuite `url` dans `_config.yml` à la nouvelle adresse et redéployez, pour que le flux et les liens des pages la nomment. `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, c’est 9,99 € par mois pour tout ce que vous hébergez, sur 2 vCPU, 3 GB de mémoire et 30 GB de disque. Le site Jekyll construit, ce sont des fichiers derrière Caddy, dans 15 MB de cette mémoire : l’offre a donc de la place pour le backend d’un formulaire de commentaires, une base de données et vos autres projets. Il n’y a [pas de frais par projet](https://pethost.dev/fr/blog/unlimited-projects-flat-monthly-fee/) et rien n’est facturé à l’usage : un deuxième blog ne coûte rien de plus, pas plus que le mois où un article arrive en une d’un forum.

- **9,99 €** par mois pour tous vos projets, rien à l’usage
- **34 s** pour construire et démarrer le site, téléchargement des images compris
- **3 s** pour le déploiement après une modification

Ce qui est déjà fait pour vous : HTTPS avec des certificats qui se renouvellent tout seuls, les déploiements depuis GitHub, des sauvegardes chaque nuit conservées 14 jours, SSH dans n’importe quel conteneur, et chaque requête comptée, sans aucun script dans vos pages. La console montre 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. Rien ne se met en veille, donc un lecteur [n’attend jamais un démarrage à froid](https://pethost.dev/fr/blog/always-on-hosting-no-cold-starts/). Les offres sont dans la partie [tarifs](https://pethost.dev/fr/#pricing) de la page d’accueil.

**Les articles 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.](https://pethost.dev/shots/traffic.webp)

### Pethost est le meilleur choix pour

- **Les blogueurs qui construisent plus qu’un blog** : le site Jekyll, une application et sa base de données sur une offre, sur une seule facture
- **Les développeurs qui ont plusieurs sites**, un site de documentation et une page de projet chacun, à un prix fixe
- **Ceux dont l’agent déploie à leur place** : Claude Code ou Codex déploie le site et lit ses logs
- **Les petites équipes** qui gardent un site derrière une page de mot de passe jusqu’à son 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 Jekyll sur Pethost ?

Oui. Un projet sur Pethost tourne à partir d’un Dockerfile ou d’un fichier Compose, et `pethost deploy` n’en écrit pas pour Jekyll. Les 38 lignes de cette page sont le fichier entier : Ruby construit le site, et Caddy sert `_site`.

### Quelle version de Ruby utilise le Dockerfile Jekyll ?

Celle que nomme sa première ligne : `ruby:4.0`, qui était Ruby 4.0.9 quand nous l’avons construit. Jekyll demande Ruby 2.7.0 ou plus récent, et un site qui épingle une version dans `.ruby-version` doit nommer la même ici.

### Pourquoi les liens de mon flux Jekyll sont-ils relatifs ?

Parce que `url` est vide dans `_config.yml`, comme le laisse `jekyll new`. Mettez-y l’adresse du site, par exemple `url: "https://my-site.sam.pethost.app"`, et redéployez : les liens du flux portent alors l’adresse complète.

### Peut-on déployer un site Jekyll 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 construit le site avec le même Dockerfile et le déploie, et `pethost rollback` revient à un commit précédent.

### Comment utiliser un domaine personnalisé en HTTPS pour un site Jekyll ?

Lancez `pethost domain add www.example.com` et créez l’unique enregistrement DNS qu’elle affiche, un CNAME vers le nom de votre machine. Un certificat Let’s Encrypt arrive tout seul dès que le nom pointe vers la machine, et se renouvelle tout seul.

### Combien coûte l’hébergement d’un site Jekyll 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 du site créé par `jekyll new`, avec Jekyll 4.4.1 et minima 2.5.2, Ruby 4.0.9 et Bundler 4.0.23, et pethost 0.2.4, sur une de nos machines de test qui n’avait ni l’image de Ruby ni celle de Caddy avant le premier déploiement. Le compte qu’on y voit est celui de l’exemple, `sam`.

1. [Jekyll : premiers pas](https://jekyllrb.com/docs/)
2. [Jekyll : installation et prérequis](https://jekyllrb.com/docs/installation/)
3. [Jekyll : pas à pas, le déploiement](https://jekyllrb.com/docs/step-by-step/10-deployment/)
4. [Jekyll : permaliens](https://jekyllrb.com/docs/permalinks/)
5. [pethost, la ligne de commande de Pethost](https://pethost.dev/docs/cli/)

## 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](https://console.pethost.dev/)

## Continuer la lecture

- 25 octobre 2026 [Comment déployer une application Streamlit en 2026 : une commande, HTTPS et un Dockerfile qui reste à vous](https://pethost.dev/fr/blog/deploy-streamlit-app/) Déployez une application Streamlit en une commande : pethost deploy écrit le Dockerfile, lance streamlit run et la sert en HTTPS, pour 9,99 € par mois.
- 24 octobre 2026 [Comment déployer une application PHP en 2026 : Laravel, Symfony ou pages PHP simples en une commande](https://pethost.dev/fr/blog/deploy-php-app/) Déployez une application PHP en une commande : pethost deploy écrit le Dockerfile pour Laravel, Symfony ou des pages PHP et la sert en HTTPS, pour 9,99 €/mois.
- 10 octobre 2026 [Comment déployer une application Gin en 2026 : une commande, HTTPS et un Dockerfile qui reste à vous](https://pethost.dev/fr/blog/deploy-gin-app/) Déployez une application Go Gin en une commande : pethost deploy écrit le Dockerfile, construit le programme et le sert en HTTPS, pour 9,99 € par mois.
- 10 octobre 2026 [Comment déployer une application Go Fiber en 2026 : une commande, HTTPS et un Dockerfile qui reste à vous](https://pethost.dev/fr/blog/deploy-fiber-app/) Déployez une application Go Fiber en une commande : pethost deploy écrit le Dockerfile, la construit en 45 s et la sert en HTTPS, pour 9,99 € par mois.

[Tous les articles](https://pethost.dev/fr/blog/) · [À propos de Pethost](https://pethost.dev/about/) · [Tarifs](https://pethost.dev/fr/#pricing)

Pethost · Stephan Gomer · NIP 1133096755

Pethost

- [Templates](https://pethost.dev/fr/templates/)
- [À propos](https://pethost.dev/about/)
- [Docs](https://pethost.dev/docs/)
- [Blog](https://pethost.dev/fr/blog/)
- [API](https://pethost.dev/docs/api/)
- [CLI](https://pethost.dev/docs/cli/)
- [Plugin](https://github.com/pethost-dev/plugin)
- [Conditions](https://pethost.dev/terms/)
- [Confidentialité](https://pethost.dev/privacy/)
- [Remboursements](https://pethost.dev/refunds/)
- [support@pethost.dev](mailto:support@pethost.dev)

Bases de données

- [Postgres](https://pethost.dev/fr/postgres/)

Comparatifs

- [Coolify vs Dokploy vs CapRover vs Dokku](https://pethost.dev/fr/blog/coolify-vs-dokploy-vs-caprover-vs-dokku/)
- [Coolify Cloud vs Dokploy Cloud](https://pethost.dev/fr/blog/coolify-cloud-vs-dokploy-cloud/)
- [Tarifs Railway vs Render vs Fly.io](https://pethost.dev/fr/blog/railway-vs-render-vs-fly-io-pricing/)
- [Hébergement Docker Compose managé](https://pethost.dev/fr/blog/managed-docker-compose-hosting/)

Alternatives

- [Alternatives à Railway](https://pethost.dev/fr/blog/railway-alternatives/)
- [Alternatives à Heroku](https://pethost.dev/fr/blog/heroku-alternatives/)
- [Alternatives à Dokploy](https://pethost.dev/fr/blog/dokploy-alternatives/)
- [Alternatives à Coolify](https://pethost.dev/fr/blog/coolify-alternatives/)
- [Alternatives à Render](https://pethost.dev/fr/blog/render-alternatives/)
- [Alternatives à Sliplane](https://pethost.dev/fr/blog/sliplane-alternatives/)
