Hacker News new | past | comments | ask | show | jobs | submit login
Ask HN: What's THE way to setup a OS X dev machine 2015?
7 points by walski on May 6, 2015 | hide | past | web | favorite | 12 comments
I'm going to replace my 5 year old MBP with a new machine in a week. What is considered a good way to setup a machine from scratch for web and mobile development nowadays?

I'm familiar with Github's boxen but would love something more "macish". As far as I'm concerned I would ideally click some packages hit install and the magic system does the rest and always keeps that stuff updated ;)

Homebrew and pretty much anything else that lets the *NIX of OS X shine through.

Check out Github's tools as they seem to use OS X heavily.

Homebrew - http://brew.sh/

Also the ~/.osx dotfiles in this repo (https://github.com/mathiasbynens/dotfiles) are quite handy especially space order locking. That used to drive me mad.

Finally Amethyst (https://github.com/ianyh/Amethyst) is still a lil buggy but so nice to have. If you want to go the 'more OS X route' check out BetterTouchTool instead.

After trying to make use of Homebrew for a couple of years, I've given up. I refuse to install it now.

Using a combination of Vagrant for project environments, and a generic Debian VM (which could also be handled by vagrant but has much less need for it) for miscellaneous stuff, I am not missing brew.

The other advantage to this approach is your mac will likely remain stable and fast for much longer. Running a web server and a database server and an app server and who knows what else constantly (and by default, at startup) can make for a lot of RAM usage and ridiculously slow startup/logins.

Move that shit all into VMs, and keep your host as simple as possible. Sure, run your IDE, editor, debugger, what have you, but you should be able to quickly and easily just stop everything related to any given project/app.


Also, and I know this will probably not be a popular opinion around here:

Whenever possible I use Mac App Store versions of apps. After a couple of clean-installs since the inception of the MAS, I am absolutely in favour of this approach. I can generally queue up all my MAS sourced apps for download + install quicker than I can open site, download, install & add license details for probably ONE app from outside the MAS. I know it has limitations and some apps will likely never be available in it, but those that are, are so much simpler to re-install on a clean OS.

Exactly, the only thing I might add would be homebrew cask (https://github.com/caskroom/homebrew-cask) as well to install gui based applications.

http://www.getmacapps.com/ could probably save you some times for common applications.

Thoughtbot also have laptop (https://github.com/thoughtbot/laptop)

I write a bash script to install standard development tools for developers in my company. I put most of the application on local server inside company network so I don't have to re-download the application from internet. I plan to release this script sometime this month

For mobile and web development, use Vagrant + Virtualbox. No reason to pollute the base system with different versions of weblibs, languages and servers.

Any recommendations for good and ready to use base boxes there?

Create your own base box that might have a typical stack you always use. Treat this like your gold image and you can use it for trying out new technologies without installing on your host machine as well as a different VM for every project or even forks of a project if you want.

Vagrant's docs are pretty decent on how to create a custom box.

Use a box that matches the production environment for each specific project.

When possible I use boxcutter released boxes, as they generally have good support for providers besides virtual box.

So e.g. on new projects, I use one of the boxcutter Debian boxes, but for a client I have with a legacy environment, I'm using a centos box.

ubuntu/trusty64 is the most popular box and is officially supported (whatever that means). Just install anything you need with apt-get - you can do it during the provisioning step on first run.

I have a micro EC2 instance I do my development on. I just the repo on my mac, put the folder into sublime and I'm ready to go. There's just something about having Redis, Postgres, Nginx, gunicorn, flask, etc. running on my mac that I don't like.

If you don't want to pay $5/month for an EC2 instance, just run everything in a docker container.

I use Ansible for provisioning my machine itself with the needed Homebrew and Cask packages, and then Vagrant + Virtualbox for setting up dev. environments.

Applications are open for YC Summer 2019

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact