Linux Post-Install Automation

Post-Install Manager Interface

How This Started

Every time I set up a fresh install, which happens fairly regularly between new hardware, VMs, and wanting a clean environment to test something on, I'd go through the same mental checklist. Same packages, same dotfiles, same aliases, same editor config. After doing it manually enough times I put together some basic scripts to handle it. Then I thought: why not make it interactive? An ASCII menu, some choices, a bit of structure. This was one of the first Bash scripts I actually put effort into, and it shows in places, but I wanted to keep it here as a reference point for where things started.

Overview

A Bash script for automating package installation and environment configuration on fresh Linux installs. It supports Debian, Fedora, and Arch-based systems, and has a wee interactive menu so you can pick what you actually want rather than installing everything blindly.

Key Features

  • Multi-distro support - Works across Debian, Fedora, and Arch-based systems
  • Package management - Automated installation of my "must have" tools, utilities, and applications
  • Configuration deployment - Dotfiles, aliases, and environment setup
  • Interactive selection - Choose specific packages and configurations to install

Supported Categories

  • Development tools - Git, editors, compilers, and language runtimes
  • System utilities - Monitoring tools, network utilities, and productivity apps
  • Desktop applications - Media players, browsers, and communication tools
  • Custom configurations - SSH keys, shell aliases, and personal preferences

Technical Implementation

The script detects which package manager is available - apt, dnf, or pacman - and handles everything from there. It logs what it installs, has basic error handling so a failed package doesn't abort the whole run, and is structured in a way that makes it easy to add new packages without digging through the core logic. Nothing groundbreaking, but it does the job and saved me a lot of repetitive typing.

Post-Install script running

Why This Matters

Setting up a new system used to take a little repetitive work. With this automation, I can go from fresh install to fully configured environment just how I like it in minutes. It's especially useful when testing new distros in VMs or setting up new hardware. Again, I have scripts for this, but they don't have an ASCII menu...

Next Steps

  • Add support for more package managers (Nix, Flatpak)
  • Expand configuration templates for different use cases, I'm a diehard XFCE fan, but I suppose I believe my friends when they say other DEs are good. Maybe.
  • Integration with cloud dotfiles repository for syncing across machines

Resources

View on GitLab →

Last updated: