Files
s-informer-sur-la-tech-www/articles/2026/HUGO - Générateur de sites statiques.md

3.9 KiB
Raw Blame History

title, description, tags, type, category, status, lastmod, date
title description tags type category status lastmod date
HUGO - Générateur de sites statiques Hugo est un générateur de sites statiques (SSG) à partir de fichiers Markdown. Des modèles ou templates peuvent être définis.
webmaster
article
Logiciels et Outils
brouillon 2026-02-21 12:19 2026-02-19 12:49

Hugo est un générateur de sites statiques (SSG) propulsé par le langage Go. Là où un CMS traditionnel comme WordPress génère chaque page à la volée via une base de données, Hugo adopte une approche radicale : il pré-compile lintégralité de votre site.

Le résultat ? Une performance brute traduite par des fichiers HTML, CSS et JS légers, prêts à être déployés partout. Reconnu comme le SSG le plus rapide au monde, il traite des milliers de pages en une fraction de seconde. En éliminant le PHP et les bases de données, il neutralise les failles de sécurité classiques. Côté rédaction, tout se passe en Markdown : vous écrivez, Hugo s'occupe du reste, sans dépendances logicielles complexes.

1. Installer Hugo sur Debian

Bien que Hugo soit disponible dans les dépôts officiels de Debian (sudo apt install hugo), la version y est souvent ancienne. Pour bénéficier des dernières fonctionnalités (et du support de thèmes récents), il est préférable d'utiliser le binaire officiel.

  1. Allez sur la page Releases de Hugo.

  2. Téléchargez le pack .deb correspondant à votre architecture (généralement hugo_extended_X.X.X_linux-amd64.deb).

  3. Installez-le avec dpkg :

    sudo dpkg -i hugo_extended_*.deb
    
  4. Vérifiez l'installation : hugo version.


2. Générer votre site

Placez-vous dans votre dossier de travail et créez votre projet :

hugo new site mon-super-site
cd mon-super-site
# Ajoutez un thème (exemple avec Ananke)
git init
git submodule add https://github.com/theNewDynamic/gohugo-theme-ananke.git themes/ananke
echo "theme = 'ananke'" >> hugo.toml

Une fois que votre contenu est prêt (dans le dossier content/), générez le site final :

hugo

Cela crée un dossier public/ à la racine de votre projet. C'est ce dossier seul qu'Apache doit servir.


3. Configurer Apache

Apache va simplement servir les fichiers statiques générés par Hugo.

Déplacer les fichiers

Le plus propre est de copier le contenu de votre dossier public/ vers le répertoire web standard :

sudo cp -r public/* /var/www/mon-site/
sudo chown -R www-data:www-data /var/www/mon-site/

Créer le VirtualHost

Créez un fichier de configuration pour votre site :

sudo nano /etc/apache2/sites-available/mon-site.conf

Collez-y cette configuration minimale :

Apache

<VirtualHost *:80>
    ServerName www.votre-domaine.com
    DocumentRoot /var/www/mon-site

    <Directory /var/www/mon-site>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Activer le site

Bash

sudo a2ensite mon-site.conf
sudo systemctl reload apache2

Le flux de travail idéal (Workflow)

Pour que ce soit efficace, vous ne devriez pas travailler directement dans /var/www/. Voici comment font les pros :

  1. Local : Vous rédigez vos articles sur votre PC et testez avec hugo server.

  2. Génération : Une fois prêt, vous lancez la commande hugo.

  3. Déploiement : Vous envoyez le dossier public/ vers votre serveur Debian (via rsync, scp ou un simple git pull).


Un petit conseil : Comme votre site est statique, n'oubliez pas d'activer le module mod_expires d'Apache. Cela permettra aux navigateurs de vos visiteurs de mettre en cache les images et le CSS, rendant votre site encore plus instantané.