Start with an inventory
Before installing a long list of tools, write down the work this machine needs to support. A useful inventory is short and concrete:
- browser and password manager
- editor and source-control tools
- language runtimes required by active projects
- backup, disk encryption, and update expectations
- peripherals that need explicit drivers or firmware
Establish a safe baseline
Apply supported updates, confirm time synchronization, and record the distribution release. Avoid copying an old dotfiles directory wholesale before you know what the clean system already provides.
cat /etc/os-release
uname -a
timedatectl statusConfigure Git deliberately
Use readable global defaults, but keep employer- or client-specific identity in repository or conditional configuration.
git config --global init.defaultBranch main
git config --global pull.ff only
git config --global core.editor "your-editor --wait"Restore access, not clutter
Generate or restore keys through your approved process. Add only the credentials this workstation needs, and confirm a key fingerprint before depending on it.
ssh-keygen -lf ~/.ssh/id_ed25519.pubAdd development runtimes
Prefer a single understandable runtime-management approach. Document the chosen tool in the project README and pin versions in the repository where the ecosystem supports it.
Verification pass
Open a fresh terminal and verify that the shell does not depend on state from the setup session. Clone a non-sensitive repository, install its dependencies, run its checks, and restart the workstation once before calling the build complete.
Keep a rebuild note
Record the few manual steps that cannot yet be reproduced. That note becomes the seed for the next workstation setup—and a good candidate for future automation.