Infrastructure
Ce site repose volontairement sur une petite architecture statique.
Composants
Les principaux composants sont :
- des fichiers Org Mode comme format source lisible par l'humain ;
- Hugo comme générateur de site statique ;
- Git pour la gestion de versions ;
- rsync ou une étape de déploiement maîtrisée équivalente ;
- nginx comme serveur HTTP de production ;
- Debian GNU/Linux comme système d'exploitation.
Le serveur de production n'a besoin ni de Hugo, ni d'Emacs, ni d'une base de données, ni d'une application web dynamique. Il ne sert que les fichiers produits par la machine de build.
Chemin de publication
X260 / machine de développement
Sources Org
+
layouts Hugo
+
ressources statiques
|
v
Hugo
|
v
public/
|
| déploiement
v
Serveur Debian
|
nginx
|
v
InternetCette séparation éloigne l'environnement de build du chemin de service public. Un build en échec ne peut pas modifier la production tant que la sortie générée n'est pas explicitement déployée.
Modèle de service statique
nginx sert des fichiers ordinaires depuis l'arborescence générée. Une requête de page normale n'exécute ni requête de base de données ni application.
Les conséquences sont utiles pour un site technique personnel :
- petite surface d'attaque à l'exécution ;
- sauvegardes simples ;
- inspection facile des fichiers déployés ;
- builds reproductibles ;
- retour arrière simple via Git et les artefacts de builds antérieurs ;
- faible consommation de ressources.
Services réseau
Seul nginx est nécessaire au site lui-même. Les autres services de l'hôte sont administrativement séparés de la chaîne de publication.
Le site doit donc rester compréhensible comme artefact statique indépendant même si l'infrastructure serveur environnante évolue.