A modular approach to automating Debian post-installation setup.
.
├── configs
│ └── packages.ini # List of packages to install
├── scripts
│ ├── install_packages.sh # Installs packages from packages.ini
│ ├── setup_fish.sh # Sets up fish shell
│ ├── setup_git.sh # Sets up Git configuration
│ └── setup_repos.sh # Adds repositories
└── setup.sh # Main script-
First, clone this repository:
git clone https://github.com/yourusername/debian-setup.git cd debian-setup -
Make all scripts executable:
chmod +x setup.sh chmod +x scripts/*.sh -
Run the setup script as root:
sudo ./setup.sh
The main script supports several options:
-h, --help: Show help message-v, --verbose: Enable verbose output--no-repos: Skip adding repositories--no-packages: Skip installing packages--no-fish: Skip setting up fish shell--no-git: Skip Git configuration
Example:
sudo ./setup.sh --no-fish- Edit
configs/packages.inito modify the list of packages to install - Modify individual scripts in the
scripts/directory to customize their behavior
- Debian 13 (Trixie) or newer
- Root privileges for installation