But : mettre en place une routine de travail claire (aperçu local → build → déploiement), versionner le site et préparer un déploiement CI via GitHub Actions.
Introduction
Cette note définit une routine simple et reproductible pour gérer un site statique construit avec Hugo. L’objectif est de :
- Travailler en local avec aperçu immédiat.
- Générer un build optimisé pour la production.
- Déployer proprement sur un serveur (ex. Linode + Apache).
- Versionner les sources avec Git.
1) Routine quotidienne en 4 étapes
1. Aperçu local
hugo server -D- Ouvre http://localhost:1313
- L’option
-Dinclut les contenus en brouillon (draft: true).
2. Build de production
rm -rf public/ resources/_gen/
hugo --minify- Supprime les anciens artefacts.
- Génère un site optimisé (HTML minifié).
- La version statique finale est produite dans le dossier
public/.
3. Déploiement sur le serveur (Linode + Apache)
rsync -avz --delete public/ user@ton-linode:/var/www/mon-site.ca/public_html/--deletesupprime les fichiers obsolètes côté serveur.- Synchronisation incrémentale rapide et efficace.
Optionnel : recharger Apache après déploiement.
ssh user@ton-linode "sudo systemctl reload apache2"4. Versionner les sources
git add -A
git commit -m "Mise à jour du contenu"
git push- Toujours versionner les sources (pas le dossier
public/si ignoré via.gitignore). - Permet un historique clair des modifications.
2) Créer un dépôt distant
Option A — GitHub (dépôt privé ou public)
Créer un dépôt vide (sans README ni licence à la création), puis lier le projet local :
git remote add origin git@github.com:TonCompte/mon-site.ca.git
git branch -M main
git push -u origin mainCe dépôt servira de base pour un futur déploiement automatisé via GitHub Actions.
Option B — Serveur personnel (bare repo via SSH)
Sur le serveur (ex. VPS)
ssh user@mon-serveur
mkdir -p ~/repos && cd ~/repos
git init --bare mon-site.ca.gitSur le laptop (dans le projet)
git remote add origin user@mon-serveur:repos/mon-site.ca.git
git branch -M main
git push -u origin mainCette approche permet un contrôle total de l’infrastructure.
3) Exemple de README.md minimal
# mon-site.ca — Site Hugo
Site statique construit avec **Hugo (extended)** et déployé sur un serveur **Apache**.
## Développement
```bash
hugo server -D
```
Aperçu local : http://localhost:1313
## Build
```bash
rm -rf public/ resources/_gen/
hugo --minify
```
La sortie est générée dans `public/`.
## Déploiement (manuel)
```bash
rsync -avz --delete public/ user@ton-linode:/var/www/mon-site.ca/public_html/
```Conclusion
Cette routine garantit :
- Un cycle clair développement → production.
- Un déploiement reproductible.
- Un historique de version fiable.
Prochaine étape recommandée : automatiser le build et le déploiement avec GitHub Actions (TODO: ajouter workflow YAML).