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.
Pas encore de commande unique sur cette plateforme — le script d'amorçage reste à écrire. Voici les trois étapes réelles.
1 · le moteur
$ brew install --cask powershell
2 · le dépôt
$ git clone https://gitlab.yg-devworks.com/yves/config.git ~/git/config
3 · le déploiement
$ pwsh -NoProfile -File ~/git/config/Install-Config.ps1 -Apply
Pas encore de commande unique ici non plus. Les liens symboliques de fichier exigent le mode développeur ou une session élevée.
1 · le moteur
> winget install --id Microsoft.PowerShell
2 · le dépôt
> git clone https://gitlab.yg-devworks.com/yves/config.git
3 · le déploiement
> pwsh -NoProfile -File .\config\Install-Config.ps1 -Apply
- 21 composants
- 3 plateformes
- 7 installateurs de paquets
- 3 déployeurs
- 28 décisions d'architecture
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
| Composant | Plateforme | Outils | Fichiers | Objet |
|---|---|---|---|---|
| powershell | Windows | 12 | 7 | PowerShell 7.6, modules de base, profil |
| starship | toutes | 2 | 3 | Prompt starship |
| zsh | macOS | 5 | 1 | Shell zsh : oh-my-zsh, greffons, profil |
| zsh-linux | Linux | 4 | 1 | Ce qu'Omarchy ne donne qu'à bash, traduit pour zsh |
| claude | Windows | 1 | 3 | Claude Code, sa barre d'état et ses pilules de quota |
| claude-skills | toutes | 1 | 8 | Skills personnelles, versionnées à part |
| claude-commun | toutes | 0 | 2 | Préférences globales et hook d'historisation |
| claude-macos | macOS | 1 | 5 | Barre d'état du Mac et ses réglages d'affichage |
| admin-clip | toutes | 0 | 2 | Mot de passe admin au presse-papiers, sans rien persister |
| yg-workflow | Windows | 0 | 1 | Fonctions de workflow, hors du profil |
| outillage-depot | toutes | 2 | 1 | Ce qu'exige la chaîne de contribution du dépôt |
| photo-import | macOS | 1 | 2 | Archivage d'une carte d'appareil photo vers le NAS |
| reseau | macOS | 1 | 2 | Inventaire du réseau domestique, noms d'hôtes et clés SSH |
| omarchy | Linux | 0 | 4 | Les écarts face au stock Omarchy, et eux seuls |
| lazyvim | Windows | 0 | 0 | Neovim configuré avec LazyVim |
| ghostty | macOS | 4 | 6 | Terminal Ghostty : configuration, modes, thème et shaders |
| ghostty-linux | Linux | 2 | 6 | Ghostty sur le poste Arch : l'écart au stock |
| cheat-sheet | Linux | 1 | 1 | Fiches de raccourcis, en TUI sous raccourci système |
| dev-dotnet | Linux | 2 | 0 | SDK .NET, et le seul chemin vers pwsh sur Arch |
| esp32 | macOS · Linux | 2 | 1 | Pilote de l'éclairage de l'aquarium |
| obsidian | toutes | 0 | 6 | Configuration du vault, dont la racine est ~/git |