Local setup for development for various platforms
Get started in 2 minutes:
git clone <repo-url>
cd local-setup
./bootstrap.shThat's it! See QUICKSTART.md for details.
The bootstrap script automatically:
- Detects your OS (Debian/Ubuntu, Fedora/RHEL, Arch, etc.)
- Installs Ansible if needed
- Installs all base packages and utilities (including gawk)
- Configures your shell (zsh + Oh My Zsh)
- Installs development tools
If Ansible is already installed:
# Run everything
ansible-playbook site.yml
# Or run individual parts
sudo ansible-playbook base-setup.yml
ansible-playbook user-setup.yml
ansible-playbook tools-setup.yml
# Test without making changes
ansible-playbook site.yml --check --diffWhy Ansible? Idempotent, testable with --check, better error handling, easier to extend.
Original bash-based setup. Still works but less robust.
# Base Setup - Update O/S packages, setup languages, etc.
sudo ./linux/01-base-setup.sh
# User Setup - User specific setup (executed as user, not system)
./linux/02-user-setup.sh
# Tools Setup - Install / update developer tools
./linux/03-tools-setup.shWarning: Scripts are not idempotent - re-running may cause issues.
- curl, wget, git, tree, gawk
- Python 3 with pip and virtualenv
- zsh shell
- Oh My Zsh with plugins (git, aws, docker, kubectl, terraform)
- Homebrew for Linux
- SSH key generation
- AWS CLI
- Terraform & Terragrunt
- GitHub CLI
- pre-commit
- jq, yq
- shfmt, shellcheck
- ✅ Linux (Debian, Ubuntu, Fedora, RHEL, CentOS, Rocky, Arch, Manjaro, openSUSE)
⚠️ Windows (PowerShell script available inwindows/)
- Quick Start - Get started in 2 minutes
- Installation Guide - Complete instructions with troubleshooting
- Ansible Setup Guide - Detailed Ansible usage
- Side-by-Side Comparison - Shell Scripts vs Ansible
- Linux Scripts - Original shell scripts
- Windows Setup - PowerShell scripts