Babushka deps for building the standard Icelab Mac OS X development environment.
First, if this is not a fresh machine, prepare your system. You must follow these steps if you have an existing Homebrew installation, Ruby or Node.js version managers, or custom dotfiles in your home directory. After you've done this, open a new shell.
Install Babushka:
sh -c "`curl https://babushka.me/up`"
You'll be asked where to install Babushka. Accept the default value of /usr/local/babushka
.
Then, apply our Babushka deps. If you're running this for the very first time, you need to apply a bootstrapping dep first:
babushka "icelab:workstation bootstrapped"
You'll be prompted for some things:
- To enter your user password.
- To enable write access to
/usr/local
for admin users.
It's OK to comply with both of these.
After this has completed, open a new shell and then finish applying the rest of the deps:
babushka "icelab:workstation"
To update your environment, first update the Babushka sources:
babushka sources -u
Then apply our deps again:
babushka "icelab:workstation"
These Babushka deps aren't magic. They're merely a collection of jobs that bring your system environment to a known state by installing things and running shell commands.
This means the resulting environment isn't all that special; it's a vanilla macOS web development environment. You should endeavour to understand and learn the tools that are installed so you can work with them directly after they are in place.
Zsh is your default shell, and the Icelab dotfiles provide a common shell environment. These are managed using rcm and can be combined with another dotfiles directory for personal customization. See the README for more information.
rbenv and ruby-build manage and install your Ruby versions. The most recent stable Ruby version is your default.
nodenv and node-build for managing and installing Node.js versions. The most recent stable Node.js version is your default.
Homebrew is installed in /usr/local
for installing and managing system packages.
The following system services are installed via Homebrew and already running:
- Memcached memory object caching system
- MySQL relational database
- PostgreSQL relational database
- Redis key-value cache and store
The brew services
command is available for managing these services (run brew help services
for more information).
These utilities are also installed:
- CoffeeScript
- Heroku CLI for working with Heroku apps
- ImageMagick image processing utilities
- PhantomJS headless web browser, for web app integration testing
- Raygun for generating new appss
- Plus various helpful Unix utilities, including
watch(1)
If you want to automate your personal system customizations, you can write your own Babushka deps and have them work alongside these ones.
First, make sure you have a space for your personal Babushka source:
mkdir -p ~/.babushka/deps
Then create a dep that requires icelab:workstation, along with any other personal deps that you'd like to use, e.g. in ~/.babushka/deps/laptop.rb
:
dep "laptop" do
# Build the standard Icelab environment
requires "icelab:workstation"
### Personal deps can follow
# I prefer wget
requires "wget.managed"
end
dep "wget.managed"
Then, running babushka laptop
will ensure the Icelab development environment stays updated alongside all of your customizations.
To share your deps, turn ~/.babushka/deps
into a git repo and push it up to https://github.com/<your_username>/babushka-deps.git
. See Tim's Babushka deps as an example.
Babushka is a wonderful automated computing system from Ben Hoskings.
These deps are maintained by Icelab.