<commit_before>#![precip](precip-logo-thin.png)

# Precip: Local Development for Cloud-y Drupal
**Precip** is a [Vagrant](http://www.vagrantup.com)-based all-inclusive local development environment for building Drupal Sites you'll eventually be pushing up to one of several wonderful Drupal Cloud Hosting Services. It's initially being built against Acquia Cloud, but may eventually support other similar services.

## What's Included?
A full LAMP stack, and a few nice extras.
- Ubuntu Server 14.04 LTS
- Apache Server 2.4
- Percona Server 5.5
- PHP 5.6
  - With Memcache, OPCache, and Xdebug all pre-configured
- MailHog, the _absolute_ simplest way to locally test mail delivery

## Why not build your own box from scratch?
**Precip** offers a few key benefits over rolling your own completely custom Vagrant setup that may not be _immediately_ apparent from staring at a freshly `vagrant init`'ed box.
- **One box for many sites** - It's common to see people build single-purpose Vagrant boxes for individual sites or projects. That's cool, but if you're managing a bunch of Drupal sites on a Cloud host, your environments are (hopefully) going to be identical, so why bother juggling VM's or have your system get bogged down by trying to run six LAMP servers simultaneously? You can use this one box to host an arbitrary number of sites.
- **Simple Virtualhost Configuration** - Our [config.rb](config.rb-dist) lets you easily set up a bunch of Apache Virtualhosts without having to hack on the Vagrantfile, Puppet, or the live box itself. It also has friendly config options to tweak bits of your Drupal environment, like setting multi-site directories, domain aliases and so on.
- **All data lives outside of the box** - Your actual project repos, MySQL data directories and log files all live outside of the Vagrant box and will survive both the box being reprovisioned *and* completely being blown out and rebuilt from scratch. Getting this to work in a sane way required us to write a [Vagrant plugin](https://github.com/jeffgeorge/vagrant-useradd), so I doubt you'll find another Vagrant box that does this.
- **Easily Extensible** - Figuring out your base Puppet config to get a functional server can be daunting. Here it's mostly done. Want to add an extra PHP module or something? It's probably one line and easily testable, versus having to Puppet-ize your entire environment first.

# Getting Started with Precip

## Pre-flight Checklist
- Get [VirtualBox](https://www.virtualbox.org/wiki/Downloads)
- Also [Vagrant](http://www.vagrantup.com/downloads.html)
- Then go download these super helpful Vagrant Plugins (If you forget to, Vagrant will install them for you. It'll error on your first `vagrant up`, but will work fine if you re-run `vagrant up`.)
  - `$ vagrant plugin install vagrant-vbguest`
  - `$ vagrant plugin install vagrant-hostsupdater`
  - `$ vagrant plugin install vagrant-useradd`
  - `$ vagrant plugin install vagrant-bindfs`
  - `$ vagrant plugin install vagrant-vagrant-persistent-storage`

## Git Clones & Configuration
- Clone this repo
- Clone all your various project repos under the .gitignored `/sites` directory
  - Note: These don't all _have_ to be Drupal Sites. Nearly any PHP site that just needs a vhost + database should be fine.
- Edit `/config.rb-dist`, fill in the blanks, and save it as `/config.rb`

## Downloading, Booting & Provisioning the Vagrant Box
- Kick off Vagrant by running `$ vagrant up`<commit_msg>Documentation Typo<commit_after>#![precip](precip-logo-thin.png)

# Precip: Local Development for Cloud-y Drupal
**Precip** is a [Vagrant](http://www.vagrantup.com)-based all-inclusive local development environment for building Drupal Sites you'll eventually be pushing up to one of several wonderful Drupal Cloud Hosting Services. It's initially being built against Acquia Cloud, but may eventually support other similar services.

## What's Included?
A full LAMP stack, and a few nice extras.
- Ubuntu Server 14.04 LTS
- Apache Server 2.4
- Percona Server 5.5
- PHP 5.6
  - With Memcache, OPCache, and Xdebug all pre-configured
- MailHog, the _absolute_ simplest way to locally test mail delivery

## Why not build your own box from scratch?
**Precip** offers a few key benefits over rolling your own completely custom Vagrant setup that may not be _immediately_ apparent from staring at a freshly `vagrant init`'ed box.
- **One box for many sites** - It's common to see people build single-purpose Vagrant boxes for individual sites or projects. That's cool, but if you're managing a bunch of Drupal sites on a Cloud host, your environments are (hopefully) going to be identical, so why bother juggling VM's or have your system get bogged down by trying to run six LAMP servers simultaneously? You can use this one box to host an arbitrary number of sites.
- **Simple Virtualhost Configuration** - Our [config.rb](config.rb-dist) lets you easily set up a bunch of Apache Virtualhosts without having to hack on the Vagrantfile, Puppet, or the live box itself. It also has friendly config options to tweak bits of your Drupal environment, like setting multi-site directories, domain aliases and so on.
- **All data lives outside of the box** - Your actual project repos, MySQL data directories and log files all live outside of the Vagrant box and will survive both the box being reprovisioned *and* completely being blown out and rebuilt from scratch. Getting this to work in a sane way required us to write a [Vagrant plugin](https://github.com/jeffgeorge/vagrant-useradd), so I doubt you'll find another Vagrant box that does this.
- **Easily Extensible** - Figuring out your base Puppet config to get a functional server can be daunting. Here it's mostly done. Want to add an extra PHP module or something? It's probably one line and easily testable, versus having to Puppet-ize your entire environment first.

# Getting Started with Precip

## Pre-flight Checklist
- Get [VirtualBox](https://www.virtualbox.org/wiki/Downloads)
- Also [Vagrant](http://www.vagrantup.com/downloads.html)
- Then go download these super helpful Vagrant Plugins (If you forget to, Vagrant will install them for you. It'll error on your first `vagrant up`, but will work fine if you re-run `vagrant up`.)
  - `$ vagrant plugin install vagrant-vbguest`
  - `$ vagrant plugin install vagrant-hostsupdater`
  - `$ vagrant plugin install vagrant-useradd`
  - `$ vagrant plugin install vagrant-bindfs`
  - `$ vagrant plugin install vagrant-persistent-storage`

## Git Clones & Configuration
- Clone this repo
- Clone all your various project repos under the .gitignored `/sites` directory
  - Note: These don't all _have_ to be Drupal Sites. Nearly any PHP site that just needs a vhost + database should be fine.
- Edit `/config.rb-dist`, fill in the blanks, and save it as `/config.rb`

## Downloading, Booting & Provisioning the Vagrant Box
- Kick off Vagrant by running `$ vagrant up`
{'fraction_non_alphanumeric': 0.07082071253425645, 'fraction_numerical': 0.0028847540747151306, 'mean_word_length': 4.346183500385505, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 4, 'lorem ipsum': 0, 'www.': 6, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 10, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1578495', 'n_tokens_mistral': 1958, 'n_tokens_neox': 1875, 'n_words': 972}