307 - Dotdrop, un completo gestor de dotfiles
Dotdrop es un completo gestor de dotfiles o archivos de configuración con el que podrás mantenerlos de forma sencilla y sin complicaciones
Hace ya bastante tiempo que los dotfiles se han convertido en una herramienta imprescindible para mi. Instalar cualquier distribución de Linux, sin tener al alcance de mis dedos los doftiles, es algo que me produce muchísima pereza. Por esta razón, desde el principio, he insistido en tener mis dotfiles a buen recaudo, y gestionados por una herramienta que inicialmente era de desarrollo propio. Sin embargo, en los últimos tiempos, y dado que me he dedicado a otros menesteres, la he dejado bastante descuidada, lo que me ha llevado en confiar en otras herramientas, y en este caso, he recurrido a Dotdrop, un completo gestor de dotfiles.
Soy consciente de que dejar en manos de otro algo tan importante como mis dotiles tiene su peligro. Sin embargo, estará mucho mejor, que en las mías propias, que actualmente lo tengo completamente descuidado. Así que, finalmente, y después de revisar distintas alternativas, finalmente me decanté por esto, por lo que te comentaré a lo largo de este podcast.
Dotdrop, un completo gestor de dotfiles
¿Dotfiles?
Antes de nada, antes de introducirte en Dotdrop, y si no conoces esto los dotfiles, quería explicarte en una pocas líneas de que se trata. De cualquier forma, tienes el episodio 36 doftiles o archivos de configuración y el 272 contraseñas y dotfiles, en el que hablo sobre el concepto de los dotfiles.
Indicarte que los dotfiles, no son mas que archivos de configuración, de diferentes herramientas y aplicaciones que tienes instalados en tu equipo. Por ejemplo, la configuración de Vim, Nano, la de tu emulador de terminal, la de tmux, y muchas mas.
Es fundamental que estos archivos de configuración estén en texto plano, es decir, que no sean archivos binarios. La razón para ello, es que tienen que poder ser sometidos a control de versiones, con el fin de poder recuperar una versión anterior.
En mi caso particular, lo cierto es que me gusta probar diferentes configuraciones y aplicaciones, con lo que no es estraño, que en ocasiones, una aplicación deje de funcionar por una incorrecta configuración. En este momento, solo tengo que tirar de mi control de versiones, para recuperar una anterior, y salir de la situación en la que yo mismo me encuentro.
Por supuesto, no solo es necesario, poder utilizar el control de versiones, sino que también es tremendamente recomendable, sino obligatorio hacer copias de seguridad de tus archivos de configuración.
Además otra cuestión interesante, es poder compartir esos archivos de configuración con otras personas, utilizando servicios como GitHub o GitLab. Esto va a facilitar que otros usuarios puedan utilizar tu misma configuración, y en su caso, que otros usuarios, puedan aportar mejores soluciones a tu configuración.
Sobre Dotdrop
Una vez que te has hecho una idea, mas o menos clara sobre los dotfiles, llega el momento de hablarte sobre Dotdrop. Dotdrop, es un gestor de dotfiles cuyo lema es algo así como guarda tus dotfiles una vez y despliégalos donde quieras… o algo similar.
La cuestión es que se trata de una herramienta que te permite gestionar tus archivos de configuración y utilizarlos en diferentes dispositivos. No solo esto, sino que te permite guardar tus archivos de configuración en Git y utilizar diferentes versiones del mismo, según tus necesidades.
Además te permite tener diferentes juegos de archivos de configuración, así puedes tener archivos de configuración para el trabajo o para tu equipo de casa, según tus necesidades. Es posible, que necesites tener diferentes .bashrc
, en distintos equipos, pero todo gestionado con la misma herramienta.
Características de Dotdrop
Dotdrop tiene una serie de características que son precisamente las que han hecho decantarme por esta herramienta. Además se trata de una aplicación que tiene una larga trayectoria, desde el 2017 y que actualmente se sigue manteniendo. Además de todo esto, cuenta con una extensa documentación con la que poder familiarizarte con la herramienta de una forma mas o menos rápida. Así, algunas de las características de esta herramienta son las siguientes,
- Te permite sincronizar de forma sencilla tus archivos de configuración en git para poder utilizarlo donde necesites.
- Puedes utilizar plantillas con
jinja2
. - Tienes la posibilidad de generar archivos de configuración de forma dinámica utilizando para ello variables predefinidas.
- Te permite comparar entre la versión que tienes guardada con la versión que tienes en producción y de un solo vistazo ver las diferencias existentes y de esta manera realizar los cambios que consideres oportunos.
- Existen perfiles de configuración. Cada perfil de configuración te permite gestionar diferentes conjuntos de archivos de configuración.
- Las operaciones, tanto de importación como de actualización de archivos de configuración es realmente sencillo.
- No solo puedes gestionar archivos de configuración, sino que también puedes gestionar directorios completos. En ocasiones, una determinada aplicación, no solo tiene un archivo de configuración, sino que tiene varios archivos de configuración, o incluso tiene un directorio. Con Dotdrop esta gestión de archivos y directorios de configuración es totalmente transparente.
- Te permite utilizar enlaces simbólicos. Sin embargo, tal y como te explico en el podcast, esta es algo que a mi no me ha funcionado. La ventaja de tener elementos separados, es que te va a permitir recuperar la configuración previa de forma mucho mas sencilla.
- Puedes asociar acciones al despliegue de determinados archivos de configuración.
- Igualmente, tienes la opción de asociar transformación para guardar archivos de configuración, tanto cifrados como comprimidos.
- Dotdrop te proporciona una solución para la gestión de archivos de configuración donde haya información sensible. Por ejemplo, contraseñas o claves privadas, que no quieres que sean públicas.
En referencia al último punto, considero realmente importante, poder compartir con otros usuarios tus archivos de configuración, tus dotfiles, y para ello, es necesario, que toda esta información sensible esté protegida.
Instalación
Para la instalación, tan solo tienes que ejecutar los siguientes pasos
cd ~
mkdir misdotfiles
cd misdotfiles
git init
git submodule add https://github.com/deadc0de6/dotdrop.git
pip3 install -r dotdrop/requirements.txt --user
También es muy recomendable que pongas un alias a dotdrop. En mi caso yo lo tengo configurado de la siguiente forma,
alias dotdrop=/home/lorenzo/misdotfiles/dotdrop.sh
Utilizando dotdrop
A partir de aquí, todo es realmente sencillo. Por ejemplo, si quieres añadir un nuevo archivo a tus doftiles solo tienes que importarlo, por ejemplo si quieres comenzar a gestionar tu archivo .bashrc
, lo tendrías que hacer de la siguiente forma,
dotdrop import /home/lorenzo/.bashrc
Otra situación en la que te puedes encontrar es cuando haya modificado tu archivo ~/.bashrc
y lo quieras actualizar en tus dotfiles, para ello tendrás que utilizar la siguiente instrucción,
dotdrop update /home/lorenzo/.bashrc
Si por el contrario lo que quieres hacer es instalar ese archivo, tienes que utilizar el comando,
dotdrop install f_bashrc
Fíjate en el detalle, ahora estás utilizando f_bashrc
en lugar del archivo de configuración de destino. Esto lo puedes leer en el archivo config.yml
que se encuentra en tus archivos de configuración de Dotdrop.
Otra herramienta fundamental que tienes que tener siempre muy presente es dotdrop compare
. Esta te va a permitir ver si existe alguna diferencia entre tus archivos de configuración, y los archivos de configuración que tienes guardado en tus dotfiles. Y en su caso actuar en consecuencia, o bien, volviendo pasos atrás y dejando el archivo original, o bien, actualizando los archivos que tienes guardados. Eso depende de ti.
Puedes encontrar mas información sobre esta herramienta en su repositorio de GitHub.
Espero que te haya gustado este nuevo episodio del podcast. Si puedes, te agradecería una valoración en iVoox y/o en Apple Podcast.
Excelente, muchas gracias Lorenzo, estaba a punto de instalar stow pero buscando opiniones para estar seguro de que era la mejor terminé oyendo tu podcast subido a tu canal de youtube y ahora lo he instalado. Gracias por compartir el saber.
Hola Jonas,
Estoy encantado con dotdrop, funciona fantástico.
Muchas gracias por comentar.
Un saludo.