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 :

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 :

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 :

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.