vault backup: 2026-02-20 21:31:27

This commit is contained in:
2026-02-20 21:31:27 +01:00
parent 6e2a6be55f
commit 1cf23ea836
19 changed files with 259 additions and 39 deletions

View File

@@ -0,0 +1,123 @@
---
tags:
- webmaster
title: HUGO, le générateur de sites statiques
description: Hugo est un générateur de sites statiques (SSG) à partir de fichiers Markdown. Des modèles ou templates peuvent être définis.
page_type:
- article
theme: "[[Logiciels et Outils]]"
auteur: "[[Cédrix]]"
date_create: 2026-02-20
article_etat:
- brouillon
---
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](https://github.com/gohugoio/hugo/releases).
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` :
```bash
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 :
```bash
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 :
```bash
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 :
```bash
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é.