Work / Ongoing
Systems · automation · developer environment
Debian Workstation Setup
A modular, Debian-first workstation bootstrap: small shell scripts, explicit package groups and reusable configuration instead of one opaque provisioning blob.
Problem
Rebuilding a development workstation tends to accumulate undocumented manual steps: packages installed from memory, configuration copied from old machines, one-off fixes and machine-specific tweaks mixed into reusable setup.
I wanted a setup that stays understandable enough to trust and simple enough to change.
Approach
The repository is deliberately Debian-first and shell-first. Instead of hiding the machine behind a large configuration framework, it separates the work into small scripts, package manifests and modular configuration.
The structure distinguishes between core CLI tools, development packages, workstation software, fonts and the optional AwesomeWM environment. Machine-specific values can stay outside the reusable base configuration.
Engineering choices
- readable shell scripts over opaque automation;
- explicit package lists over an all-or-nothing installer;
- a guided bootstrap path without removing the manual path;
- shared shell helpers for repeated behavior;
- modular AwesomeWM configuration rather than a single growing
rc.lua; - documentation for the parts that are risky or easy to forget.
Why it belongs here
This is not a large application, but it represents a recurring part of how I work: make the environment reproducible, keep the mechanism visible, isolate machine-specific concerns and avoid adding abstraction unless it earns its place.