I’d like to introduce you to a nifty little project I published on GitHub that I call Vagrantpress. Vagrantpress is a development environment for creating, customizing and developing on the WordPress CMS platform.
A Little Background
When I was putting together this site on the WordPress platform (which I still admittedly have a love/hate relationship with – I might write a post on that a little later, though I’m sure my complaints aren’t unique), I customized one of the out-of-the-box themes with some backgrounds, changed the fonts and did a little general tinkering. Fortunately this is very simple to do with WordPress – I even did it “live” through edits in the admin panel rather than a proper text editor or development environment.
The Problem: The problem I ran into was the typical problem of customizing software – when you customize ‘base’ functionality, you limit your ability to upgrade. When WordPress 3.5 was released with new themes that included and allowed for responsive web design, I found that I couldn’t simply whack the upgrade button.
So, I had to set up a development environment. Installng WP is pretty simple – but I also run a number of web development environments for different projects, so I tend not to use the build in web server that is part of OS X, instead opting to use virtual machines (VMs) for web develompent. I already have a small library of VMs built on VMWare Fusion for develompent use, but as I have a number of them with slightly different configurations of WordPress, etc. – it looked like I might want to create a ‘new’ VM for this purpose.
Setting Up Vagrant
Vagrant is a tool that we’ve started to use at Zirous for managing and sharing development environments between developers – in particular, Zach Arlen showed us all how to use Vagrant/DevOps approaches for our uses.) I started toying with Vagrant and Puppet to build some Java environments, so rather than creating another VMWare Fusion VM, I set out to create a VM based on Vagrant that I could set up again and again for WordPress (or even general web/PHP) development.
The Result: Vagrantpress
I ended up creating something that I found that I could share with a wider audience for doing WordPress development, so I put it all out on GitHub for others to use. This project does represent one of my first ‘real’ projects in writing puppet scripts to automate a develoment environment (Thanks, Zach!) – so while the scripting is a litte rough, it seems to work pretty well for what I use it for. I hope that you’ll find the project of use as well, either as a development environment for WordPress, or even as an introduction to what a novice can do in a few hours with Vagrant and Puppet. I also welcome any feedback or contributions – please visit my Vagrantpress page for instructions and background on using the tool.