3.8 KiB
tags, title, description, type, theme
| tags | title | description | type | theme | ||
|---|---|---|---|---|---|---|
|
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. | article | outils |
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 l’inté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.
-
Allez sur la page Releases de Hugo.
-
Téléchargez le pack
.debcorrespondant à votre architecture (généralementhugo_extended_X.X.X_linux-amd64.deb). -
Installez-le avec
dpkg:sudo dpkg -i hugo_extended_*.deb -
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 :
-
Local : Vous rédigez vos articles sur votre PC et testez avec
hugo server. -
Génération : Une fois prêt, vous lancez la commande
hugo. -
Déploiement : Vous envoyez le dossier
public/vers votre serveur Debian (viarsync,scpou un simplegit 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é.