I frequently setup new development environments and/or work from new/existing machines. To completely replicate my machine, I use a script and some pretty innovative cloud tools to get setup new development environments and running extraordinarily fast with no manual installation or configuration.
/usr/bin/ruby -e “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)”
brew tap caskroom/cask
brew update && brew upgrade && brew prune && brew cleanup
# Install Essential OSX Applications
brew install mackup keychain
brew cask install –force –appdir=/Applications/Dev docker phpstorm sourcetree transmit sublime-text
brew cask install –force –appdir=/Applications firefox google-chrome imageoptim franz openoffice google-backup-and-sync dropbox
# Change shell to Zsh & Use Oh-My-Zsh
chsh -s $(which zsh)
# Restore All Content by signing into iCloud, iCloud Photo Library, iTunes
# Automagically Configure OSX Settings via Mackup
# engine = icloud
From here, my development workflow consists of using Sourcetree to pull Bitbucket or Github repositories for local development.
Each repository is architected with docker at the core so I run some simple command scripts contained in each repository to replicate development, staging and production servers directly on my machine.
Each project is completely immutable meaning I can git pull the entire architecture, develop some code, commit & test, rebuild the remote environment with new code, and remove the project repository from my local machine.
Pretty neat, huh?