config

L'outillage de mes postes Windows, macOS et Arch, décrit une fois dans un manifeste et déployé par un moteur unique. Une machine neuve rejoint le parc sans que j'aie à me souvenir de quoi que ce soit.

$ curl -fsSL https://config.yg-devworks.com/install-arch.sh | bash

Installe le SDK .NET, en tire pwsh, clone le dépôt et déploie. Refuse de tourner en root, demande sudo une seule fois avant la moindre écriture, et ne remplace jamais un clone existant.

Ce que c'est

Un dépôt qui centralise ce dont je me sers au quotidien — configurations, outils autonomes, greffons, fiches de raccourcis — et le moteur PowerShell qui déploie tout cela. La configuration en est une famille parmi d'autres, pas l'objet unique du dépôt.

Le manifeste config.psd1 décrit chaque composant : les outils qu'il installe, par quel installateur, et les fichiers qu'il déploie, par quel déployeur. Le reste — l'ordre, les dépendances, ce qui s'applique à quelle plateforme, ce qu'il faut sauvegarder avant d'écrire — est déduit.

Ce qui le distingue d'un gestionnaire de dotfiles

Sans -Apply, rien n'est jamais écrit.

L'état des lieux n'est pas un mode à part : c'est le même pipeline, arrêté avant l'exécution. Le plan qu'il affiche est exactement celui qui s'exécutera : il n'est pas recalculé entre les deux.

Un composant en échec ne produit aucune action, -Force compris. Il ne se répare pas tout seul ; sa raison remonte par le rapport.

Axe outil

L'outil est-il installé, et à la bonne version ?

  • Absent
  • Present
  • Outdated
  • Failed

Axe configuration

Le fichier est-il en place, et conforme ?

  • Absent
  • Conform
  • Drifted
  • Failed

Deux axes indépendants par composant, plutôt qu'un unique « à jour ». Un outil installé dont la configuration a dérivé n'est pas le même problème qu'un outil absent.

Une sauvegarde avant chaque écriture

Tout fichier visé est copié, horodaté, avant d'être touché ; les cinq dernières par nom sont conservées. La commande de restauration s'affiche dans le rapport : une sauvegarde que l'utilisateur ignore ne le sauve pas.

Un manifeste, trois plateformes

La clé Platform élague le plan avant tout le reste. Deux composants jumeaux peuvent viser la même cible sur deux postes différents sans jamais se voir — c'est elle, et elle seule, qui les sépare.

Sept installateurs, trois déployeurs

winget, scoop, psgallery, git, brew, pacman, dotnet-tool. Pour les fichiers : lien symbolique, bloc délimité dans un fichier tiers, ou clé unique dans un JSON qui appartient à quelqu'un d'autre.

Les décisions sont écrites

Vingt-huit ADR consignent ce qui a été tranché et ce qui a été écarté, avec les raisons. Ce qui rend le dépôt relisable des mois plus tard n'est pas le code : c'est ce journal.

Le pipeline, du manifeste au poste conforme

Lire, ordonner, constater, planifier, arbitrer, écrire, rapporter. Le schéma est interactif : survoler un lien le trace, cliquer un nœud l'isole.

Ouvrir le schéma en pleine page Généré par archify depuis site/schema/pipeline.workflow.json.

Ce que le dépôt déploie

Les 21 composants du manifeste. « toutes » signifie que le composant vaut sur les trois postes.
Composant Plateforme Outils Fichiers Objet
powershellWindows127PowerShell 7.6, modules de base, profil
starshiptoutes23Prompt starship
zshmacOS51Shell zsh : oh-my-zsh, greffons, profil
zsh-linuxLinux41Ce qu'Omarchy ne donne qu'à bash, traduit pour zsh
claudeWindows13Claude Code, sa barre d'état et ses pilules de quota
claude-skillstoutes18Skills personnelles, versionnées à part
claude-communtoutes02Préférences globales et hook d'historisation
claude-macosmacOS15Barre d'état du Mac et ses réglages d'affichage
admin-cliptoutes02Mot de passe admin au presse-papiers, sans rien persister
yg-workflowWindows01Fonctions de workflow, hors du profil
outillage-depottoutes21Ce qu'exige la chaîne de contribution du dépôt
photo-importmacOS12Archivage d'une carte d'appareil photo vers le NAS
reseaumacOS12Inventaire du réseau domestique, noms d'hôtes et clés SSH
omarchyLinux04Les écarts face au stock Omarchy, et eux seuls
lazyvimWindows00Neovim configuré avec LazyVim
ghosttymacOS46Terminal Ghostty : configuration, modes, thème et shaders
ghostty-linuxLinux26Ghostty sur le poste Arch : l'écart au stock
cheat-sheetLinux11Fiches de raccourcis, en TUI sous raccourci système
dev-dotnetLinux20SDK .NET, et le seul chemin vers pwsh sur Arch
esp32macOS · Linux21Pilote de l'éclairage de l'aquarium
obsidiantoutes06Configuration du vault, dont la racine est ~/git