.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
Ces pages ont été écrites du temps du monorepo et décrivaient encore un clone de
alpinux.site.2026 avec un sous-dossier wiki/, ainsi qu'un déploiement par rsync
depuis un poste local — alors que le serveur construit le site lui-même, déclenché
par un webhook Gitea.
- contribuer.md, linux-mint-guide.md, l'article Linux Mint : liens et URL raw
vers alpinux-wiki. L'URL de install.sh redevient valide au passage : elle
pointait sur code/ à la racine, chemin qui n'existait pas dans le monorepo.
- deploiement-wiki.md : chemins sans le sous-dossier wiki/, script de déploiement
réel (build en staging), webhook décrit comme le mode normal et non plus comme
une option, avec la mise en garde qu'il n'écoute que ce dépôt.
- README.md : flux de publication réel, et le -d indispensable au build local
puisque site_dir vise le DocumentRoot du serveur.
deploiement-dynamic.md mentionne lui aussi un clone du monorepo, mais il concerne
l'application dynamic : à corriger avec son dépôt, pas ici.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PcZ7hL9aVvMhRuzxXLT2DG
repo_url désignait encore alpinux.site.2026 : le bouton présent sur chaque page
du wiki renvoyait les contributeurs vers l'ancien monorepo, ce qui explique que
les corrections y aient continué d'atterrir après la migration.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PcZ7hL9aVvMhRuzxXLT2DG
La migration du 2026-05-03 vers ce dépôt n'a jamais été suivie d'effet : le wiki
a continué d'être modifié dans alpinux.site.2026, qui est resté la source du
site publié. Ces quatre écarts sont reportés ici :
- guides/linux-mint-depuis-windows : « mode UEFI » → « mode BIOS » (1d67692)
- alpinux/install-party : refonte du 2026-09-02 (3a8c23d)
- articles/20260404_creer_des_raccourcis : article jamais versionné (38f4ec3)
- articles/idee-presentations-themes : lien vers l'article ci-dessus + puce en trop
La procédure ISPConfig de technique/deploiement-dynamic et docs/assets/, qui
n'existent que dans ce dépôt, sont conservées telles quelles.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PcZ7hL9aVvMhRuzxXLT2DG
Les vhosts, SSL et certificats sont gérés via ISPConfig (owni.alpinux.org:8080).
Supprime les références à a2ensite, certbot et la copie manuelle de vhost.conf.