Déployer sur GitHub Pages
Déployez votre site Jekyll Zer0-Mistakes sur GitHub Pages avec des générations automatiques.
Déployer sur GitHub Pages
GitHub Pages offre un hébergement gratuit pour les sites Jekyll avec des builds automatiques à chaque push.
Prérequis
- Un compte GitHub
- Votre site Jekyll dans un dépôt GitHub
Configuration
Étape 1 : Configurer votre dépôt
- Accédez à votre dépôt sur GitHub
- Rendez-vous dans Settings → Pages
- Sous Source, sélectionnez votre branche (généralement
main) - Cliquez sur Save
Étape 2 : Configurer Jekyll
Mettez à jour votre _config.yml pour GitHub Pages :
# For user sites (username.github.io) — recommended for forks:
url: "https://username.github.io"
baseurl: "" # Empty — user site deploys at root
# For project sites (username.github.io/repo-name):
# url: "https://username.github.io"
# baseurl: "/repository-name"
# Use remote theme for GitHub Pages compatibility
remote_theme: "bamr87/zer0-mistakes"
# Required plugins (GitHub Pages whitelist)
plugins:
- jekyll-remote-theme
- jekyll-feed
- jekyll-sitemap
- jekyll-seo-tag
Astuce : Forkez dans
<your-username>.github.iopour ne pas avoir à modifierbaseurldu tout. Consultez docs/FORKING.md pour le workflow recommandé.
Étape 3 : Pousser et déployer
git add .
git commit -m "Configure for GitHub Pages"
git push origin main
GitHub va automatiquement builder et déployer votre site.
Types de dépôts
Site utilisateur/organisation (recommandé pour les forks)
- Nom du dépôt :
username.github.io - URL :
https://username.github.io baseurl: ""- Aucune configuration supplémentaire nécessaire — fonctionne d’emblée avec les valeurs par défaut du thème
- Consultez le Guide de fork
Site de projet
- Nom du dépôt : n’importe quel autre nom
- URL :
https://username.github.io/repository-name baseurl: "/repository-name"(doit être défini dans_config.yml)
Domaine personnalisé
Pour utiliser un domaine personnalisé :
- Rendez-vous dans Settings → Pages
- Saisissez votre domaine dans Custom domain
- Cochez Enforce HTTPS
- Configurez le DNS chez votre bureau d’enregistrement de domaine
Consultez Configuration d’un domaine personnalisé pour la configuration DNS détaillée.
Dépannage
Échecs de build
Consultez l’onglet Actions pour les journaux de build :
- Accédez au dépôt → Actions
- Cliquez sur le workflow ayant échoué
- Examinez les messages d’erreur
Problèmes courants :
- Front matter invalide (syntaxe YAML)
- Dépendances manquantes
- Plugin absent de la liste blanche de GitHub Pages
Le site ne se met pas à jour
- Vérifiez que le push a réussi
- Vérifiez le statut du build dans Actions
- Patientez quelques minutes pour la propagation du CDN
- Essayez un rechargement forcé (Ctrl+Shift+R)
Erreurs 404
- Vérifiez que
baseurlcorrespond au nom de votre dépôt - Vérifiez que le fichier existe au chemin attendu
- Assurez-vous que le
permalinkdu front matter est correct
Limitations de GitHub Pages
| Fonctionnalité | Statut |
|---|---|
| Plugins personnalisés | Non pris en charge (liste blanche uniquement) |
| Temps de build | ~10 minutes max |
| Taille du dépôt | Limite de 1 Go |
| Bande passante | 100 Go/mois |
| Minutes de build | 10/heure, 2000/mois |
Alternative : GitHub Actions
Pour plus de contrôle, utilisez GitHub Actions pour la génération :
# .github/workflows/jekyll.yml
name: Deploy Jekyll
on:
push:
branches: [main]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: '3.0'
bundler-cache: true
- name: Build site
run: bundle exec jekyll build
- name: Deploy
uses: peaceiris/actions-gh-pages@v3
with:
github_token: $
publish_dir: ./_site
Cela permet d’utiliser des plugins personnalisés et d’avoir un meilleur contrôle sur la génération.
Étapes suivantes
- Configuration d’un domaine personnalisé
- Déploiement Netlify — Pour plus de fonctionnalités d’hébergement
Référence technique
Pour les détails destinés aux contributeurs (architecture du module de cible de déploiement, système de profils, intégration CI/CD) :
Voir aussi
- [[Deployment]]
- [[Custom Domain Setup]]
- [[Deploy to Netlify]]
- [[Docker]]