Lancer son blog avec Zola
Introduction à Zola
Zola est un générateur de sites statiques écrit en Rust, conçu pour être rapide, simple et fiable. Créé par Vincent Prouillet, il se distingue par une architecture épurée et une philosophie minimaliste : pas de dépendance lourde, un binaire unique et un rendu prévisible.
Contrairement à d’autres générateurs qui regroupent de nombreuses fonctionnalités dans le noyau principal, Zola adopte une approche stricte. Le binaire est petit, la compilation est ultra-rapide et le rendu est reproductible. Pour un blog personnel ou un site documentaire, c’est souvent le choix idéal — et pour quelqu’un comme moi qui aime comprendre de bout en bout ce qu’il déploie, c’est exactement ce que je cherchais.
Pourquoi Zola plutôt qu’un autre outil ?
J’ai testé plusieurs alternatives ces dernières années. Jekyll (Ruby), Hugo (Go), ou les générateurs basés sur Node. Tous fonctionnent très bien, mais Zola coche des cases qui comptent pour moi :
- Aucune dépendance d’exécution : pas de runtime à installer sur la machine de build, un simple binaire suffit
- Vitesse de génération : quelques millisecondes même pour un site fourni, ce qui se remarque en local comme en CI
- Sobriété : le minimalisme du rendu pousse à écrire de l’HTML propre et léger, cohérent avec ma manière de concevoir des solutions légères
- Facilité d’intégration : un site statique se déploie n’importe où, y compris sur un Raspberry Pi de mon homelab
Ce blog tourne pour l’instant sur Vercel, en déploiement continu depuis son dépôt Git, mais c’est tout l’intérêt d’un site statique : il se pose n’importe où, y compris sur le Raspberry Pi de mon homelab — et c’est cette voie-là que je documente ici.
Installation
L’installation de Zola est remarquablement simple. Plusieurs méthodes sont disponibles selon votre système d’exploitation.
Via les binaires précompilés
Téléchargez la dernière version stable depuis la page GitHub des releases. Pour Linux, il suffit de décompresser l’archive et d’ajouter le binaire à votre PATH :
tar -xzf zola-v0.23.5-x86_64-unknown-linux-gnu.tar.gz
export PATH="$HOME/.local/bin:$PATH"
Sous Linux, Zola ne nécessite ni Node.js ni environnement lourd : c’est l’un de ses grands atouts pour qui veut du tooling simple.
Via les gestionnaires de paquets
Sur macOS, vous pouvez utiliser Homebrew :
brew install zola
Sur Debian ou Ubuntu, Zola n’est pas dans les dépôts officiels : passez par le binaire des releases GitHub, par Snap (snap install --edge zola), par Flatpak (flatpak install flathub org.getzola.zola) ou par l’archive APT tierce pkg.haus. Sur Windows, Winget, Scoop et Chocolatey proposent également Zola.
Vérification de l’installation
Une fois l’installation terminée, vérifiez que tout fonctionne correctement :
zola --version
La commande doit retourner la version installée. Si vous voyez un numéro de version comme 0.23.5, c’est que tout est en ordre et vous pouvez passer à l’étape suivante.
Initialiser un nouveau site
La commande zola init crée la structure de base d’un nouveau site. Elle vous demande la base URL du site, puis génère les dossiers et fichiers nécessaires :
zola init mon-blog
Après cette commande, vous trouverez dans le dossier mon-blog les éléments suivants :
config.toml: le fichier de configuration principalcontent/: le dossier contenant les pages et articlestemplates/: les fichiers de templates HTMLstatic/: les ressources statiques (images, CSS, JavaScript)sass/: les feuilles de style SCSS
Le fichier de configuration est le cœur du site. C’est là que vous définissez le titre, la base URL, les taxonomies et toutes les options de génération. Notez que les versions récentes de Zola le nomment zola.toml, avec config.toml accepté en rétrocompatibilité.
Comprendre la structure de configuration
Le fichier de configuration utilise le format TOML, un format lisible et concis que je retrouve d’ailleurs quotidiennement dans mes pipelines CI et mes fichiers Docker. Voici les éléments principaux :
base_url = "https://mon-blog.example.com"
title = "Mon Blog"
author = "Joseph Humbert"
generate_feeds = true
feed_filenames = ["rss.xml"]
taxonomies = [
{ name = "tags", paginate_by = 10 },
{ name = "categories", paginate_by = 10 },
]
[markdown.highlighting]
light_theme = "github-light"
dark_theme = "synthwave-84"
La section taxonomies permet de définir les classifications de vos articles. Attention à la syntaxe des versions récentes : il s’agit d’un tableau de tables, et non plus d’une carte clé/valeur. Tags et catégories sont les plus courants, mais vous pouvez en ajouter d’autres selon vos besoins.
Rédiger et publier du contenu
Zola organise le contenu en sections. Chaque section est un dossier dans content/ avec un fichier _index.md qui définit les métadonnées de la section. Les articles sont des fichiers Markdown avec un en-tête TOML délimité par +++.
Voici un exemple de structure pour un blog :
content/
_index.md
blog/
_index.md
article-1.md
article-2.md
a-propos.md
Pour créer un article, il suffit d’ajouter un fichier .md dans le dossier blog/ avec le front matter approprié. Un détail qui m’a fait trébucher au départ : les taxonomies d’une page se déclarent dans un sous-bloc [taxonomies] du front matter, et non comme de simples clés à plat. Une fois ceci compris, Zola gère automatiquement le tri par date, la pagination et la génération des flux RSS.
Développement local et build
Zola propose deux commandes principales pour le développement :
zola serve
Cette commande lance un serveur de développement local avec rechargement automatique. Vous pouvez prévisualiser le site en temps réel, modifier vos articles et voir les changements immédiatement. Le serveur écoute par défaut sur le port 1111.
Pour générer la version finale du site, prête pour la mise en production :
zola build
La commande crée un dossier public/ contenant tous les fichiers HTML, CSS et JS optimisés. Ce dossier est ce que vous déployez sur votre serveur d’hébergement. La compilation est extrêmement rapide, souvent en moins d’une seconde pour un blog de taille moyenne.
Déploiement et maintenance
Une fois le site généré, plusieurs options de déploiement s’offrent à vous :
- Netlify : déploiement automatique via Git, très populaire pour les sites statiques
- GitHub Pages : hébergement gratuit avec intégration GitHub Actions
- VPS ou serveur personnel : transfert via rsync, ou déploiement automatisé via un pipeline de CI que je configure en général avec Docker ou des tâches cron
Pour ma part, c’est cette dernière option que j’affectionne : elle s’inscrit naturellement dans ma démarche d’automatisation et de self-hosting. Un simple rsync ou un job de CI suffit à publier la dernière version du site.
Pour la maintenance, Zola impose très peu de contraintes. Les mises à jour sont rares et généralement rétrocompatibles. Il est recommandé de surveiller les notes de version pour connaître les changements éventuels.
Conclusion
Lancer un blog avec Zola est une expérience agréable et efficace. L’installation est rapide, la configuration est claire et la rédaction se fait naturellement en Markdown. Pour développeurs techniques cherchant un outil fiable et performant, Zola représente un excellent choix. Cet article est d’ailleurs lui-même publié avec la version 0.23.5 de Zola, et vous êtes en train de lire le résultat direct du pipeline que je viens de décrire.
N’hésitez pas à explorer la documentation officielle pour approfondir les fonctionnalités avancées, et à me suivre sur GitHub où les projets évoqués dans ce blog sont régulièrement mis à jour.