Evolution WordPress
Rapidly create, develop, & deploy WordPress across multiple environments.
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
- Generating a new site
- Bringing up an existing Evolution site
- Regenerating an existing Evolution site
- Rebuilding an existing Evolution server
- Upgrading from an existing Genesis site
- Importing a non Evolution site
- Caveats for developing themes and plugins
- Common variable overrides
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!