Evolution lets you generate an entirely versioned, multi-environment Wordpress site in under a minute!
- 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
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.
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.
You will need:
You can then use npm to install Bower and the Yeoman generator:
npm install -g bower yo generator-evolve
- 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.
If you've encountered a problem, there may already be a solution in the Frequently Asked Questions.
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
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!