Who wants to start building new sites quicker? Whether for yourself, for friends, or for clients, you have probably set up more than a few WordPress sites by now. There are probably quite a few things that you do on a regular basis for those sites, right? Here’s a few things that I do:
- Pull and verify WP Core
- Pull Latest version of Akismet, Jetpack and Duplicator from repo and activate
- Pull latest version of BackupBuddy, Security and Sync from iThemes, Gravity Forms and Advanced Custom Fields Pro and ACF Repeater Field (I don’t know how many of these things can be done since they are premium) and activate
- Do setup of Sync/Security/BackupBuddy as necessary
- Pull latest version of Genesis & latest of genesis-project-base (I’ll put that on BitBucket soon)
- Remove sample page, post and comment
- Set ACF Pro and Gravity Forms Licenses
- Set Gravity Forms to output HTML5 (default is off, I want it on)
- Extended CPTS and Extended Taxonomies
- Create admin account (OBM) with random password, emailing to firstname.lastname@example.org
- Set Site Title based on project Title
- Set time zone to “New York”, since that’s the case for most builds I do
- Set permalink structure to /%postname%/
- Create private BitBucket git repo for site
- Add user/pass to LastPass
- Create Trello board for site
- Create Sublime Text Project
- Open Browser to site
- Open Sublime Text
I do those steps for almost every site that I make. Doing so by hand would take an hour of clicking around from screen to screen, waiting for pages to load, modifying settings, and refreshing pages.
Each of these steps have something in common: since they are done via a computer, they can be defined in terms that a computer can understand. This is where we can begin to automate our process.
Vagrant is a container solution, similar to Docker, which allows you to create containerized sites. VVV is a Vagrant box, which is basically a set of instructions on how to build a server. I’m going to update my post on setting these up, as there are some useful changes coming to version 2 of VVV, but for now I’ll refer you to this post from last year on setup.
The other thing that we’re going to use is WP-CLI, and we’re going to pair it with VASSH, a tool to make it easy to SSH into a VVV box. All this means is that we’re going to use some command line tools made to do things with WordPress, like add new themes and plugins, and change the posts.
Start with the slide deck below on why you may want to give this a try, then move on to the next post which gives some notes on the specific bash script written to do the automation, as well as some of the drawbacks of it as a solution. This post will be updated with version 2 of VVV.
Edit: the poster of the slide deck removed it from the web.