Introducing Boxen
Today we’re proud to open source Boxen, our tool for automating and managing Macs at GitHub. Boxen started nearly a year ago as a project called “The Setup” — a…
Today we’re proud to open source Boxen, our tool for automating and managing Macs at GitHub.
Boxen started nearly a year ago as a project called “The Setup” — a pipe dream to let anyone at GitHub run GitHub.com on their development machine with a single command. Now every new GitHubber’s first day starts with unboxing a new laptop and hacking on GitHub in about 30 minutes.
What is it?
Boxen is a framework for managing almost every aspect of your Mac. We built a massive standard library of Puppet modules optimized for Boxen to manage everything from running MySQL to installing Minecraft.
We designed Boxen with teams that work like GitHub in mind. Boxen automatically updates itself every run and opens and closes GitHub Issues as problems arise and get fixed. With Boxen, we treat our development environments with the same care we give production: we test our code and rely on Continuous Integration to deploy changes.
Your Boxen
boxen/our-boxen
Start here to build a boxen for your team. This repo is our recommended template for a basic web development environment. The README shows you how to get started, and the basic configuration
shows off some of Boxen’s standard modules for managing system services and your team’s projects.
boxen/boxen-web
Once you’ve built a boxen for your team, boxen-web is the easiest way to roll it out. It’s a simple Rails app that allows you to onboard folks with a single Terminal command. It’s easy to run on Heroku and uses OAuth to limit access to only members of your GitHub organization.
boxen/puppet-template
Now that your team uses Boxen, you probably want to add support for new services and tools. Starting a new Puppet module can be a little complex, so we’ve wrapped everything you need to write one up into this example module. It follows our own best practices about Puppet module development with tools like cardboard, puppet-lint, and rspec-puppet.
Using Boxen
Once your team writes project manifests for your applications, any member of your team can run them locally with ease.
At any time, you can run a single command to get a project and all its dependencies ready to go.
If any GitHubber wants to hack on GitHub for Mac all they need to do is run:
$ boxen mac
<3
All sorts of GitHubbers use and improve Boxen: shippers, HR, lawyers, designers, and developers. More than 50 people have contributed internal fixes and features, and updates ship almost every day.
We love Boxen. We hope you and your team love it too. Happy automating!
Written by
Related posts
Celebrating the GitHub Awards 2024 recipients 🎉
The GitHub Awards celebrates the outstanding contributions and achievements in the developer community by honoring individuals, projects, and organizations for creating an outsized positive impact on the community.
New from Universe 2024: Get the latest previews and releases
Find out how we’re evolving GitHub and GitHub Copilot—and get access to the latest previews and GA releases.
Bringing developer choice to Copilot with Anthropic’s Claude 3.5 Sonnet, Google’s Gemini 1.5 Pro, and OpenAI’s o1-preview
At GitHub Universe, we announced Anthropic’s Claude 3.5 Sonnet, Google’s Gemini 1.5 Pro, and OpenAI’s o1-preview and o1-mini are coming to GitHub Copilot—bringing a new level of choice to every developer.