A collection of automated scripts and configurations to set up consistent development environments across macOS, Windows, and Ubuntu platforms. This repository helps you quickly configure a new development machine with common tools, applications, and settings used by developers.
- Cross-Platform Support: Setup scripts for macOS, Windows, and Ubuntu
- Package Management: Install common developer tools and applications
- Editor Configuration: Set up Visual Studio Code with essential extensions
- Shell Configuration: Configure PowerShell with useful modules
- System Preferences: Apply developer-friendly system settings
- Customization: Easily customize the installation to fit your needs
- macOS Setup - Set up a macOS development environment
- Windows Setup - Set up a Windows development environment
- Ubuntu Setup - Set up an Ubuntu development environment
- 📚 Complete Documentation - Comprehensive documentation and guides
- 🎯 Design Principles - Core principles behind this project
- 🏗️ Architecture Overview - How everything fits together
- ⚙️ Customization Guide - How to tailor the setup for your needs
- 📦 Package Management - Understanding the package strategy
- ❓ FAQ - Frequently asked questions
- 🛠️ Troubleshooting - Common issues and solutions
This repository is designed to help developers quickly set up new machines with a consistent development environment. It automates the installation of common tools, applications, and configurations that developers use daily.
The setup is platform-specific but provides a similar set of tools across macOS, Windows, and Ubuntu:
- Version Control: Git, Git LFS
- Editors & IDEs: Visual Studio Code with extensions
- Package Managers: Homebrew (macOS), Chocolatey (Windows), APT (Ubuntu)
- Languages & Runtimes: Python, Node.js, .NET SDK, etc.
- Cloud Tools: AWS CLI, Azure CLI, Terraform, etc.
- Containers: Docker
- Shell Enhancements: PowerShell modules, Terminal customizations
- Clone this repository
(or grab a zip download of the repo and copy the contents of the
macOS
directory to somewhere like~/Downloads
if you don't have git installed yet) - Open macOS Terminal app
- Navigate to the directory with the
macOS
script contents - Run the setup script:
# Copy the contents of the macOS directory to somewhere like Downloads if you don't have git installed yet to clone the
# repo
# Change to that directory
cd ~/Downloads
# Allow the setup.sh script to run
chmod 700 ./setup.sh
# Run the script
./setup.sh -e [email protected]
Detailed macOS Setup Instructions
- Clone this repository
(or grab a zip download of the repo and copy the contents of the
windows
directory to somewhere like~/Downloads
if you don't have git installed yet) - Open PowerShell as Administrator
- Navigate to the directory with the
windows
script contents - Run the setup script
# Copy the contents of the macOS directory to somewhere like ~/Downloads if you don't have git installed yet to clone
# the repo
# Change to that directory
cd ~/Downloads
# Change the PowerShell Execution Policy
# Note this is _not_ a security boundary, so don't worry...
# See this for more info:
# https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_execution_policies
Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Force
# Run the script
.\setup.ps1 -e your.email@example.com
Detailed Windows Setup Instructions
- Clone this repository
(or grab a zip download of the repo and copy the contents of the
ubuntu
directory to somewhere like~/Downloads
if you don't have git installed yet) - Open Terminal
- Navigate to the directory with the
ubuntu
script contents - Run the setup script:
# Copy the contents of the ubuntu directory to somewhere like Downloads if you don't have git installed yet to clone
# the repo
# Change to that directory
cd ~/Downloads
# Allow the setup.sh script to run
chmod 700 ./setup.sh
# Run the script
./setup.sh -e [email protected]
Detailed Ubuntu Setup Instructions
All platforms support extensive customization through their respective configuration files:
- macOS: Edit
macOS/vars.yaml
to customize the Ansible playbook - Windows: Edit
windows/vars.yaml
to customize the PowerShell script - Ubuntu: Edit
ubuntu/vars.yaml
to customize the Ansible playbook
You can add or remove packages, change system preferences, and even add custom scripts to run at the end of the setup process. For detailed customization instructions, see the Customization Guide.
This project includes comprehensive documentation covering all aspects of setup and customization:
- Complete Documentation - Start here for full documentation
- Design Principles - Understand the philosophy behind this project
- Architecture Overview - How all the pieces fit together
- Package Management Strategy - Our approach to managing packages
- Configuration Reference - Complete reference for all options
- Examples - Real-world configuration examples
- Troubleshooting Guide - Solutions to common problems
- Contributing Guide - How to contribute to this project
- FAQ - Frequently asked questions
- Ansible for the macOS and Ubuntu automation
- PowerShell for the Windows automation
- Homebrew, Chocolatey, and APT and Snap for package management
- All the developers who maintain the tools and applications installed by these scripts