Code Monkey home page Code Monkey logo

our-boxen's Introduction

NOTE

I no longer use boxen. Instead I've crafted my own set of setup files in my dotfiles repo: https://github.com/niallmccullagh/dotfiles

my-Boxen Base Box

A bunch of puppet for OSX development environments maintained by my webdevs. This community-curated environment automates most of your laptop setup and maintenance.

Getting Started

You'll need to manually install Xcode with the command line extensions, and turn on FileVault's full disk encryption.

Then, visit http://niallmccullagh.github.io/our-boxen/ and follow the on screen instructions. To inspect exactly what's going to be run, click the instructions to see the script that will be run.

You'll be prompted with a few questions initially, but most of the install will pass by unattended. At the end you'll be asked to open a new shell or source something -- just open a new shell.

Afterwards, periodically run the command boxen to pull down updates. You probably don't want to do this every time you source a shell, but daily or weekly is a good idea. Consider setting up a cron.

What will it install?

It will install a bunch of stuff into /opt/boxen, and set up a repository in ~/src/our-boxen. It will also setup a couple common tools and development environments, including --

  • git
  • homebrew
  • iterm2
  • nginx
  • node
  • ruby
  • dnsmasq w/ .dev resolver for localhost
  • ack
  • Findutils
  • GNU tar
  • Hipchat
  • Java 1.7
  • Alfred
  • Google chrome
  • Google notifier
  • Intellij

and more. Details on exactly what is setup for everyone is in the site.pp.

Customizing it

First cd into ~/src/our-boxen, or wherever your local boxen repo is located. This is a git repo containing the group's boxen. You can create branches, make your modifications, push to your fork, and make PRs like any other repo. The boxen command tries to update this git repo first, so if you have a dirty tree or if you've diverged from master it will complain loudly. Local changes will still apply, but you won't be able to pull down updates automatically if you diverge. Be careful modifying this -- the boxen is a shared resource across projects.

You can customize your install with a personal manifest. Check out existing manifests for examples. For a list of software you can include, see the Puppetfile.

You can also define project manifests. Project manifests can then be included in personal manifests for users who want to work on a given project.

New software packages can be added as options as well. Start by modifying the Puppetfile to include a new module:

github "{{package name}}", "{{ tag }}"[, :repo => "{{ ghuser }}/{{ repo name}}"]

Packages follow this particular format corresponding to a github repo. By default, the github macro assumes your package is on github in the repo boxen/puppet-{{package name}}. If it's located elsewhere (like some of our custom packages) you'll need to specify the optional :repo symbol.

Then, run boxen locally. Boxen will install the package and cache a tarball. git add the changes, including the cached tarball, to the repository. Don't forget that you'll need to include the new package in site.pp, a project, or your personal manifest for it to take effect. Then commit your changes and open a PR to get it upstreamed into the our-boxen.

If you're using a Github Enterprise instance rather than github.com, you will need to set the BOXEN_GITHUB_ENTERPRISE_URL and BOXEN_REPO_URL_TEMPLATE variables in your Boxen config.

Troubleshooting

Boxen relies heavily on the Github API, and when you're developing for Boxen you can run out of API requests. To help mitigate this, Boxen will try to auth with Github and vendor things in the repo. If you run out of API requests, all you can do is wait.

Any other issues can be filed against this repo as issues.

our-boxen's People

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.