/wordpress

Rapidly create, develop, & deploy WordPress across multiple environments.

Primary LanguageJavaScriptMIT LicenseMIT

Evolution WordPress

Build Status Dependencies devDependencies

Rapidly create, develop, & deploy WordPress across multiple environments. Generating a site

Evolution lets you generate an entirely versioned, multi-environment Wordpress site in under a minute!

Features

  • Built on Ubuntu Linux 14.04
  • Vagrant server for local development
  • Automated Ansible provisioning
  • Automated Capistrano deployment
  • Interval and on-demand backups to the cloud provider of your choice, and on-demand restore
  • Passwordless login over SSH
  • Secure HTTPS encryption
  • Server-side Varnish caching
  • Preconfigured iptables firewall
  • Performance tuned Apache webserver
  • Postfix mail server

Project Status

Evolution is largely stable and usable at this point, but features are still being added and bugs being fixed. This documentation is also a work in progress.

Quick Start

Evolution is intended for use in a POSIX environment, such as Linux or Mac OS. Windows is not officially supported, but may be possible with a POSIX subsystem like Cygwin.

Pre-requisites

You will need:

You can then use npm to install Bower and the Yeoman generator:

npm install -g bower yo generator-evolve

Common Workflows

Managing Remote Environments

Evolution exposes several commands via Capistrano for managing and supporting your remote environments.

You can sync the database and uploaded files all at once...as well as separately:

bundle exec cap staging evolve:up
bundle exec cap staging evolve:up:db
bundle exec cap staging evolve:up:files

You can SSH directly to the remote server, without username or password prompts:

bundle exec cap staging evolve:ssh

You can remotely stop and start services, or even reboot the server:

bundle exec cap staging evolve:stop
bundle exec cap staging evolve:start
bundle exec cap staging evolve:restart
bundle exec cap staging evolve:reboot

You can even remotely view logs:

bundle exec cap staging evolve:logs:apache:access
bundle exec cap staging evolve:logs:apache:error
bundle exec cap staging evolve:logs:varnish
bundle exec cap staging evolve:logs:pound
bundle exec cap staging evolve:logs:evolution

These and more can be found in the Capistrano tasks reference.

Troubleshooting

If you've encountered a problem, there may already be a solution in the Frequently Asked Questions.

Failing that, check the Github issues and pull requests to see if someone has already encountered your same problem. If no one has, then feel free to file a new issue.

Developing

If you'd like to help develop or test new features for Evolution, it's relatively simple to do so!

First, you'll need to clone this repo, and checkout whatever branch you're wanting to test (or create a new branch and implement a feature within it):

EVOLUTION_TEST_FRAMEWORK_PATH=~/git/evolution-wordpress
mkdir -p $EVOLUTION_TEST_FRAMEWORK_PATH
git clone https://github.com/evolution/wordpress.git $EVOLUTION_TEST_FRAMEWORK_PATH
cd $EVOLUTION_TEST_FRAMEWORK_PATH
git checkout -b some-existing-feature-from-origin

Next, go to the repo of the evolution site with which you intend to test the feature, and invoke the generator with the framework-path argument:

cd ~/git/my-testing-site.com
yo evolve wordpress --framework-path=$EVOLUTION_TEST_FRAMEWORK_PATH

Now, this site should be generated from the feature branch in question!