Setting Up Your Workstation

Chances are you’re either new to Mission Data (welcome!) or are reformatting your workstation and you want to get up and running quickly. Below is the method we suggest to get things installed in a manner where you should be able to deal with most of our projects and we can support you best.

If you do the following in order, everything should go smoothly and quickly. We generally expect that you’re working on an Apple computer of some sort. If you’ve chosen something else, please let us know so that we can provide an update here, or alternate instructions entirely.

If You’re Reinstalling

Make copies of the following items somewhere safe:

  • Your SSH key at (typically) ~/.ssh/id_*
  • The output of brew bundle which will likely be a file named Brewfile. This will help you reinstall your Homebrew installed packages quickly.

Also, a Time Machine or other backup is strongly recommended.

Basic Setup Guidelines for all OSs

  • When you go to create your user account on your system, you MUST use your Mission Data user id as the account name on the computer.

Basic MacOS X Setup

Before you even turn on your Mac the first time, we suggest you have the following on hand:

  • A preferred (can be personal if you choose) Apple ID you will use with your account. This allows you easy access to all the ‘handoff’ functions you may already enjoy between your Apple devices, as well as any software you’ve previously purchased and prefer to use in your job.

Step through the MacOS system configuration wizard, paying special attention to ensuring you enter your Mission Data username as your account name when it prompts you to create a user.

Seriously, don’t install any other software, even your browser or a terminal program until you read further.

MacOS X Software Installation

We strongly recommend the use of Homebrew for ancillary software installation. The reasoning is that most Ruby Gem workflows on MacOS expect any dependencies to be installed via Homebrew for support reasons, rather than technical reasons. Install the above and come back here.

We strongly suggest the use of language version managers for the management of different languages and their respective versions throughout our project ecosystem. Unfortunately, we tend to have a great deal of different language versions floating about based on project and the tooling associated. We strongly recommend asdf as it has multiple language support and has proven itself to be a very useful tool. Go to the asdf post and follow all the steps (important!) and then come back here. If you choose to go your own way, good luck!

Recommended baseline tools (for your copy and paste pleasure):

brew install awscli git git-lfs sqlite3 pkg-config freetds
brew install mysql-client libpq
brew install --cask docker

At this point, if there are GUI-based tools you use, do a brew search --cask [name] to see if a package exists within Homebrew for what you need. Check the post on Homebrew above for other commands. You may find it easier to get yourself up-and-running faster this way.

Development Environment Setup

This is probably more for people new to Mission Data, but those reinstalling may find this to be useful, too.

All of these are self-service.

  • Slack
  • GitHub (just use your personal one, no need to complicate things)
  • GitLab (this is where we actually keep our stuff)

Your SSH Key

We use SSH as a transport for just about everything. If you’re reinstalling, please put the file back where you found it originally. If not, here’s our recommended steps to get things going easily:

ssh-keygen -t ed25519

Accept most of the defaults, but we recommend setting a password. You’re going to store that password in your MacOS Keychain in a minute, so make sure you store it somewhere safe. Also, store the key, in its encrypted form, somewhere safe just in case your workstation catches fire.

# If you're on a Mac
ssh-add --apple-use-keychain ~/.ssh/id_ed25519
cat << EOF >> ~/.ssh/config
ForwardAgent yes
UseKeychain yes
AddKeysToAgent yes
EOF

The above command will store the passphrase for your key in MacOS’s Keychain, but more importantly, it’ll activate the SSH key agent, which will make connecting to remote systems and deploying code easier.

After your key is generated, put your public key in your GitHub and GitLab accounts. You can obtain it by executing:

ssh-add -L

Development Tools

This is where your personal choice comes into play. Use whatever you’re comfortable with. Ask if you need a license purchased.

Updated: