What is DevShop?
DevShop is Drupal DevOps in a Box. DevShop makes is incredibly easy to host multiple Drupal projects (with multiple environments each) on one or many servers.
The developers of DevShop have been using Aegir for years. It is great and creating a lot of platforms and a lot of sites. However, keeping these sites and platforms organized can be a real chore.
So, after years of setting things up by hand, writing new custom scripts for every new client, and wondering if there could be a better way, we set out to architect and build a Drupal development shop infrastructure... in a box.
The goals of DevShop are...
1. to simplify management of multiple environments for multiple Drupal projects.
2. to provide web-based tools that streamline the Drupal site building workflow.
3. to provide a common, open-source infrastructure for Drupal development shops.
The fastest way to install DevShop is with the new install.debian.sh script. This script works on debian servers, Ubuntu 12.04 LTS recommended.
To run this script you need:
- A debian-based server (Ubuntu 12.04 recommended), with a fully-qualified-domain set as the servers Hostname. (ie. mydevshopserver.com)
- A DNS record that points your domain name to your server's IP.
Once you have that, login as root, and run the following command:
sudo sh install.debian
The only question you will have to answer is the Postfix configuration. The
default options are fine: Internet Host for "General server purpose" and mydevshopserver.com for "System mail name".
The supported hostmaster and provision branch is 6.x-1.x. Provision- and Hostmaster-6.x-1.9 are NOT compatible with DevShop without patches. It is strongly recommended to use the 6.x-1.x branches of provision and hostmaster until Aegir 1.10 is released.
Provision Commands & Hostmaster Tasks
- Pull Code
$ drush @project_NAME provision-devshop-pull ENVIRONMENT
This task pulls your code, runs new updates, reverts features, and clears
caches. It can be used as a Deployment task for test sites or live sites, or keeping your localhost in line without doing a database sync.
- Git Pull the code for your site's platform.
- Then, all optionally:
- (optionally) Run update.php.
- (optionally) Revert all Features modules
- (optionally) Clear caches
- Commit Features
$ drush @project_NAME provision-devshop-commit ENVIRONMENT --message="My Commit"
This task integrates with Features.module to make it very easy to recreate and
commit your features. NOTE: It is highly recommended to only commit from your single dev environment. Otherwise, you will very likely accidentally export unwanted changes, unless you keep your databases very up to date.
This will be enforceable in the project settings soon.
- Calls drush features-update-all
- Commits the result, with a part automated and part customized commit message.
- (Optionally) pushes the commits.
- (Optionally) force-reverts after a commit.
- Sync Content
$ drush @project_NAME provision-devshop-sync SOURCE_ENVIRONMENT DESTINATION_ENVIRONMENT
This task makes it easy to copy the database and files from one environment to another within the project.
WARNING: This will DESTROY the destination site's database!
- (optionally) Pulls code
- Drops the DESTINATION_ENVIRONMENT database.
- Creates an SQL dump from SOURCE_ENVIRONMENT
- Copies the SQL dump to the local system (if SOURCE_ENVIRONMENT is a remote).
- Imports the SQL dump into DESTINATION_ENVIRONMENT database.
- (optionally) Runs update.php.
- (optionally) Runs features-revert-all.
- (optionally) Clears all caches.