Skip to content

ryanspletzer/dev-machine-setup

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Dev Machine Setup

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.

🚀 Features

  • 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

📋 Quick Links

Platform Setup Guides

Comprehensive Documentation

🔧 Overview

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:

Common Tools Installed

  • 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

🚀 Getting Started

macOS

  1. 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)
  2. Open macOS Terminal app
  3. Navigate to the directory with the macOS script contents
  4. 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

Windows

  1. 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)
  2. Open PowerShell as Administrator
  3. Navigate to the directory with the windows script contents
  4. 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

Ubuntu

  1. 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)
  2. Open Terminal
  3. Navigate to the directory with the ubuntu script contents
  4. 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

⚙️ Customization

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.

📚 Documentation

This project includes comprehensive documentation covering all aspects of setup and customization:

🙏 Acknowledgments

  • 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

About

Dev machine setups for macOS, Windows and Ubuntu

Resources

License

Contributing

Stars

Watchers

Forks