I tuoi dotfiles, ogni macchina, un solo comando
Configurare una macchina nuova di solito significa ore passate a personalizzare impostazioni, reinstallare tool e copiare manualmente i dotfiles da un altro computer. E se un singolo comando potesse riprodurre l’intero ambiente, segreti inclusi, con template che si adattano a ogni host? E’ esattamente ciò che promette chezmoi, e dopo anni di evoluzione silenziosa è diventato uno dei progetti più seguiti nella sua categoria.
TL;DR: Chezmoi risolve il problema che Git da solo non può affrontare: dotfiles parametrici su macchine diverse, con gestione dei segreti integrata e deployment in un comando. Il compromesso è la complessità, ma per chi gestisce più di due macchine si ripaga subito.
Perché ti dovrebbe interessare
Se hai mai configurato un laptop nuovo e pensato “l’ho già fatto su un’altra macchina, perché devo rifarlo?”, questo articolo fa per te. Vediamo perché Git non basta per i dotfiles, come chezmoi risolve il problema dei file parametrici e dei segreti, e quando vale davvero la pena impararlo.
Il problema di Git da solo
La maggior parte degli utenti Linux, prima o poi, scopre che i propri dotfiles starebbero bene in un repository Git. Funziona, fino a un certo punto. Nel momento in cui possiedi più di una macchina, le crepe si vedono.
Un desktop con GPU Nvidia ha bisogno di impostazioni diverse rispetto a un laptop con AMD. Una workstation a tre monitor non ha nulla in comune con un portatile a schermo singolo. La strategia “un branch per macchina” diventa presto un incubo di manutenzione: merge si accumulano, le modifiche su un branch non arrivano mai agli altri, e finisci per gestire repository invece di configurazioni.
Come funziona chezmoi
Chezmoi tratta la tua home directory come il target e mantiene una directory sorgente separata, un repo Git, che contiene lo stato desiderato di ogni file gestito. Quando esegui chezmoi apply, il motore renderizza ogni template, recupera i segreti dal password manager e scrive i file finali al posto giusto.
Aggiungere e modificare file
Il workflow di base è semplice:
chezmoi add ~/.bashrccopia il file nella directory sorgente e inizia a tracciarlochezmoi edit ~/.bashrcapre la versione sorgente nell’editor, sia che sia un file normale sia che sia un templatechezmoi cdti porta nella directory sorgente per usare Git direttamentechezmoi diffmostra cosa cambierebbe prima di applicare le modifiche
Ogni cambiamento è versionato attraverso Git, quindi ottieni la storia completa delle tue configurazioni senza sforzo aggiuntivo.
Template che si adattano per host
Ecco dove chezmoi supera un setup Git tradizionale. Aggiungendo .tmpl al nome di un file, lo trasformi in un template Go che può fare riferimento a proprietà di sistema come hostname, OS e architettura. Un singolo .bashrc.tmpl può produrre output diversi su ogni macchina:
{{- if eq .chezmoi.hostname "workstation" }}
export DISPLAY=:0
{{- else if eq .chezmoi.hostname "laptop" }}
export DISPLAY=:0
{{- end }}
Un esempio pratico: un file di configurazione OBS in formato template. Su una macchina con GPU Nvidia, il template abilita l’encoding hardware NVENC; su tutto il resto, passa al software encoding. Niente branch, niente modifiche manuali per host, niente differenze dimenticate.
Gestione dei segreti senza perdite
I dotfiles spesso contengono dati sensibili: chiavi API, chiavi private SSH, token di accesso. Committarli in un repository Git, anche privato, è un rischio per la sicurezza. Chezmoi risolve il problema integrandosi direttamente con i password manager.
Prendiamo il caso di una chiave privata SSH: con bitwarden_attachment_by_reference, il template recupera il segreto da Bitwarden al momento del rendering. Il segreto stesso non finisce mai nel repository Git. Il risultato è un setup di dotfiles portabile e sicuro di default.
Per chi è chezmoi?
La risposta onesta: power user che gestiscono più macchine Linux (o macOS, o Windows, o FreeBSD) e hanno confidenza con Git e la riga di comando. Se non hai mai sentito il dolore di riconfigurare un laptop nuovo da zero, chezmoi ti sembrerà eccessivo. Ma se la frase “lasciami solo configurare il mio ambiente” ti riempie di terrore, potrebbe essere esattamente ciò di cui hai bisogno.
Per chi vuole approfondire
Da qui in poi si entra nel tecnico. Se ti interessa l’idea più dell’implementazione, puoi saltare direttamente alla conclusione.
Comandi e pattern avanzati
Alcuni pattern che rendono l’uso quotidiano più scorrevole:
chezmoi mergerisolve i conflitti quando sia lo stato sorgente sia il file target sono cambiati, offrendo un merge a tre vie simile a Gitchezmoi datastampa tutte le variabili template disponibili, utile quando stai scrivendo template e hai bisogno di sapere quali proprietà sono accessibilichezmoi doctoresegue diagnosi sul tuo setup, verificando che tutte le integrazioni (Git, password manager) funzionino correttamente- L’integrazione con tool esterni: chezmoi può eseguire script prima e dopo l’applicazione delle modifiche, così puoi avviare package manager, installare font o impostare permessi nello stesso flusso di lavoro
Deployment in un comando
Su una macchina vergine, eseguire chezmoi init-apply https://github.com/tuonome/dotfiles clona il tuo repo e applica tutto in un solo passo. Questo è il momento dove l’investimento di tempo nella configurazione iniziale si traduce in risparmio reale: da qui in avanti, ogni nuova macchina è a un comando dalla tua configurazione completa.
Lo sponsor: InternXT
L’occasione è utile per segnalare anche InternXT, un provider europeo di cloud storage open source. InternXT offre crittografia end-to-end zero-knowledge, conformità GDPR, certificazione ISO 27001 e supporto per Rclone e WebDAV. Dispone inoltre di versioning dei file e crittografia post-quantistica. Vale la pena sottolineare che si tratta di una pubblicità, non di un’endorsement editoriale.
Il punto
- Chezmoi risolve il problema che Git da solo non può affrontare: dotfiles parametrici su macchine eterogenee con gestione dei segreti di prima classe
- Il sistema di template Go è potente ma richiede un investimento iniziale di apprendimento
- Per chi gestisce più di due macchine, il ROI si materializza la prima volta che esegui
chezmoi init-applysu un’installazione pulita
I dotfiles sono il DNA del tuo ambiente di lavoro. Chezmoi ti permette di replicarlo su qualsiasi macchina senza copiare segreti in chiaro e senza impazzire con i branch.