Antes, ejecutar la misma configuración de Linux en tres máquinas significaba clonar una unidad y esperar que el hardware coincidiera. El nuevo estándar es: sincroniza tus dotfiles con una herramienta, mantén una lista de paquetes en Git, y deja que tus archivos se sincronicen a través de un canal separado. Estas siete herramientas de escritorio cubren las tres capas, desde sincronizar dos archivos ~/.zshrc hasta una reconstrucción declarativa completa de Nix.
Qué buscar en una herramienta de sincronización de dotfiles
Algunas preguntas determinan la forma:
- Plantillas: ¿necesitan máquinas diferentes configuraciones diferentes de la misma fuente?
- Secretos: ¿cómo se manejan las claves SSH y los tokens de API?
- Bootstrap: ¿puede instalarse a sí mismo desde una sola línea en una máquina nueva?
- Gestión de paquetes: ¿maneja apt, dnf, brew o nix?
- Historial: ¿quieres Git simple o algo con su propio registro?
Comparación rápida
| Aplicación | Mejor para | Plan gratuito | Pagado | Plataformas | Destacado |
|---|---|---|---|---|---|
| chezmoi | Dotfiles con plantilla con secretos | Sí | Gratis | Linux, macOS, Windows | Plantillas, cifrado, configs conscientes de máquina |
| GNU Stow | Granja de enlaces simbólicos desde un repo Git | Sí | Gratis | Linux, macOS | El flujo de trabajo más antiguo y simple |
| yadm | Git nativo para tus dotfiles | Sí | Gratis | Linux, macOS | Script bootstrap, rama alt por máquina |
| dotbot | Configuración de enlace simbólico declarativa YAML | Sí | Gratis | Linux, macOS | Multiplataforma, huella mínima |
| Ansible | Configuración de máquina completa, no solo dotfiles | Sí | AAP pagado | Linux, macOS, Windows | Una herramienta para una flota o un portátil |
| Syncthing | Sincronización de archivos P2P continua | Sí | Gratis | Linux, macOS, Windows | Sin nube, sincronización directa de máquina a máquina |
| Nix Home Manager | Entorno de usuario reproducible | Sí | Gratis | Linux, macOS | La misma config produce la misma configuración siempre |
Las aplicaciones
1. chezmoi — mejor para dotfiles con plantilla con secretos
chezmoi trata tus dotfiles como código fuente, con plantillas por máquina (Go’s text/template) y cifrado nativo a través de age o GPG. Un repo cubre tu Mac de trabajo, tu caja Linux de casa y un servidor sin interfaz gráfica, y las diferencias (correo electrónico, complementos de editor, entradas solo de trabajo) viven en condicionales de plantilla.
Dónde se queda corta: Curva de aprendizaje para la sintaxis de plantillas. Fusionar un resultado de plantilla con un archivo gestionado por el sistema requiere un patrón específico que la mayoría de la gente aprende de la manera difícil.
Precio: Gratis, código abierto.
Plataformas: Linux, macOS, Windows.
Descargar: chezmoi
Conclusión: El estándar actual para cualquiera que haya superado un script de enlace simbólico.
2. GNU Stow — mejor para el flujo de trabajo más simple
GNU Stow fue escrito en 1994 y todavía hace exactamente una cosa: crear enlaces simbólicos desde un directorio de paquete a tu hogar. Un repo de dotfiles se convierte en un “paquete” de Stow, y stow zsh crea enlaces simbólicos a su contenido. Sin plantillas, sin secretos, sin magia.
Dónde se queda corta: Las configuraciones específicas de máquina significan múltiples ramas o paquetes por host. Los secretos tienen que vivir en otro lugar (un montaje cifrado, un gestor de contraseñas).
Precio: Gratis, código abierto.
Plataformas: Linux, macOS, Windows (a través de WSL).
Descargar: GNU Stow
Conclusión: La opción correcta cuando tu configuración es pequeña y nunca vuelves a querer pensar en la herramienta de sincronización.
3. yadm — mejor para tratar los dotfiles como un repo Git
yadm (Yet Another Dotfiles Manager) es Git más conveniencias específicas de dotfiles: scripts bootstrap, archivos alt por host u OS, y cifrado a través de GPG. Dado que es realmente solo un envoltorio alrededor de Git, todo lo que ya sabes sigue funcionando.
Dónde se queda corta: La convención de archivo alt es poderosa pero menos identificable que la plantilla de chezmoi. La historia de cifrado es básica en comparación con herramientas basadas en age.
Precio: Gratis, código abierto.
Plataformas: Linux, macOS.
Descargar: yadm
Conclusión: El paso más suave desde un repo Git simple de dotfiles.
4. dotbot — mejor para la configuración pequeña declarativa
dotbot lee un archivo de instalación YAML y crea enlaces simbólicos, clona repos y ejecuta comandos de shell. Es lo suficientemente pequeño como para venderse en tu repo de dotfiles, por lo que clonar el repo y ejecutar ./install es todo el bootstrap en una máquina nueva.
Dónde se queda corta: Sin plantillas. Sin cifrado nativo. Las máquinas complejas terminan con archivos install.yaml largos que se vuelven difíciles de leer.
Precio: Gratis, código abierto.
Plataformas: Linux, macOS.
Descargar: dotbot en GitHub
Conclusión: La opción correcta cuando quieres un archivo de instalación declarativo y nada más.
5. Ansible — mejor cuando la configuración va más allá del directorio de inicio
Ansible administra máquinas completas desde un conjunto de playbooks. Para una configuración personal, un playbook instala paquetes, establece parámetros del kernel, coloca dotfiles y configura servicios en una pasada. El mismo playbook se ejecuta en un portátil o un nodo homelab.
Dónde se queda corta: Excesivo para un problema de dotfile puro. Las ejecuciones de playbook son más lentas que una granja de enlaces simbólicos. La fatiga YAML es real una vez que pasas de unos pocos cientos de líneas.
Precio: Gratis, código abierto. Nivel empresarial de pago de Ansible Automation Platform.
Plataformas: Linux, macOS, Windows.
Descargar: Ansible
Conclusión: La herramienta para cualquiera que quiera un flujo de trabajo para su portátil y sus servidores.
6. Syncthing — mejor para los archivos, no las configuraciones
Syncthing es la sincronización de archivos peer-to-peer que tu administrador de dotfiles debe tener al lado. Mantén las configuraciones declarativas en Git, pero deja que Syncthing mueva un par de cientos de gigabytes de Documents, Music y archivos de rasguño de proyecto entre máquinas sin que un proveedor de nube los toque nunca.
Dónde se queda corta: No es una herramienta de dotfiles en absoluto. Trae tus propios hábitos de resolución de conflictos. La sincronización inicial de una carpeta grande tarda lo que permite el enlace más lento.
Precio: Gratis, código abierto.
Plataformas: Linux, macOS, Windows.
Descargar: Syncthing
Conclusión: La otra mitad de una configuración real de múltiples máquinas, que tu herramienta de dotfiles solo no reemplazará.
7. Nix Home Manager — mejor para reproducibilidad completa
Nix Home Manager describe tu entorno de usuario completo en expresiones Nix: paquetes, dotfiles, servicios, todo. Una máquina nueva obtiene nix run home-manager -- switch y aparece idéntica a todas las otras máquinas en el flake.
Dónde se queda corta: La curva de aprendizaje de Nix es real. Algunas aplicaciones propietarias no tienen paquetes Nix. Los rollback son magia cuando funcionan y dolorosos cuando un canal se rompe.
Precio: Gratis, código abierto.
Plataformas: Linux, macOS.
Descargar: Nix Home Manager
Conclusión: La opción correcta para cualquiera dispuesto a invertir en Nix desde el principio para verdadera reproducibilidad.
Cómo elegir la correcta
- Si tienes un portátil y nunca vuelves a querer pensar en esto: GNU Stow o yadm.
- Si tienes tres máquinas y una es de trabajo: chezmoi.
- Si quieres un bootstrap declarativo y nada más: dotbot.
- Si ya ejecutas Ansible en servidores: extiende un playbook a tu portátil.
- Si también necesitas sincronizar archivos de datos: Syncthing junto con cualquiera de lo anterior.
- Si quieres un flujo de trabajo de reconstrucción desde configuración: Nix Home Manager.
Preguntas frecuentes
¿Dónde almaceno secretos en un repo de dotfiles? Nunca en texto plano. chezmoi y yadm ambos cifran en reposo. Para repos Git simples, usa age o GPG en archivos específicos, o mantén secretos completamente fuera del repo.
¿Funcionan estas herramientas en macOS? Todas las herramientas en esta lista soportan macOS. Nix Home Manager y chezmoi son con mucho las más amigables con macOS.
¿Cómo manejo configuraciones específicas de máquina? Plantillas (chezmoi), archivos alt (yadm), ramas (yadm y Stow), o bloques protegidos por host en Ansible. El patrón de plantilla escala mejor después de dos máquinas.
¿Debería hacer commit de mi repo de dotfiles públicamente? Solo después de una auditoría. Incluso una configuración pequeña a menudo lleva un correo electrónico o un alias solo de trabajo. Lo privado es más seguro.
¿Cómo sincronizo archivos que cambian constantemente, como marcadores del navegador o historial de shell? Syncthing, no una herramienta de dotfiles. Los dotfiles versionados no disfrutan el cambio cada hora.
¿Vale la pena aprender Nix solo para dotfiles? Solo para dotfiles, no. Para cualquiera que construya homelabs, contenedores de desarrollo y compilaciones reproducibles, sí.