Skip to content

Latest commit

 

History

17 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Linux Workstation Bootstrap

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.

Features

  • 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

Requirements

  • Linux
  • Bash 5 or newer
  • /etc/os-release

Clone and Run

Clone the repository:

git clone https://github.com/LinuxEuphony/linux-workstation-bootstrap.git

Enter the project directory:

cd linux-workstation-bootstrap

Make the bootstrap executable:

chmod +x bin/linux-workstation-bootstrap

Run the bootstrap:

./bin/linux-workstation-bootstrap

The detected system configuration is displayed before a distribution profile is selected.

Usage

./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-run

Selecting a different distribution profile does not alter the detected host information. The bootstrap keeps the detected system and selected configuration profile separate.

Logging

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.

Project Structure

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.

Safety

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.

Project

Developed under the LinuxEuphony organization.

About

A reusable, distro-aware Linux workstation bootstrap utility that safely detects the host distribution, supports selectable installation profiles/modules, previews changes, and installs/configures software appropriately for each supported Linux distribution.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages