update-grub lance os-prober, qui sonde toutes les partitions à la recherche
d'autres systèmes, puis régénère la configuration entière : vingt à trente
secondes par machine, payées jusqu'ici même lorsqu'il n'y avait rien à changer.
Sur une install party de quinze machines, cela se voit.
La fonction vérifie donc d'abord, et sort si les deux réglages sont là.
Deux défauts corrigés au passage. Le sed insérait ses lignes avec
l'indentation du script : /etc/default/grub se retrouvait avec des directives
décalées, que GRUB accepte mais qui trompent la lecture quand on vient
déboguer. Et il ne faisait rien du tout si « GRUB_DEFAULT=0 » avait disparu,
ce qui arrive dès qu'un autre outil est passé avant nous — les deux lignes sont
désormais ajoutées si elles manquent, plutôt qu'insérées avant une ligne qui
peut ne plus exister.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XLTJ8DoPfvhZMK5Yxtrfx2
Je l'avais écrite de mémoire, et de mémoire elle était fausse : Xia
donnée pour la 22.2, Wilma pour la 22.1, et Zara absente alors que c'est
elle qui occupe la 22.2. Relevé par la session alpicache, recoupé sur
l'historique des versions de Linux Mint.
L'erreur n'était pas anodine ici : c'est par ces noms que le
pré-chargement désigne ce qu'il va tirer. Quelqu'un qui suivait la page
pour préparer une 22.2 aurait garni le cache de la 22.1, et s'en serait
aperçu le samedi matin — précisément ce que l'encadré cherche à éviter.
La correspondance est maintenant donnée en tableau, série 21 comprise.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BE4rvHVETRoWnYNDTGssdo
Le 24/09, la première Mint 22.3 de la soirée a tiré 1,3 Go d'Internet
pour 82 Mo servis par le cache : le pré-chargeur visait encore les
versions précédentes. Une version absente de la liste ne profite à
personne, et cela ne se voit qu'au compteur.
Les noms de code sont donnés, puisque c'est par eux que le pré-chargement
désigne les versions : Zena pour la 22.3.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BE4rvHVETRoWnYNDTGssdo
apt renvoyait des « 503 Connection closed » en série et une installation
Mint s'est arrêtée là-dessus : le cache acceptait les requêtes sans
savoir où aller les chercher.
Le piège mérite d'être écrit, parce qu'il envoie chercher au mauvais
endroit : interroger le cache directement répondait parfaitement pendant
ce temps. Un bénévole qui teste ainsi conclut que tout va bien et
retourne fouiller la machine du participant.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BE4rvHVETRoWnYNDTGssdo
« Analyseur de noyaux » n'existe pas : la vue s'ouvre par Affichage →
Noyaux Linux. Écrit de mémoire, vérifié ce soir sur la machine d'essai —
c'est la deuxième fois que cette page décrit une commande qui n'est pas
là, après les niveaux de mise à jour.
Elle s'ouvre d'ailleurs sur un avertissement qui méritait sa place ici :
un noyau plus récent peut coûter le Wi-Fi, l'accélération graphique ou
l'affichage, et la sortie de secours — Maj au démarrage, Advanced
options, noyau antérieur — se connaît avant d'en avoir besoin.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BE4rvHVETRoWnYNDTGssdo
Le guide d'installation envoie chercher des scripts sur http://10.0.0.1/
sans jamais dire ce qu'est cette adresse, et le wiki ne mentionnait nulle
part le cache de paquets — alors que c'est lui qui rend possible quinze
installations simultanées sur la ligne d'une salle des fêtes.
La page décrit ce qu'un bénévole doit en savoir sur place : le réseau de
la salle et pourquoi les postes se branchent sur le switch et jamais sur
la box, les trois adresses utiles (page de santé, mandataire du cache,
scripts), les quatre cartes à surveiller, et surtout le geste qui change
tout — le mandataire à saisir pendant l'installation de Debian, contre
auto-apt-proxy installé après coup pour Mint et Ubuntu.
Puis ce qui coince : la salle sans réseau et le téléphone en secours, le
disque du cache à brancher avant d'allumer, et l'adresse en 169.254 qui
trahit un poste qui n'a reçu aucune réponse.
La configuration de la machine reste dans son propre dépôt : cette page
renvoie vers lui plutôt que de le recopier, et n'expose rien de ce qui
touche à son accès.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BE4rvHVETRoWnYNDTGssdo
« ==> Mise à jour du système\n » s'affichait tel quel, barre-n comprise,
sur l'écran des participants : le echo de cette ligne avait perdu son
-e. Relevé pendant une installation ce soir, à deux jours de l'install
party.
Au passage, « Configuraiton de dconf » devient une ligne de la même
famille que les autres — préfixe ==> et orthographe.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BE4rvHVETRoWnYNDTGssdo
derniers-articles.json s'arrête à vingt entrées : ce qu'il faut pour la
section de l'accueil, trop peu pour la page des mises à jour d'alpinux.org,
qui veut montrer tout ce que le wiki publie. Le build écrit donc un second
fichier, toutes-les-pages.json, sans plafond et avec la rubrique de chaque
page — la section de premier niveau de la navigation, celle à laquelle un
lecteur range les choses.
Un seul parcours de l'historique git produit les deux : le second est la
liste entière, le premier son début. derniers-articles.json ne bouge pas
d'un octet dans sa forme — mêmes quatre clés, même ordre — pour que
l'accueil continue de le lire sans rien savoir de tout ceci.
L'en-tête CORS couvre maintenant les deux fichiers, et seulement eux ; le
bloc n'est écrit que pour ceux qui manquent au .htaccess, de sorte qu'un
second build ne le duplique pas.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JYfYUZRcJmmEWJwAxZb4o2
Vingt figures, une par écran décrit. Elles sont reconstituées avec la feuille
de style réelle de l'application et des données inventées : photographier une
session aurait demandé le SSO et fait courir le risque d'y laisser de vraies
adresses. Ici l'anonymat est acquis par construction — noms, adresses masquées
et IP de documentation.
Le commit précédent laissait des repères en commentaire à ces endroits ; ils
sont remplacés.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014SsLBE8w2R235EG5an6Knb
Elles ne sont plus escamotées mais transformées — « s****@a****.xxx ». Le
lecteur voit qu'un contact existait et peut le demander, au lieu de buter sur
une phrase amputée ; et l'adresse reste hors de portée d'un robot.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014SsLBE8w2R235EG5an6Knb
La branche accueil-derniers-articles portait cette section, mais aussi une
seconde version du hook — or celui de main fait déjà le travail, et tourne.
Garder les deux aurait fait un conflit pour rien.
Un paragraphe est corrigé au passage : il annonçait que le hook faisait foi
sur le .htaccess et qu'il fallait y ajouter ses règles. Celui de main ajoute
son bloc à la suite d'un .htaccess existant au lieu de le remplacer ; les
règles durables se placent donc dans docs/.htaccess, que MkDocs recopie.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014SsLBE8w2R235EG5an6Knb
Une seule page obligeait le lecteur à traverser ce qui ne le concernait pas :
quelqu'un qui veut juste s'abonner n'a que faire des plafonds d'envoi, et le
bureau n'a pas besoin qu'on lui explique où cliquer pour se désabonner.
Trois guides, donc, et un sommaire qui aiguille. Chacun se lit seul.
Aucune adresse ni aucun nom réel dans les exemples, aucune URL non plus : les
écrans sont désignés par leurs intitulés de menu, qui ne changent pas quand le
site déménage.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014SsLBE8w2R235EG5an6Knb
La page dit d'abord ce que font les gens : s'abonner, se désabonner, lire les
archives. Ensuite seulement ce que font le bureau et les administrateurs.
L'inscription mérite son explication : c'est la personne qui nous écrit en
citant un code, et non le site qui lui envoie un lien. On ne devine pas la
raison en voyant l'écran, alors elle est dite — nous n'écrivons jamais à une
adresse non vérifiée, et personne ne peut donc abonner quelqu'un d'autre.
La page « données personnelles » renvoyait à secretaire@ pour s'abonner sans
être adhérent. Ce n'est plus vrai : on s'abonne soi-même.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014SsLBE8w2R235EG5an6Knb
La page promettait un lien qui ouvre la fiche. Il dit maintenant laquelle on
demande ; une clé envoyée à l'adresse de l'inscription l'ouvre pour trente
minutes, et l'on y navigue ensuite sans rien redemander.
Avec la raison, qui vaut mieux qu'une règle sèche : un lien qu'on garde finit
par traîner, et ce qu'on a noté sur une machine ne regarde que son propriétaire.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XLTJ8DoPfvhZMK5Yxtrfx2
La page promettait un lien « valable » sans fin, et un bloc « Répondre »
immédiat. Ni l'un ni l'autre n'est vrai désormais : la fiche se ferme douze
mois après l'install party, et écrire demande un lien de vérification envoyé à
son adresse.
Le conseil qui va avec : si l'on tient à garder le compte rendu, l'imprimer ou
l'enregistrer avant la fin du délai.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XLTJ8DoPfvhZMK5Yxtrfx2
Une page unique à trois sections obligeait chacun à traverser ce qui ne le
concernait pas : un participant n'a que faire des heures de présence, un
bénévole ne s'inscrit pas.
Trois pages, donc, une par usage — faire installer sa machine, aider comme
installateur, organiser la journée —, et la page d'origine devient le sommaire
qui oriente. Elle garde son adresse : dix-neuf renvois de l'application y
pointent déjà, depuis les courriels et les pages.
Chaque page va plus loin que la section qu'elle remplace, ce qu'une page unique
ne permettait pas : les questions courantes repliées, ce qui se voit et ce qui
ne se voit pas, et pour l'organisateur le calcul des places, la confirmation des
installateurs et l'historique des consultations.
Quatre captures de plus, prises sur une install party de démonstration : les
deux codes de l'installateur, le choix des quatre chiffres, l'espace
d'organisation et son historique.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XLTJ8DoPfvhZMK5Yxtrfx2
Les exemples que j'avais pris — « Françoise Maheu », « Michel Pellicier » —
viennent des docstrings du code, qui les avait empruntés à de vraies
inscriptions. Publiées sur un wiki ouvert, ces captures exposaient donc le nom
et la machine de personnes réellement venues à une install party.
Les nouvelles n'emploient que des noms qui n'appartiennent à personne : Alice
Exemple, Bob Essai, Chloé Témoin, et une équipe de démonstration. Aucun ne se
trouve ni dans le code ni dans la base.
La leçon vaut au-delà de ces images : un exemple pris dans les données réelles
finit par ressortir ailleurs, et une capture publiée ne se reprend pas.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XLTJ8DoPfvhZMK5Yxtrfx2
« Écrivez à secretaire@alpinux.org » répondait à tout et n'expliquait rien :
chaque question posée à l'association était une question que le site aurait pu
résoudre seul. Cette page prend le relais.
Trois parcours, selon qui lit : faire installer sa machine, aider comme
installateur, organiser une journée. Les captures viennent d'une install party
de démonstration, avec des noms et des adresses inventés — rien des personnes
réellement inscrites.
Deux points méritaient d'être écrits noir sur blanc, faute d'être devinables :
les heures annoncées par les installateurs décident du nombre de places
ouvertes au public, et la note « à prévoir » est lue par la personne inscrite.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XLTJ8DoPfvhZMK5Yxtrfx2
Un code QR a mené à la page d'organisation d'une install party au lieu de la
page d'inscription : pendant plusieurs jours, quiconque le scannait voyait les
coordonnées des inscrits. Rien ne distingue les deux adresses à l'œil nu — sinon
un « key= » à la fin, qu'on ne relit pas quand on croit relire un lien connu.
La page pose la règle, liste les adresses publiables et celles qui ne le sont
pas, et donne les quatre gestes qui auraient suffi : relire l'adresse entière,
scanner soi-même le code, le faire regarder par un autre, demander le fichier
final avant parution.
Elle met en avant https://installparty.alpinux.org : courte, sans clé, elle ne
vieillit pas d'une install party à l'autre — là où une adresse portant un
identifiant ne vaudra plus rien à la suivante, alors qu'une affiche, elle, dure.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XLTJ8DoPfvhZMK5Yxtrfx2
La page d'accueil d'alpinux.org masque sa section « Le wiki, fraîchement
mis à jour » quand le fichier qu'elle lit répond 404 — ce qu'il faisait
depuis que le hook qui l'écrivait a disparu du dépôt. Le voici remis :
titres, URL et dates des vingt dernières pages, écrit à chaque build.
Les dates viennent de git et non du disque, sans quoi un clone ferait
paraître tout le wiki écrit à la seconde près. Les renommages sont
écartés : déplacer un article ne le republie pas. Le .htaccess pose
l'en-tête qui autorise alpinux.org à lire le fichier, et s'ajoute à
celui qui serait déjà là plutôt que de le remplacer.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CTvii1CYBLjD14uvuD7Kos
Une page qui répond aux questions qu'on ne nous pose pas : d'où vient
l'adresse qu'on a de vous, ce qui part dans votre boîte et quand, qui
la voit, combien de temps on la garde, et à qui écrire pour la reprendre.
Rien d'inventé : les dix messages listés sont ceux qu'envoie l'application
Install Party, avec leur déclencheur, et les treize mois de conservation
sont ceux déjà annoncés sur la fiche d'installation. La lettre
d'information y figure telle qu'elle est — deux à quatre fois par mois,
adhérents et abonnés volontaires, désinscription en un clic — plutôt
qu'absente d'une politique qui se voudrait rassurante.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CTvii1CYBLjD14uvuD7Kos
Les captures dataient de novembre 2023 et montraient une Mint 21.2. La
série refaite hier sur une installation réelle les remplace : menu de
démarrage, session live, langue, clavier, codecs, type d'installation,
partitionnement complet, confirmation d'écriture, fuseau, compte,
installation en cours, fin et retrait du support.
Le guide gagne une section « Le premier démarrage », qui n'était pas
illustrée du tout : écran de connexion — avec le rappel de vérifier la
disposition du clavier affichée en haut à droite — et écran de
bienvenue, dont la rubrique « Premiers pas » enchaîne les réglages que
Mint juge prioritaires.
Restent d'anciennes captures là où elles valent encore : les deux écrans
Windows, et les cas que l'installation en UEFI n'a pas rencontrés.
Au passage, les libellés des Paramètres du système sont corrigés
d'après l'interface : « Affichage » et non « Écrans », « Choix des
polices » et non « Polices », « Applications lancées au démarrage », et
surtout l'outil de diagnostic s'appelle « Renseignements sur le
système » — « Relevés du système » n'en est qu'une rubrique. Son bouton
« Copier » est signalé : c'est ce qu'on colle dans une demande d'aide.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BE4rvHVETRoWnYNDTGssdo
Script joué de bout en bout sur une Mint 22.3 fraîchement installée.
Il se termine bien — polices Microsoft sans intervention, logiciels
installés, swappiness à 10, auto-destruction — mais deux choses ne
faisaient pas ce qu'elles annoncent.
modif_grub était définie et jamais appelée : après exécution,
/etc/default/grub contenait toujours GRUB_DEFAULT=0. Le réglage annoncé
— redémarrer sur la dernière entrée utilisée — n'avait donc jamais lieu.
L'appel est ajouté.
opti_fstab, elle, s'exécute sans effet : le fstab écrit par Mint 22.3 ne
contient pas « relatime », donc la substitution ne trouve rien. Constat
documenté dans la fonction plutôt que corrigé à l'aveugle, toucher aux
options de montage méritant une décision explicite.
GREEN et NC étaient utilisés sans être définis : les messages de fin
sortaient sans couleur.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BE4rvHVETRoWnYNDTGssdo
Le guide passait du test du matériel en session live au partitionnement,
sans jamais regarder ce que contenait le disque. C'est pourtant là que se
découvrent le deuxième disque, la partition de récupération, le Windows
chiffré ou le disque fatigué — et à ce moment-là, il est tard.
L'étape s'appuie sur verif-disque.sh, avec la marche à suivre par la
forge ou par le serveur local de l'install party, ce qu'il contrôle, et
un avertissement sur BitLocker : suspendre le chiffrement depuis Windows
avant de toucher aux partitions, sans quoi les données sont perdues.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BE4rvHVETRoWnYNDTGssdo
lsblk -pn dessine un arbre : les noms de partitions héritaient des
caractères ├─ dans le rapport. La liste plate (-pnl) les donne nus.
Un Linux déjà présent était affiché sans commentaire : sur une machine
qu'on réinstalle, ce sont des données à sauvegarder d'abord.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BE4rvHVETRoWnYNDTGssdo
En install party, personne ne regarde le disque avant de le partitionner.
On découvre en cours de route qu'il y avait deux disques, une partition
de récupération, un Windows chiffré par BitLocker ou un disque fatigué —
et il est alors trop tard.
En session live, taper les commandes une à une est fastidieux et suppose
de les connaître. Le script les enchaîne et rend un verdict lisible :
machine (64 bits, RAM, édition conseillée), mode de démarrage et Secure
Boot, disques et tables de partition, systèmes déjà installés, BitLocker,
hibernation de Windows, LUKS, santé SMART, accès réseau. Il se termine par
deux listes : ce qui bloque, et ce qu'il faut savoir.
Il ne modifie rien — lectures seules, montages en lecture seule et
démontés dans la foulée.
Au passage, l'encadré du guide sur le script de post-installation
annonçait une licence à accepter à la main : l'exécution réelle montre
que les polices Microsoft s'installent sans intervention.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BE4rvHVETRoWnYNDTGssdo
Installation menée de bout en bout sur une machine virtuelle, de la clé
USB au premier démarrage. Ce que l'écran dit et ce que nos pages
disaient ne concordaient pas toujours.
Le plus grave : les quatre niveaux de mise à jour, que « Utiliser Linux
Mint » décrivait avec son tableau et son menu Édition → Niveaux,
n'existent plus. Ni la clé de configuration, ni l'entrée de menu. Le
menu Édition contient Préférences, Instantanés système et Sources de
logiciels ; les préférences ont trois onglets. Mint répond désormais au
risque de régression par les instantanés système, qu'il met en avant dès
le premier lancement.
Dans le guide d'installation, sept libellés ne correspondaient plus :
l'entrée GRUB porte la version, les variantes de clavier sont en anglais
— « French (legacy, alt.) » et non « Français (variante) » —, le bouton
du type d'installation est « Installer maintenant », aucun choix GPT/MBR
n'est proposé, le disque de démarrage s'appelle « programme de
démarrage », la case des codecs est décochée par défaut, et l'option de
mot de passe à l'ouverture de session est déjà cochée.
Vérifié aussi, et conforme : le pare-feu est installé mais inactif, la
proposition de miroir local existe bien, mintreport, mintdrivers et
timeshift sont présents d'origine.
Enfin, install.sh donnait dans son propre mode d'emploi l'adresse de
l'ancien monorepo ; sa description dans le guide est reprise d'après ce
qu'il fait réellement.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BE4rvHVETRoWnYNDTGssdo
« Utiliser Linux Mint » ne parlait pas de paramétrage : quatre logiciels
sans description, et le gestionnaire de mises à jour. Quelqu'un qui
récupère sa machine n'y trouvait rien sur les Paramètres système, qui
sont pourtant le premier endroit où il va.
La page couvre maintenant les réglages qu'on fait une fois — pare-feu
désactivé par défaut, pilotes, démarrage, instantanés Timeshift et les
Flatpak qui les font gonfler, les options de mise à jour dont la
suppression des noyaux obsolètes qui évite le /boot plein —, le confort
du bureau dont la mise à l'échelle des écrans denses, les trois
matériels qui résistent d'après les forums francophones (imprimante,
Bluetooth, son), l'origine des logiciels et pourquoi Mint écarte Snap,
puis l'entretien courant. La partie sur les niveaux de mise à jour et
l'applet bouclier est conservée : elle n'existe nulle part ailleurs.
Les quatre pages se répondent désormais au lieu de se répéter : chacune
s'ouvre sur le même encadré d'orientation, la trousse renvoie pour les
mises à jour et les logiciels au lieu de les réexpliquer, et son titre
dit enfin que ses captures datent de Mint 21. Le guide d'installation
annonce la même chose pour les siennes.
Traite #6 et #7, documente le constat de #1.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BE4rvHVETRoWnYNDTGssdo
Le renvoi la présentait comme une sélection de logiciels : c'est une
liste de gestes de base, au format imprimable pour l'install party.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BE4rvHVETRoWnYNDTGssdo
Revue croisée avec les guides de référence du domaine. Quatre commandes
échouaient ou donnaient l'illusion de fonctionner :
- journald : le drop-in était édité avant que son répertoire existe,
nano refusait d'enregistrer ;
- restic : les variables posées par « export » ne passent pas sudo, qui
les efface — le dépôt n'était pas celui qu'on croyait ;
- la sauvegarde reposait sur « systemd-run », dont l'unité transitoire
disparaît au redémarrage : c'est la sauvegarde qui s'arrête sans que
personne ne le voie. Remplacée par un .service + .timer persistant ;
- le filet de sécurité du pare-feu n'existait que pour ufw ; l'équivalent
nftables manquait.
Ajouts de fond, par ordre d'importance : vérifier l'empreinte de la clé
d'hôte à la première connexion — le seul moment où une interception est
possible —, régénérer les clés des images clonées, AppArmor, l'audit
Lynis en fin de parcours, la sonde de supervision externe (une alerte
émise par la machine ne dit rien quand la machine est morte), la
journalisation distante, le fichier 20auto-upgrades qui commande
réellement l'automatisme, needrestart non interactif, growpart, la jail
recidive, les clés FIDO2, et AllowGroups à la place d'AllowUsers pour
qu'un second administrateur existe.
Pédagogie : le modèle de menace en ouverture, un niveau par étape avec un
parcours court de quinze minutes, des variables qu'on exporte au lieu de
les remplacer à la main, quatre encadrés « pour comprendre » (FQDN/PTR,
clé publique, activation par socket, tmpfs), et sur les trois étapes où
l'on peut se verrouiller dehors : résultat attendu, si ça échoue, et
comment revenir en arrière. Plus une annexe pour le jour où c'est raté —
console, mode rescue, chroot.
Les avertissements passent en admonitions typées : la couleur distingue
enfin l'information du danger.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BE4rvHVETRoWnYNDTGssdo
La page était une suite de captures d'écran légendées d'une phrase :
elle montrait où cliquer sans jamais dire pourquoi, et n'expliquait ni
l'ordre des opérations ni ce qu'on risquait à en sauter une.
Elle raconte maintenant le premier démarrage dans l'ordre où on le vit :
les mises à jour d'abord — les paquets de langue et les pilotes en
dépendent —, le français appliqué à tout le système et ce que change
vraiment ce bouton, les relevés du système comme outil de diagnostic, les
pilotes propriétaires et le mot de passe MOK qui va avec, Firefox, puis
une checklist de sortie.
Les renvois vers le guide d'installation évitent de redire ce qui y est
déjà détaillé. Les captures, elles, datent de Mint 21 et restent à
refaire.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BE4rvHVETRoWnYNDTGssdo
Trois corrections issues des tickets de relecture :
- le Panneau de configuration masque « Options d'alimentation » tant
qu'il est en affichage par catégories — l'étape « Grandes icônes »
manquait, et sans elle la suite est introuvable (#2) ;
- Xfce se conseille en dessous de 4 Go de RAM : le chiffre est écrit, et
distingué du minimum technique de 2 Go annoncé par Mint (#3) ;
- les deux blocages qui arrêtent net une installation — firmware
inaccessible, et disque invisible parce que le contrôleur SATA est en
RAID/Intel RST — sont documentés, avec l'avertissement qui va avec :
en dual-boot, basculer en AHCI empêche Windows de démarrer (#4).
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BE4rvHVETRoWnYNDTGssdo
L'ancienne fiche datait de Debian 11 et s'arrêtait à une liste de
commandes : rien sur les clés SSH, le pare-feu, fail2ban, les mises à
jour automatiques ni la sauvegarde. Elle portait aussi deux erreurs qui
mordent — une locale écrite avec un underscore, et l'ordre des noms sur
la ligne 127.0.1.1 qui décide de ce que renvoie « hostname -f ».
La nouvelle page couvre les quinze étapes, du DNS à la sauvegarde
testée, avec les pièges propres à Trixie : sources deb822, SSH activé
par socket, /tmp en tmpfs. Elle reste générique — aucun service
particulier n'y est déployé.
Deux extensions Markdown sont activées pour elle : les listes de tâches
(la checklist récapitulative) et mermaid (l'ordre des opérations). Aucune
dépendance nouvelle : le thème Material embarque déjà mermaid. Les deux
sont documentées dans la page Markdown du wiki.
L'adresse change, donc l'ancienne reste servie par une page de renvoi.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BE4rvHVETRoWnYNDTGssdo
.gitea-token n'était ni suivi ni ignoré : un « git add -A » l'aurait
embarqué dans un commit, et poussé un secret sur la forge.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BE4rvHVETRoWnYNDTGssdo
Le support de présentation et le guide des Install Party décrivaient la
même installation, avec des forces opposées : le premier avait le texte
et la post-installation, le second les captures d'écran et la
vérification à jour. Ils ne pouvaient que diverger.
La page de guides/ garde tout : le texte pédagogique, les 29 captures,
la checklist numérique, la restauration du profil Firefox, les tests
matériels et le passage de relais au propriétaire. Mint 22.3 partout.
Le Markdown est normalisé au passage — les <WRAP> hérités de DokuWiki et
les callouts Obsidian [!info] ne se rendaient tout simplement pas.
L'ancienne adresse reste vivante : la page de presentations/ devient un
renvoi, hors navigation. Sans plugin de redirection, la supprimer aurait
cassé les liens déjà partagés.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BE4rvHVETRoWnYNDTGssdo
Le README et les pages de contribution se contredisaient : « éditer la
page dans Gitea » ignorait la bifurcation devenue la règle, le tableau
d'aiguillage ne connaissait pas trois des pages existantes, et le délai
de publication n'était pas le même des deux côtés. Le README oriente
désormais, le wiki explique — une seule source de vérité par sujet.
Nouvelle page « Relire et fusionner » : ce que fusionner publie, la
relecture, la vérification du build, les pièges du poste — renommer une
page casse son adresse, aucune redirection n'est installée.
Au passage, trois points où les pages ne se répondaient pas : la
publication immédiate depuis Obsidian ne concerne que le clone du dépôt
du wiki, la bifurcation se remet à jour après chaque fusion, et
l'accueil renvoyait au Markdown générique plutôt qu'à notre page.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BE4rvHVETRoWnYNDTGssdo
L'application a quitté alpinux.site.2026 pour son propre dépôt, et elle
est à la racine : plus de sous-dossier dynamic/ à traverser pour le
venv, le .env.example, la mise à jour ou le fichier des quiz.
Au passage, l'unité systemd est dans infra/services/, pas infra/dynamic/.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BE4rvHVETRoWnYNDTGssdo
Le schéma de la vue d'ensemble sautait la bifurcation et laissait croire
qu'on édite le dépôt du wiki lui-même. Il décrit maintenant le vrai
parcours, et le cas des mainteneurs tient dans un encadré : branche et
pull request quand même, la bifurcation devient facultative.
L'étape « Proposer un nouvel article » commençait au bouton « Nouveau
fichier », sans dire où. Elle part désormais de la bifurcation, et
insiste sur ce qui mord : une copie ne se met pas à jour toute seule, et
un article écrit sur une version dépassée finit en conflit.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BE4rvHVETRoWnYNDTGssdo
La page de contribution portait tout : le parcours web, la syntaxe
Markdown, la ligne de commande et Obsidian. Chacun de ces morceaux a
maintenant sa page, et la page d'accueil de la contribution garde ce
qu'elle sait faire — expliquer le processus de bout en bout.
Nouvelle page « Le Git d'Alpinux » : l'inscription est fermée et passe
par AlpID, ce que rien n'indiquait jusqu'ici.
Le coffre Obsidian est configuré en liens Markdown relatifs, comme la
page le décrit : MkDocs ne comprend pas les [[wikilinks]].
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BE4rvHVETRoWnYNDTGssdo
La page supposait partout que le contributeur a les droits d'écriture sur le
dépôt : l'option « créer une branche et ouvrir une pull request » de l'éditeur
Gitea n'apparaît que dans ce cas, et la procédure locale poussait une branche
directement sur le dépôt. Quelqu'un d'extérieur à l'équipe tombait sur une
bifurcation sans savoir ce que c'était.
Les deux parcours sont donc repris autour de la bifurcation, et la pull request
est présentée comme la règle pour tout le monde, mainteneurs compris — avec la
raison plutôt que l'injonction : relecture, trace des discussions, et le droit
de laisser un texte reposer sans qu'il soit déjà en ligne. Le push direct est
ramené à ce qu'il doit être, un geste d'urgence.
La procédure locale gagne les étapes qui manquaient : remote upstream, mise à
jour de main avant de créer une branche, build --strict avant de proposer. Et
pour Obsidian, se placer sur sa branche avant d'écrire, puisque la sauvegarde
automatique pousse sur la branche courante.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PcZ7hL9aVvMhRuzxXLT2DG
Le README annonçait « le push suffit » sans dire à qui cela s'adressait, et la
page Contribuer décrivait une publication manuelle en 24 à 48 heures — ce qui
n'a jamais correspondu au webhook, et plus du tout depuis qu'il fonctionne.
README : un tableau « je veux… » qui relie chaque intention à son geste et à la
page qui le détaille, le trajet d'un commit jusqu'à la mise en ligne, et les
deux pièges — un push sur main publie sans relecture, et le webhook n'écoute que
ce dépôt.
contribuer.md : le délai réel (quelques secondes) et le filet du staging, plus
une section « Rédiger depuis son ordinateur » — clone, aperçu local, branche et
pull request, coffre Obsidian — qui n'était documentée nulle part alors que
c'est la façon dont le wiki est rédigé au quotidien.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PcZ7hL9aVvMhRuzxXLT2DG
workspace.json n'enregistre que l'état de l'interface — onglets ouverts,
panneaux, dernier fichier consulté. Il se réécrit à chaque ouverture du coffre,
et avec obsidian-git actif cela produit des commits « vault backup » sans
contenu. Le reste de la configuration (réglages, plugins) reste versionné.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PcZ7hL9aVvMhRuzxXLT2DG
Le coffre servait à rédiger les articles — son workspace.json pointe sur
docs/ et articles/ — mais il était resté versionné à la racine de l'ancien
monorepo, et le .gitignore d'ici l'excluait. Il suit maintenant le contenu
qu'il sert, avec les mêmes réglages qu'avant : mise à jour automatique des
liens, obsidian-git et obsidian-linter.
Vérifié : aucun fichier de configuration embarqué ne contient de jeton ni de
mot de passe (obsidian-git demande ses identifiants à l'ouverture).
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PcZ7hL9aVvMhRuzxXLT2DG
Il était rangé sous ~/Projects/org.alpinux.owni/wiki, à côté des applications
Flask de l'association, alors qu'il n'a rien à partager avec elles : dépôt
distinct, déploiement autonome, contributeurs différents.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PcZ7hL9aVvMhRuzxXLT2DG
Le premier déploiement depuis le nouveau dépôt a montré deux inexactitudes de
cette page, héritées de sa rédaction initiale :
- le logo n'est pas généré au déploiement. Le thème et les pages chargent le
logo depuis static.alpinux.org par URL complète ; build-assets.py ne sert
qu'à fabriquer les fichiers à y téléverser, et demande Pillow et Chromium,
absents du serveur. L'étape correspondante et les prérequis associés sont
retirés, le script de déploiement n'a jamais appelé ce script.
- le service d'écoute n'est pas injoignable de l'extérieur : Apache proxifie
/deploy vers lui. C'est la signature HMAC qui le protège, pas l'isolement.
Au passage : procédure manuelle présentée comme un secours et non comme le mode
normal, clone par clé de déploiement en lecture seule, et tableau récapitulatif
refait autour du fait que publier se résume à git push.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PcZ7hL9aVvMhRuzxXLT2DG