linux customization

i started using linux because i wanted more control over my machines. i stayed because it fundamentally changed how i think about computing.

the distro-hopping phase was inevitable. ubuntu was the safe entry point, the one everyone recommends. it worked fine but felt like someone else's decisions about what my desktop should look like. fedora came next and introduced me to a more cutting-edge package ecosystem. then arch, which is where things really clicked. installing arch forced me to understand every layer of the system, from the bootloader to the display server.

but this isn't really about which distro is best. it's about what happens when you start treating your operating system as something you build rather than something you consume.

terminal life

most of my day lives in the terminal now. zsh with a minimal prompt that shows me only what i need. tmux for session management, because losing your workspace to an accidental terminal close is a pain you only experience once. neovim as my primary editor, configured over months of small tweaks and plugin experiments.

i manage all of this through a dotfiles repository. every configuration file is version controlled and symlinked. when i set up a new machine, one script pulls everything down and puts it in place. it sounds excessive until you've had to reconfigure everything from scratch for the third time.

docker and server work

containerization was the natural next step. i run several services in docker containers, everything from personal web apps to monitoring tools. docker-compose files define the entire stack, and spinning up a new environment takes minutes instead of hours.

server hardening became important once i started hosting things publicly. fail2ban, proper firewall rules, ssh key-only authentication, automated security updates. monitoring with prometheus and grafana so i can actually see what's happening on the box.

automating deployments

i wrote shell scripts and eventually moved to proper ci/cd pipelines for deploying my projects. a git push triggers a build, runs tests, and deploys to the server. it's not fancy infrastructure, but it's reliable, and i understand every piece of it.

linux became the foundation for everything else i do. web development, server management, automation, even creative projects. once you're comfortable in the terminal, the overhead of learning new tools drops dramatically. everything is just text, files, and processes.