A reusable, distro-aware Linux workstation bootstrap utility for preparing and configuring Linux workstations in a consistent and controlled way.
Linux Workstation Bootstrap detects the host operating system and architecture, identifies the distribution family and package manager, and allows the user to confirm or select the distribution profile before configuration begins.
- Linux distribution detection using
/etc/os-release - Distribution version and codename detection
- Architecture detection and normalization
- Distribution-family identification
- Package-manager identification
- Interactive distribution profile confirmation and selection
- Command-line distribution profile override
- Dry-run execution mode
- Persistent per-session logging
- Centralized application configuration
- Separate core, detection, logging, CLI and user-interface layers
Supported distribution profiles:
- Ubuntu
- Debian
- Kali Linux
- Linux
- Bash 5 or newer
/etc/os-release
Clone the repository:
git clone https://github.com/LinuxEuphony/linux-workstation-bootstrap.gitEnter the project directory:
cd linux-workstation-bootstrapMake the bootstrap executable:
chmod +x bin/linux-workstation-bootstrapRun the bootstrap:
./bin/linux-workstation-bootstrapThe detected system configuration is displayed before a distribution profile is selected.
./bin/linux-workstation-bootstrap [options]
Available options:
--distro <profile> Use a specific distribution profile
--dry-run Preview actions without applying system changes
-y, --yes Accept a supported detected profile without prompting
--version Display the application version
-h, --help Display help
Examples:
./bin/linux-workstation-bootstrap --help./bin/linux-workstation-bootstrap --version./bin/linux-workstation-bootstrap --dry-run --yes./bin/linux-workstation-bootstrap --distro debian --dry-runSelecting a different distribution profile does not alter the detected host information. The bootstrap keeps the detected system and selected configuration profile separate.
Each bootstrap execution creates a dedicated session log.
By default, logs are stored under:
~/.local/state/linux-workstation-bootstrap/logs/
If XDG_STATE_HOME is configured, it is used as the state directory instead.
The bootstrap displays the current session log and log directory during execution.
linux-workstation-bootstrap/
├── bin/
│ └── linux-workstation-bootstrap
├── config/
│ └── defaults.sh
├── lib/
│ ├── arguments.sh
│ ├── bootstrap.sh
│ ├── core.sh
│ ├── detect.sh
│ ├── logging.sh
│ └── ui.sh
├── distros/
├── modules/
├── profiles/
├── tests/
└── docs/
Application defaults and platform mappings are centralized under config/. Shared application behavior is kept under
lib/, while distribution-specific behavior, installation modules and workstation profiles are kept separate.
Linux Workstation Bootstrap is designed to make system changes deliberately and visibly.
Host detection, profile selection, configuration, logging and execution logic are separated so that operations can be validated before system changes are applied. Dry-run mode provides a way to preview execution without applying changes.
Developed under the LinuxEuphony organization.