Autrefois, exécuter la même configuration Linux sur trois machines signifiait cloner un lecteur et espérer que le matériel correspondrait. La nouvelle norme est : synchronisez vos dotfiles avec un outil, conservez une liste de paquets dans Git, et laissez vos fichiers se synchroniser via un canal séparé. Ces sept outils de bureau couvrent les trois couches, du déploiement de deux fichiers ~/.zshrc à une reconstruction déclarative complète de Nix.
Ce qu'il faut rechercher dans un outil de synchronisation des dotfiles
Quelques questions déterminent la forme :
- Modèles : différentes machines ont-elles besoin de configurations différentes de la même source ?
- Secrets : comment les clés SSH et les jetons d’API sont-ils gérés ?
- Bootstrap : peut-il s’installer à partir d’une seule ligne sur une nouvelle machine ?
- Gestion des paquets : gère-t-il apt, dnf, brew ou nix ?
- Historique : voulez-vous Git simple ou quelque chose avec son propre journal ?
Comparaison rapide
| Application | Meilleur pour | Forfait gratuit | Payant | Plateformes | Point fort |
|---|---|---|---|---|---|
| chezmoi | Dotfiles avec modèles et secrets | Oui | Gratuit | Linux, macOS, Windows | Modèles, chiffrement, configurations adaptées à la machine |
| GNU Stow | Ferme de liens symboliques depuis un dépôt Git | Oui | Gratuit | Linux, macOS | Le flux de travail le plus ancien et le plus simple |
| yadm | Git natif pour vos dotfiles | Oui | Gratuit | Linux, macOS | Script bootstrap, branche alternative par machine |
| dotbot | Configuration de lien symbolique déclarative YAML | Oui | Gratuit | Linux, macOS | Multiplateforme, empreinte minimale |
| Ansible | Configuration de machine complète, pas seulement dotfiles | Oui | AAP payant | Linux, macOS, Windows | Un seul outil pour une flotte ou un ordinateur portable |
| Syncthing | Synchronisation de fichiers P2P continue | Oui | Gratuit | Linux, macOS, Windows | Pas de cloud, synchronisation directe machine à machine |
| Nix Home Manager | Environnement utilisateur reproductible | Oui | Gratuit | Linux, macOS | La même configuration produit la même configuration à chaque fois |
Les applications
1. chezmoi — meilleur pour les dotfiles avec modèles et secrets
chezmoi traite vos dotfiles comme du code source, avec des modèles par machine (Go text/template) et un chiffrement natif via age ou GPG. Un dépôt couvre votre Mac professionnel, votre boîte Linux domestique et un serveur sans interface graphique, et les différences (e-mail, plugins d’éditeur, entrées de travail uniquement) vivent dans des conditionnels de modèle.
Où il trouve ses limites : Courbe d’apprentissage pour la syntaxe des modèles. Fusionner un résultat de modèle avec un fichier géré par le système nécessite un motif spécifique que la plupart des gens découvrent à leurs dépens.
Prix : Gratuit, logiciel libre.
Plateformes : Linux, macOS, Windows.
Télécharger : chezmoi
Conclusion : Le standard actuel pour quiconque a dépassé un script de lien symbolique.
2. GNU Stow — meilleur pour le flux de travail le plus simple
GNU Stow a été écrit en 1994 et fait toujours exactement une chose : créer des liens symboliques depuis un répertoire de paquets vers votre répertoire personnel. Un dépôt dotfiles devient un « paquetage » Stow, et stow zsh crée des liens symboliques vers son contenu. Pas de modèles, pas de secrets, pas de magie.
Où il trouve ses limites : Les configurations spécifiques à une machine signifient plusieurs branches ou paquets par hôte. Les secrets doivent vivre quelque part d’autre (un montage chiffré, un gestionnaire de mots de passe).
Prix : Gratuit, logiciel libre.
Plateformes : Linux, macOS, Windows (via WSL).
Télécharger : GNU Stow
Conclusion : Le bon choix quand votre configuration est petite et que vous ne voulez plus jamais penser à l’outil de synchronisation.
3. yadm — meilleur pour traiter les dotfiles comme un seul dépôt Git
yadm (Yet Another Dotfiles Manager) est Git plus les avantages spécifiques aux dotfiles : scripts bootstrap, fichiers alternatifs par hôte ou système d’exploitation, et chiffrement via GPG. Puisqu’il s’agit vraiment juste d’un wrapper autour de Git, tout ce que vous savez déjà fonctionne toujours.
Où il trouve ses limites : La convention des fichiers alternatifs est puissante mais moins découvrable que la modélisation de chezmoi. L’histoire du chiffrement est basique comparée aux outils basés sur age.
Prix : Gratuit, logiciel libre.
Plateformes : Linux, macOS.
Télécharger : yadm
Conclusion : L’étape la plus douce à partir d’un dépôt Git simple de dotfiles.
4. dotbot — meilleur pour la configuration petite déclarative
dotbot lit un fichier d’installation YAML et crée des liens symboliques, clone des dépôts et exécute des commandes shell. Il est assez petit pour être intégré dans votre dépôt dotfiles, donc cloner le dépôt et exécuter ./install est tout le bootstrap sur une nouvelle machine.
Où il trouve ses limites : Pas de modèles. Pas de chiffrement natif. Les machines complexes finissent avec de longs fichiers install.yaml qui deviennent difficiles à lire.
Prix : Gratuit, logiciel libre.
Plateformes : Linux, macOS.
Télécharger : dotbot sur GitHub
Conclusion : Le bon choix quand vous voulez un fichier d’installation déclaratif et rien d’autre.
5. Ansible — meilleur quand la configuration va au-delà du répertoire personnel
Ansible gère des machines entières à partir d’un ensemble de playbooks. Pour une configuration personnelle, un playbook installe les paquets, définit les paramètres du noyau, dépose les dotfiles et configure les services en une seule passe. Le même playbook s’exécute sur un ordinateur portable ou un nœud homelab.
Où il trouve ses limites : Overkill pour un pur problème de dotfile. Les exécutions de playbook sont plus lentes qu’une ferme de liens symboliques. La fatigue YAML est réelle une fois que vous dépassez quelques centaines de lignes.
Prix : Gratuit, logiciel libre. Niveau entreprise payant d’Ansible Automation Platform.
Plateformes : Linux, macOS, Windows.
Télécharger : Ansible
Conclusion : L’outil pour quiconque veut un seul flux de travail pour son ordinateur portable et ses serveurs.
6. Syncthing — meilleur pour les fichiers, pas les configurations
Syncthing est la synchronisation de fichiers peer-to-peer qui devrait s’asseoir à côté de votre gestionnaire dotfiles. Conservez les configurations déclaratives dans Git, mais laissez Syncthing déplacer quelques centaines de gigaoctets de Documents, Music et fichiers de brouillon de projet entre les machines sans qu’un fournisseur de cloud ne les touche jamais.
Où il trouve ses limites : Pas du tout un outil dotfiles. Apportez vos propres habitudes de résolution de conflits. La synchronisation initiale d’un grand dossier prend aussi longtemps que le lien le plus lent le permet.
Prix : Gratuit, logiciel libre.
Plateformes : Linux, macOS, Windows.
Télécharger : Syncthing
Conclusion : L’autre moitié d’une vraie configuration multi-machines, que votre seul outil dotfiles ne remplacera pas.
7. Nix Home Manager — meilleur pour la reproducibilité complète
Nix Home Manager décrit tout votre environnement utilisateur dans les expressions Nix : paquets, dotfiles, services, tout. Une nouvelle machine obtient nix run home-manager -- switch et monte identique à toute autre machine du flake.
Où il trouve ses limites : La courbe d’apprentissage de Nix est réelle. Certaines applications propriétaires n’ont pas de paquets Nix. Les restaurations sont magiques quand elles fonctionnent et douloureuses quand un canal se casse.
Prix : Gratuit, logiciel libre.
Plateformes : Linux, macOS.
Télécharger : Nix Home Manager
Conclusion : Le bon choix pour quiconque est prêt à investir dans Nix dès le départ pour une véritable reproducibilité.
Comment choisir le bon
- Si vous avez un ordinateur portable et que vous ne voulez plus jamais y penser : GNU Stow ou yadm.
- Si vous avez trois machines et que l’une est professionnelle : chezmoi.
- Si vous voulez un bootstrap déclaratif et rien d’autre : dotbot.
- Si vous exécutez déjà Ansible sur les serveurs : étendez un playbook à votre ordinateur portable.
- Si vous avez aussi besoin de synchroniser les fichiers de données : Syncthing avec l’un des éléments ci-dessus.
- Si vous voulez un flux de travail de reconstruction à partir de la configuration : Nix Home Manager.
Questions fréquemment posées
Où je stocke les secrets dans un dépôt dotfiles ? Jamais en texte clair. chezmoi et yadm chiffrent au repos. Pour les dépôts Git simples, utilisez age ou GPG sur des fichiers spécifiques, ou conservez les secrets complètement en dehors du dépôt.
Ces outils fonctionnent-ils sur macOS ? Chaque outil de cette liste supporte macOS. Nix Home Manager et chezmoi sont de loin les plus amicaux pour macOS.
Comment je gère les configurations spécifiques à la machine ? Modèles (chezmoi), fichiers alternatifs (yadm), branches (yadm et Stow), ou blocs gardés par hôte dans Ansible. Le motif de modèle évolue mieux au-delà de deux machines.
Devrais-je valider mon dépôt dotfiles publiquement ? Seulement après un audit. Même une petite configuration porte souvent une adresse e-mail ou un alias de travail uniquement. Le privé est plus sûr.
Comment je synchronise les fichiers qui changent constamment, comme les signets du navigateur ou l’historique du shell ? Syncthing, pas un outil dotfiles. Les dotfiles versionnés n’aiment pas le changement toutes les heures.
Vaut-il la peine d’apprendre Nix juste pour les dotfiles ? Pour les dotfiles seuls, non. Pour quiconque construit des homelabs, des conteneurs de développement et des builds reproductibles, oui.