Commit a0281788e6d03577c550b960c50b9e3725b543df

Authored by Will Farrington
1 parent 947c2af4e0

README tweaks

Showing 1 changed file with 35 additions and 19 deletions Inline Diff

# Our Boxen 1 1 # Our Boxen
2 2
This is a template Boxen project designed for your organization to fork and 3 3 This is a template Boxen project designed for your organization to fork and
modify appropriately. 4 4 modify appropriately.
The Boxen rubygem and the Boxen puppet modules are only a framework for getting 5 5 The Boxen rubygem and the Boxen puppet modules are only a framework for getting
things done. 6 6 things done.
This repository template is just a basic example of _how_ to do things with them. 7 7 This repository template is just a basic example of _how_ to do things with them.
8 8
## Getting Started 9 9 ## Getting Started
10 10
It's pretty important you follow these steps exactly. 11 11 1. Install XCode Command Line Tools and/or full XCode.
You should not fork this repository for your organization's Boxen. 12 12 1. Create a new repository on GitHub as your user for your Boxen. (eg.
We have some pretty specific semantics about forking and public/private repositories. 13 13 `wfarr/my-boxen`). **Make sure it is a private repository!** for now
We really recommend doing it this way: 14 14 1. Get running like so:
15 15
1. Create a new local git repository. Create a private repository on GitHub under your organization for your boxen (eg. `myorg/myorg-boxen`) 16 16 ```
1. In your new repository, `git remote add upstream https://github.com/boxen/our-boxen && git fetch upstream && git co -b master upstream/master` 17 17 mkdir -p ~/src/my-boxen
1. Now follow the directions GitHub gave you when creating your private copy to push the master branch to your private copy. 18 18 cd ~/src/my-boxen
19 git init
20 git remote add upstream https://github.com/boxen/our-boxen
21 git fetch upstream
22 git co -b master upstream/master
23 git remote add origin https://github.com/wfarr/my-boxen
24 git push origin master
19 25
With that done, now you can tweak it to your use: 20 26 script/boxen
27 ```
28 1. Close and reopen your Terminal. If you have a shell config file (eg. `~/.bashrc`) you'll need to add this at the very end: `[ -f /opt/boxen/env.sh ] && source /opt/boxen/env.sh`,
29 1. Confirm the Boxen env has loaded: `boxen --env`
21 30
1. Modify the `Puppetfile` and `modules/` to your heart's content. 22 31 Now you have your own my-boxen repo that you can hack on.
1. Install the XCode Command Line Tools package. You need an Apple ID. We know. It sucks. You can thank Apple for not allowing the Command Line Tools to be redistributed publicly. 23 32 You may have noticed we didn't ask you to fork the repo.
1. `cd` to that dir and run `script/boxen` 24 33 This is because when our-boxen goes open source that'd have some
1. Ensure you have `[ -f /opt/boxen/env.sh ] && source /opt/boxen/env.sh` in your shell config. If you don't have a shell config yet, we automatically add this to `~/.profile` for you. 25 34 implications about your fork also potentially being public.
1. Open a new shell. 26 35 That's obviously quite bad, so that's why we strongly suggest you
1. Verify `boxen --env` prints out `BOXEN_` env vars. 27 36 create an entirely separate repo and simply pull the code in, as shown above.
1. Rock out. :metal: 28
29 37
## What You Get 30 38 ## What You Get
31 39
This template project provides the following by default: 32 40 This template project provides the following by default:
33 41
* Homebrew 34 42 * Homebrew
* Git 35 43 * Git
* Hub 36 44 * Hub
* DNSMasq w/ .dev resolver for localhost 37 45 * DNSMasq w/ .dev resolver for localhost
* NVM 38 46 * NVM
* RBenv 39 47 * RBenv
* Full Disk Encryption requirement 40 48 * Full Disk Encryption requirement
* NodeJS 0.4 41 49 * NodeJS 0.4
* NodeJS 0.6 42 50 * NodeJS 0.6
* NodeJS 0.8 43 51 * NodeJS 0.8
* Ruby 1.8.7 44 52 * Ruby 1.8.7
* Ruby 1.9.2 45 53 * Ruby 1.9.2
* Ruby 1.9.3 46 54 * Ruby 1.9.3
* Ack 47 55 * Ack
* Findutils 48 56 * Findutils
* GNU-Tar 49 57 * GNU-Tar
50 58
## Customizing 51 59 ## Customizing
52 60
You can always check out the number of existing modules we already provide as optional installs under the [boxen organization](https://github.com/boxen). These modules are all tested to be compatible with Boxen. You can include these modules by modifying the Puppetfile, adding them to `manifests/site.pp` if they should be installed on every machine, and then running `boxen`. 53 61 You can always check out the number of existing modules we already
54 62 provide as optional installs under the
For your organization, it's recommended you create a module to contain the configuration in the `modules/` directory (eg. `modules/github`). 55 63 [boxen organization](https://github.com/boxen). These modules are all
Then, you simply need to include that module in `manifests/site.pp`. 56 64 tested to be compatible with Boxen. Use the `Puppetfile` to pull them
65 in dependencies automatically whenever `boxen` is run. You'll have to
66 make sure your "node" (Puppet's term for your laptop, basically)
67 includes or requires them. You can do this by either modifying
68 `manifests/site.pp` for each module, _or_ we would generally recommend
69 you create a module for your organization (eg. `modules/github`) and
70 create an environment class in that. Then you need only adjust
71 `manifests/site.pp` by doing `include github::environment` or
72 what-have-you for your organization.
57 73
For organization projects (read: repositories that people will be working in), please see the documentation in the projects module template we provide. 58 74 For organization projects (read: repositories that people will be working in), please see the documentation in the projects module template we provide.
59 75
For per-user configuration that doesn't need to be applied globally to everyone, please see the documentation in the people module template we provide. 60 76 For per-user configuration that doesn't need to be applied globally to everyone, please see the documentation in the people module template we provide.
61 77