Last week, I took a look at github boxen. Here are my thoughts:

The good

  • automated workstation setup rocks
  • uses puppet, which is one of the major configuration management tools
  • it uses librarian-puppet, which looks pretty sophisticated, too

The bad

  • all dependencies, including project dependencies, are managed by a global Puppetfile. This is not too bad, since in the puppet modules could provide some versioning themselves. Unfortunately, they rarely do. So it can happen that you have two projects that depend on two different versions of a module. That's why varant rocks for project setups.
  • OS and OS versions are disregarded. All is tuned for OS X 10.8

Additional information

  • non-github puppet modules can be added with mod "MODULE", :git => "path_to_git_repo". See librarian-puppet.
  • ~/src is where your project installations will be. It can be customized, see here
  • depends on rbenv, so rvm is out of the picture since they are mutually exclusive. However, it looks as if this could be fixed soon since you always include a generic Ruby instead of a specific rbenv class.

Final thoughts

I am still not sure if a tool like boxen is necessary for personal workstations. In teams like github I can understand it's use, but if you are working solo, you have other tools at your disposal:

  • TimeMachine / Migration Assistant to create another installation just like your's.
  • Vagrant for projects. For projects, Vagrant is definelty better than boxen[^my_opinion], since you have total control over machine and tools (versions).

I really like the idea of an automated machine setup. So I will definelty check boxen out later again. But for now, I stay with my old setup.

[^my_opinion]: As always, this is my opinion. If you feel like I am disregarding an important fact, please leave a comment.