Software Requirements

This section introduces the technologies needed to setup the local development environment!

The setup for local development environment assumes you are running the latest version of MacOS

Install Software Requirements

Prerequisite

Please do the following steps in order. We are assuming that this is a fresh installation of the newest MacOS operating system.

Brief Introduction to Terminal.app (Bash shells)

We also assume the user can find and run a Bash shell. To do so in MacOS, find the default terminal emulate known as Terminal.app. It can be located at:

Terminal.app
/Applications/Utilities/Terminal.app

Please open the Terminal.app or an equivalent terminal emulator when this guide prompts to run commands!

Update MacOS

Wither you have fresh install of an operating system or not, it is always important to check for updates! Thankfully there is a built in tool which we can run from on a command line to check for and install operating system level updates.

/usr/sbin/softwareupdate -ia

While this can also be done manually through the MacOS App Store, it is typically preferred to operate through the command line as much as possible!

Install Xcode Command Line Tools

We must next install the Xcode Command Line Tools. We no longer have to install Xcode (the defacto MacOS programming tool) to get the bundled utilities! We need the Xcode Command Line Tools later in our development and deployment cycle. The main use is to build C modules, which we could not do without this.

xcode-select --install

Install brew

Next up is installing the missing package manager for MacOS. Most *unix based operating system's have a built in command line tool to install, remove, and update software. Unforunately MacOS does not :[

Thankfully a great engineer named Max Howell started the project (shout-outs to the rest of the contributors as well) and it has turned into the defacto package manager. Brew will allow us to install most, if not all, of our other required software packages painlessly!

To install brew run the following:

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Then let brew check that it is installed properly:

brew doctor

Install git and Configure SSH Keys

brew install git

Create a new SSH Key:

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
Enter a file in which to save the key (/Users/you/.ssh/id_rsa): [Press enter]
Enter passphrase (empty for no passphrase): [Type a passphrase]
Enter same passphrase again: [Type passphrase again]

Ensure the SSH Agent is running:

eval "$(ssh-agent -s)"

Update Your SSH Config:

Open and edit your SSH config at ~/.ssh/config to contain the following:

Host *
 AddKeysToAgent yes
 UseKeychain yes
 IdentityFile ~/.ssh/id_rsa

Add your SSH Key to your keychain:

ssh-add -K ~/.ssh/id_rsa

Add Your New SSH Key to GitHub:

curl -u "<USERNAME>" --data "{\"title\":\"<KEY NAME>\",\"key\":\"`cat ~/.ssh/id_rsa.pub`\"}" https://api.github.com/user/keys

Install iTerm2

brew cask install iterm2

Install SublimeText 3

brew cask install sublime-text
sudo ln -s /Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl /usr/local/bin/subl

Install Pipenv

brew install pipenv

Install Yarn

brew install yarn

Install OpenSSL (Upgrade)

Upgrade Pip and Pip3

Install Postgres

sudo mkdir -p /etc/paths.d && 
echo /Applications/Postgres.app/Contents/Versions/latest/bin | sudo tee /etc/paths.d/postgresapp

Optional Software Requirements

The following is a set of tools that are not required to build our project but are tools I recommend to all engineers!

Install FireFox Nightly

As a firm believer in moving people away from Google Chrome(bot) I will push engineers to try out the blazing fast Firefox Nightly. It comes bundles with tons of new features, many of which are essential in web development workflow.

brew cask install firefox-nightly

Copyright Dylan Stein - 2018

Last updated