DevShop Documentation

What is DevShop?

DevShop is Drupal DevOps in a Box. DevShop makes it incredibly easy to host multiple Drupal projects (with multiple environments each) on one or many servers.

Quick Links: DevShop | DevShop Hosting | DevShop Provision | Provision Git

Why DevShop?

The developers of DevShop have been using Aegir for years. It has facilitated the creation of many platforms and an abundance of sites. However, keeping these sites and platforms organized can be a real chore.

So, after years of setting things up manually, 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.

Installation

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:

  1. A debian-based server (Ubuntu 12.04 recommended), with a fully-qualified-domain set as the server's Hostname. (ie. mydevshopserver.com)
  2. 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:

// Login as root firstly or run with "sudo".
// Get the latest install.sh from DrupalCode.org git folder. 
// This is a simple redirect to this file.
$ wget http://getdevshop.com/install
$ bash install

Next, you will need to go through the Postfix configuration. The
default options are fine: Internet Host for "General server purpose" and mydevshopserver.com for "System mail name".

Compatibility

The supported hostmaster and provision branch is 6.x-1.x.

Provision Commands & Hostmaster Tasks

  1. 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
  2. Commit Features
    $ drush @project_NAME provision-devshop-commit ENVIRONMENT --message="My Commit"

    This task integrates with the 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 risk accidentally exporting 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.
  3. 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!

    This task:

    • (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.

DevShop Modules

DevShop is a collection of different modules.

Guide maintainers

jon pugh's picture