Automação Linux
A bare git repository for managing system dotfiles with full version control and automated provisioning scripts. Built for my Arch/EndeavourOS setup.Um repositório Git bare para gerenciar dotfiles do sistema com controle de versão completo e scripts automatizados de provisionamento. Feito para meu setup Arch/EndeavourOS.
01 OverviewVisão Geral
Managing dotfiles is a classic Linux power-user problem. The naive solution — symlinks and a manual setup script — breaks every time you switch machines. The bare git repository approach solves this elegantly: your home directory itself becomes tracked, with no symlinks required.Gerenciar dotfiles é um problema clássico para usuários avançados de Linux. A solução ingênua — symlinks e um script manual de setup — quebra sempre que você troca de máquina. A abordagem com repositório Git bare resolve isso de forma elegante: a própria home vira o work-tree, sem exigir symlinks.
This project implements that pattern with scripts layered on top for automated package list backups, font installations, and full environment reprovisioning from a single command.Este projeto implementa esse padrão com scripts adicionais para backup automatizado da lista de pacotes, instalação de fontes e reprovisionamento completo do ambiente com um único comando.
02 Key Design DecisionsDecisões de Design
Bare repo, not symlinksRepo bare, não symlinks
Using git --bare with a custom work-tree alias means the home directory is the repo. No symlink management, no helper tools like stow required.Usar git --bare com um alias de work-tree customizado faz da home o repositório. Sem gerenciamento de symlinks, sem precisar de ferramentas auxiliares como stow.
Automated package backupBackup automatizado de pacotes
A cron-driven script exports the explicitly installed package list with pacman -Qqe into a tracked file, so a fresh install can reproduce the exact environment.Um script agendado por cron exporta a lista de pacotes instalados explicitamente com pacman -Qqe para um arquivo versionado, permitindo reproduzir o ambiente exato em uma instalação nova.
Single-command bootstrapBootstrap em um comando
A setup.sh script handles the full provisioning: clone bare repo, install packages from list, install fonts, apply configs.Um script setup.sh cuida de todo o provisionamento: clona o repo bare, instala pacotes da lista, instala fontes e aplica configurações.
03 LearningsAprendizados
set -euo pipefail saved me multiple times.Tech UsedTecnologias Utilizadas
Key FeaturesPrincipais Recursos
- ✓Bare git repo patternPadrão de repositório bare git
- ✓Automated package list backupBackup automatizado da lista de pacotes
- ✓One-command bootstrapBootstrap em um comando
- ✓Font & config provisioningProvisionamento de fontes e configs