Fichiers de configuration
Certains fichiers de src/ sont versionnés sous forme de gabarit, suffixés -dist.
make configure les rend en y substituant les variables du profil, et le résultat est
gitignoré.
Cette page dit lesquels, pourquoi, et où est le piège.
Les deux gabarits, et pourquoi ils le restent
| Fichier | Pourquoi il ne peut pas être versionné rendu |
|---|---|
|
Porte le domaine, le titre, le thème et la lecture automatique — quatre valeurs qui diffèrent d’un profil à l’autre. |
|
Porte l’hôte, le nom de base, l’utilisateur et le mot de passe. |
databases.yml versé rendu reviendrait à publier des secrets dans un dépôt public.
app.yml n’en porte plus depuis le 19 août 2026 — le jeton Cloudflare est parti avec la
tâche de purge, morte, remplacée par un workflow qui appelle l’API directement — mais il
reste un gabarit : ses quatre valeurs sont propres à chaque profil de déploiement.
|
Un troisième a quitté la convention le 18 août 2026 : le contrat OpenAPI. Il ne portait
aucun secret — seulement le domaine — et cette seule variable a suffi à le rendre
introuvable en production pendant une journée. Il est désormais versionné tel quel, avec
une adresse de serveur relative. Voir |
Le piège : la convention a survécu à son déploiement
La convention -dist + make configure datait du déploiement par rsync, qui rendait les
fichiers avant de les envoyer. Le déploiement se fait maintenant par git pull, et les
rendus sont gitignorés.
|
Aucun fichier Il y arrive uniquement s’il a été rendu sur le serveur, ou envoyé à la main. Ajouter un nouveau gabarit sans y penser produit un fichier absent en ligne — sans erreur, sans trace, et sans que rien ne le signale. |
make configure refuse plutôt que de détruire
|
Ne pas lancer Depuis le 19 août 2026, la cible refuse au lieu de détruire lorsqu’elle ne dispose d’aucune variable. Elle affiche ce qui manque et sort en erreur, sans toucher un seul fichier. |
Le mécanisme, mesuré
Le diagnostic qui a circulé après l’incident du 18 août — « le fichier .env n’existe pas
sur le serveur, donc la substitution échoue » — était faux, et l’inverse est vrai.
Reproduit sous Linux dans un répertoire jetable :
État de src/.env |
make configure |
Résultat |
|---|---|---|
Absent |
Refuse |
|
Vide, ou sans variable |
Réussissait |
L'`include` passe, la liste blanche est vide, et |
Correct |
Réussit |
Rendu correct. |
|
Le piège n’est pas réservé au serveur. Sur un poste de développement, |
Ce que le garde-fou refuse
Il porte sur la liste de variables, et non sur l’existence du fichier : celle-ci est déjà couverte par l'`include`, et garder dessus aurait laissé passer exactement le cas qui a cassé le site.
La vérification a lieu avant la boucle d’écriture. Soit tous les gabarits sont rendus, soit aucun ne l’est — une configuration à moitié rendue serait plus difficile à diagnostiquer qu’une configuration entièrement fausse.
Pour re-rendre la configuration de production, la rendre localement avec le profil voulu, puis envoyer le résultat :
make configure PROFILE=www.musiqueapproximative.net
État vérifié le 18 août 2026
Les valeurs publiquement observables ont été confrontées à ce que le profil de production produirait — en comparant ce qui arrive au visiteur, non des fichiers entre eux.
| Valeur | Attendue | Servie |
|---|---|---|
Titre de page |
Musique Approximative |
✅ |
URL des pistes |
|
✅ |
|
✅ |
|
Lecture automatique |
0 |
✅ |
Rien n’a dérivé. Le parc de fichiers périmés qu’on redoutait n’existe pas.
Constater l’encodage de la connexion
https://www.musiqueapproximative.net/encodage répond en JSON, sans authentification, en
lecture seule.
curl -s https://www.musiqueapproximative.net/encodage
| Verdict | Ce que ça veut dire |
|---|---|
|
La connexion est en |
|
La connexion n’est pas en |
|
La base est injoignable. Ce n’est pas un encodage fautif ; c’est une panne. |
Le rendez-vous nocturne contrat-production.yml interroge cette route les jours ouvrés à
8 h et n’échoue que sur non-conforme.
|
Le verdict porte sur la connexion, pas sur les titres. Un C’est pourquoi la réponse porte deux chiffres à côté du verdict, tous deux calculés :
Voir Morceaux au titre altéré. |
Ce que cette vérification ne couvre pas
databases.yml n’expose aucune valeur observable depuis l’extérieur. La ligne
encoding: utf8mb4, posée le 18 août 2026, ne se vérifie pas depuis un navigateur. Si elle
n’était pas rendue en production, la connexion convertirait toujours les caractères — et
personne ne le saurait avant le prochain titre détruit.
Cette limite est levée pour l’encodage depuis le 2026-08-19, par la route décrite ci-dessus. Elle demeure pour les autres valeurs — hôte, utilisateur, mot de passe — qui se signalent d’elles-mêmes : sans elles, le site ne répond pas. L’encodage était le seul à pouvoir être faux sans que rien ne tombe.