11 ms·
Introducing Boxen
- lightyrs 14y agoThis looks very promising. Thanks, GitHub!
- deleted 14y ago[deleted]
- clone1018 14y agoYou can use your own private git repo, hosted anywhere.
- RaphiePS 14y agoI believe you're free to use any Git repo you want, including one on your own server.
- lazerwalker 14y agoPresumably, if you already have your own git server running elsewhere (and if you're considering this, you almost certainly have some solution for hosting git repos, GitHub or otherwise), there's no reason you couldn't just host your boxen repos there. It's a great cross-sell, and one I think'll be successful for them, but as far as I can tell there's no explicit lock-in.
- stcredzero 14y agoDoes it work well with Homebrew, or does it subsume that functionality?
- jyunderwood 14y agoIt's kind of like initializing a fresh OS install to something useable. Their our-boxen template[1] installs homebrew for you as well as some other software. [1]https://github.com/boxen/our-boxen https://github.com/boxen/our-boxen
- shurane 14y agoHow does this work for proprietary software, or stuff that requires installation keys or authorization? Say Office 2011 or sublime text 2 or some other paid app (whether in the app store or not)?
- colechristensen 14y agoYou can use Boxen to install Homebrew and then (with puppet modules which you may have to install yourself) you can use Boxen to manage/install Homebrew packages.
- stcredzero 14y agoThat's very cool! Exactly what I wanted to know.
- jxf 14y agoThis looks very nice -- automated workflow setup for developers. It's essentially generalization across every "developer setup guide" you could possibly imagine. Now the question is: can we get this for Linux users?
- WestCoastJustin 14y agoPuppet/systemimager already exists for Linux users.
- jxf 14y agoBoxen works with puppet too, but they don't fulfill the same role. Boxen is about the sharing and centralization of your puppet-like tools. Presumably not everyone wants to write a developer workflow from scratch, and Boxen could solve that without requiring a Mac, right?
- WestCoastJustin 14y agoExactly -- no one wants to start from scratch. Puppet maintains something called, Puppet Forge [1] where anyone can uploads and share their puppet recipes. This goes beyond Puppet Forge, since it is a bundle of scripts that work together, so there is much added value to something like boxen. [1] http://forge.puppetlabs.com/ http://forge.puppetlabs.com/
- benatkin 14y agoClever name. http://www.jargon.net/jargonfile/b/boxen.html http://www.jargon.net/jargonfile/b/boxen.html
- bcgraham 14y agoI thought it was a reference to Brian Regan Live, 1997: http://www.youtube.com/watch?v=yxenUzZPFiQ#t=01m56s http://www.youtube.com/watch?v=yxenUzZPFiQ#t=01m56s
- geetarista 14y agoHeard about this a while back from a beta user. Very excited to start playing with it!
- Hovertruck 14y agoThis looks pretty great. We do something slightly similar at Chartbeat, but using puppet + ubuntu server VMs on our macs. Enables us to to develop on the same hardware we'll be using in production. Our CTO wrote a blog post about it here if anyone is interested: http://engineering.chartbeat.com/2012/09/24/devvm/ http://engineering.chartbeat.com/2012/09/24/devvm/
- WestCoastJustin 14y agoA tool-chain like this is needed for Apple to move widely into the enterprise. As a sysadmin, it is a major pain to worry about unpatched, outdated, apple laptops that have to conform to a security policy. Without automated tools like this, you are left running around patching the latest java/flash/pdf issue!
- ajasmin 14y agoAre sysadmins really the target audience? At first glance it seems the intent of Boxen is to get your developer tools installed and configured. I guess how useful it is for a sysadmin would depend on whether changes are pushed automatically to the macs.
- WestCoastJustin 14y agoUltimately someone is responsible for that machine, I think that role should fall with the sysadmins, if they exist yet. Github is large enough that they should have in-house IT looking after the desktops/internal network. They might even have two teams, one looking after employees, and one looking after the server infrastructure. Start-ups grow organically, so there might not be "someone" at first, other than the developer. This quickly turns into a burden when you have 50+ employees running around and warranties start to lapse, there is no current inventory list, you have a mish-mash of machine configs. Then comes the stage of getting a consistent config on each machine, so that person X and person Y can collaborate, using the same dev tools, at the same rev level. Looks like Puppet/Boxen is a tool to solve that problem. This problem is compounded when you are in a hiring frenzy, because new people almost appear out of thin air, and you are supposed to have a machine for them. Having a quick deploy script will save your hair line considerably.
- MiguelHudnandez 14y agoExactly. I have been fighting to allow people to choose Mac or PC when they are due for new hardware, and now that 80% of people are choosing Macs, it is getting to be a pain to manage them. I am so glad to see this as an alternative to the tools that Apple has been neglecting since they stopped trying to sell server hardware.
- buf 14y agoLooks very similar to Vagrant: http://www.vagrantup.com/ http://www.vagrantup.com/
- dljsjr 14y agoExcept Vagrant is used to spin up small virtual development environments whereas it looks like this is used to actually spin up a physical machine.
- davidradcliffe 14y agoVagrant spins up the VM but then hands off to a provider (chef, puppet, etc.) for configuration.
- Aqua_Geek 14y agoLooks more like Pivotal Workstation: https://github.com/pivotal/pivotal_workstation https://github.com/pivotal/pivotal_workstation
- stock_toaster 14y agoUnrelated, but I am excited by pending vmware fushion support: vimeo.com/58059557
- jimray 14y agoThat was my first thought as well. And then I started wondering why they are automating so much setup on OS X itself instead of using something like Vagrant for dev stuff. I find OS X to be pretty frustrating to work with natively. I've long tried to keep things like Postgres and Python consistent, but even a 10.x.y update can break things. Even with homebrew and postgresapp, it's challenging to keep the system from breaking. I'm currently running 10.7 precisely because I didn't want to rebuild my setup on 10.8 (I've since started using Vagrant much more aggressively to help solve this). I realize that part of the point of boxen is to help set a baseline but it seems like a Vagrant box that mimics the actual Github stack would make more sense.
- cwb71 14y agoThis surprised me too, I would not have expected that Githubbers develop on OS X and deploy to Linux. I would be interested to hear more about why they made that choice.
- kzrdude 14y ago"brutalize a key with your favorite finger"
- shykes 14y agoThis reminds me of radmind: http://rsug.itd.umich.edu/software/radmind/ http://rsug.itd.umich.edu/software/radmind/ Lots of good ideas in there (some of which inspired early work on dotCloud, including https://github.com/dotcloud/cloudlets https://github.com/dotcloud/cloudlets )
- jbarnette 14y agoWe've opened up #boxen on freenode for questions and discussion. We'll idle there whenever we can.
- JangoSteve 14y agoThis is pretty cool. There are some other companies that have released similar tools in the past. I personally tried out: * Thoughtbot's laptop script - http://robots.thoughtbot.com/post/8700977975/2011-rubyists-guide-to-a-mac-os-x-development http://robots.thoughtbot.com/post/8700977975/2011-rubyists-g... * Lunar Logic's Lunar Station - https://github.com/LunarLogicPolska/lunar-station https://github.com/LunarLogicPolska/lunar-station * Pivotal Labs's Pivotal Workstation - https://github.com/pivotal/pivotal_workstation https://github.com/pivotal/pivotal_workstation I personally liked Pivotal Workstation the best, as it had the best combination of robustness, pre-built recipes, and easy configurability. I'll be excited to take a look at Boxen the next time we bring someone into our team.
- laktek 14y agoHowever, it's still a pain for a small team to keep those recipes up to date and invest time to tweak configs. That's why I love a product like Action.io (http://action.io http://action.io), which allows all dev-boxes to be kept in sync and create clones when needed (disclaimer: I work with action.io team and it's still in private beta)
- 1qaz2wsx3edc 14y agoIn our projects' README.md we have a section for installation. It's about 7-12 of terminal commands. It takes us less then an hour to get someone setup. I guess what I'm trying to say is that it's easy enough at small-scale. We also get some good knowledge transfer out of this process. I'm put off by the whole "let's throw puppet at it", but github is not small-scale.
- DannoHung 14y agoI just can't keep track of SCM systems any more... Calgon, take me away.
- account_taken 14y agoIsn't puppet overkill for this? Seems like a bunch of ruby to build command line arguments. Bash would have been easier. We have a workstation dotfiles which we clone and execute an install script with plugins for oh-my-zsh.
- WestCoastJustin 14y agoPuppet not only allows you to deploy changes but makes sure they stay. There is something called Puppet Dashboard, that allows you to see all the installed clients, who has a valid config, who is outside that config. This allows you to quickly see machines that need attention. There are some better screenshots here [2]. [1] https://puppetlabs.com/puppet/related-projects/dashboard/ https://puppetlabs.com/puppet/related-projects/dashboard/ [2] http://bitcube.co.uk/content/puppet-dashboard-six-months http://bitcube.co.uk/content/puppet-dashboard-six-months
- account_taken 14y agoI understand the benefits of puppet, ansible, etc for provisioning on a massive scale.
- jbarnette 14y agoDrift after installation and incremental updates were more of a problem for us than initial installs.
- jeremymcanally 14y agoTo set up initially, possibly. But this is for maintenance too. Need to install a security patch? Puppet. Need to upgrade versions? Puppet. Want to tweak some setting somewhere? Puppet. Using Puppet makes it stupid easy for us to keep our setups (a) in sync, (b) up to date and secure, and (c) do it without a bunch of hacky scripts that will probably break or not work right in 3 months.
- account_taken 14y agoI'm not seeing it how installing a security patch is any different. Security patches usually check to see if they need to be applied before doing anything. Updating a version is as simple as `brew update node`, `brew updated mongodb`, etc. The bash you call hacky is what's being done here with an extra layer of Ruby.
- fideloper 14y agoThis sounds awesome! That being said, there's not a chance in hell I'd install so much stuff onto my mac. IMO, Vagrant and VM's in general are what you should use to develop your web applications. (I happen to be opinionated about this :D ) Mainly this is because I believe in matching your production environment for development. It's also because I'm anal about installing memory-using apps into my little MBA. However, for things like Minecraft, onepassword, wget, sublime text 2 - this is really awesome.
- patcon 14y agoI share your opinion on vagrant, but it still stands that there are lots of tools you use on your host machine that you might want to make simple to share and configure organizationally. Look into how pivotal labs (consultancy) works and its a little mind-blowing and inspiring -- they all share the same configs and many of the same defaults and dotfiles and shortcuts (which they decide through deliberation and consensus), they reformat their macbooks from scratch between each project (for infosec), and they all know how to write chef recipes, so if they customize their system in a way that they want back after they wipe, then they write a recipe for it and share it back via pivotal_workstation :) It's pretty cool. And even if not everyone can put the time into building that sort of solution from scratch, pretty much everyone can ride their coattails
- jonknee 14y agoYou're anal about install memory-using apps onto your MBA so instead of installing them you run them inside a VM? That uses quite a bit more memory. Boxen doesn't seem to care too much about what you want to install, so you could have it install Vagrant and VirtualBox for you.
- encoderer 14y ago> That uses quite a bit more memory. Not really. What it gives you is easily configurable, absolute control over memory usage. I can ensure that my local dev environment doesn't use more than 2GB of RAM. From one setting. In one place. In about 20 seconds flat.
- kellysutton 14y agoThis is awesome and a long-time coming. If you're setting up a developer box, the last step should deploy to production :)
- one-man-bucket 14y agoI'm not trying to flamebait, but are macs so popular that it's just assumed that all new hires want one as their tool? At my company we're still asking new employees which platform they want to work on, is this falling out of fashion?
- jayferd 14y agoSeriously. I find Apple's UI to be really frustrating to use. And honestly, I can't go back after switching to XMonad. I have many happy coworkers who use Macs, but please don't make me use one.
- steveklabnik 14y agohttp://www.haskell.org/haskellwiki/Xmonad/Using_xmonad_on_Apple_OSX http://www.haskell.org/haskellwiki/Xmonad/Using_xmonad_on_Ap...
- chimeracoder 14y agoThose instructions are rather outdated; they don't work well with Lion or later.
- emillon 14y agoA X11 window manager can only manage X11 apps.
- steveklabnik 14y agoFair enough. I was super into XMonad when I used Linux, but never really found the need on Mac OS. I remember reading up on this topic back then, maybe that's why I didn't make the switch.
- marchdown 14y agoThere's nothing keeping you from using the same X11 apps on OS X as you do on Linux.
- zx2c4 14y agoMassive ruby framework that only runs on macs? Yuck.
- seryl 14y agoI had built something very similar to this a while ago, based off of the pivotal idea but with a one-liner install. https://github.com/seryl/kindness https://github.com/seryl/kindness supports updating itself and it's templates form the git repo it's referencing.
- contingencies 14y agoHonest question; I've never understood why people have such a fixation on puppet-style tools. Small-scale? Run a simple script. Large-scale? Use a network-hosted configuration (optimally read-only root and network booting so the entire system is known-good) to avoid the entire class of configuration drift / migration / state-accrual problems associated with the above. I just see puppet as sort of trying to provide the latter and failing, resulting in a complex version of the former.
- dschep 14y agoHow do you propose implementing a netbooted infrastructure with laptops?
- contingencies 14y agoIf they are always on the network, it's trivial, you just boot from the network as with any other machine. If they are often on the network, you can use occasional rsync, for example to the system partition either at boot or in the background. That way, boot is possible even if disconnected. If they're not often on the network, and you are seriously considering doing this at all, I would reconsider which problem you are trying to solve. Also: I don't know about anyone else here, but I would prefer not having a company manage my laptop. The use cases for such a scenario, in my view, are pretty hard to imagine.
- mpdehaan2 14y agoThis kind of feeling is a large reason why I created http://ansible.cc/ http://ansible.cc/ The feeling that I want to write something quick or easy shouldn't depend on the size of my infrastructure, it should be easy either way -- 500 servers, 50, 1, doesn't matter. That being said, our modules do need some patch-love for things like launchd and OS X groups, we've been a lot more Linux/Unix focused to date. (Patches are welcome of course!)
- contingencies 14y agoThanks for your reply Michael. I had a look at Ansible and your personal website and you definitely have been doing work with a fair bunch of serious systems in this space, so I really value your perspective. However, looking at the ansible news and documentation - "playbooks, configuration management, deployment, and orchestration" - I really couldn't see how it differs significantly in paradigm to puppet. Is it just the ability to converge on some defined configuration automatically? It's unclear to me. Would you be so kind as to summarise the differences in brief? Thanks.
- jacques_chester 14y ago"Boxen" is the German word for "Boxing". I learnt this when I considered starting a linux-optimised PC business back in the early noughties.
- jurre 14y agoAlso in Dutch :)
- init0 14y ago--> You must be running OS X 10.8 (Mountain Lion). :(
- banachtarski 14y agoI can't bring myself to trust a project that has such horrible commit messages, even if it is github.
- revoltingx 14y agoWhy not just use something like AWS to have an image that's a snapshot of a development machine? When a new hire arrives, simply clone and launch the instance and use github and the migrations to bring it up to the latest version.
- kriro 14y agoThis might be enough for me to settle on Puppet over Chef. Haven't really compared them in depth and only played around with Chef so far. Either way it seems pretty cool.
- chris092 14y agoThis looks very promising.
- glamsmash689 14y agocool.
- deepflame 14y agoWould be interesting to know what made them settle on Puppet instead of Chef. Thought the guys at Github were big Ruby-Lovers...
- lox 14y agoWe use babushka for local machine config and also production. It's radically simpler than Puppet/Chef. http://babushka.me/ http://babushka.me/