Installing DevShop

There are a number of ways to get DevShop up and running: 1. Install Script: Use the standalone install script to fully bootstrap a new Ubuntu or CentOS7 server. Instructions are below. Find the latest release on the Releases page on the GitHub Repo. 2. Docker: See for instructions. 3. Vagrant: The core project on GitHub contains a Vagrantfile that you may use to launch a working devshop on your local computer. 4. Ansible: We have an Ansible role publicly available at The Vagrantfile and standalone install script both use Ansible roles to configure the servers.

Standalone Install Script

DevShop can be installed with a standalone bash script, which kicks off an ansible playbook.

We test this script continuously on Ubuntu and CentOS 7. See for the test results.


  • Do not try to install devshop on a server that is already in use. If you do you will likely have to take manual steps to get it fully functional. It's just easier to start with a fresh server.

  • If installing ubuntu manually, do not choose "LAMP Server" or any other type. The install script & ansible role will install all necessary packages.

  • Always run the script as root. Using sudo bash may not work, as it uses /root/.my.cnf to track database permissions.

1.x is now the current stable branch. 0.x branch is now deprecated! Drupal 6 is End of Life.

DevShop 1.x is based on Drupal 7 and runs Drupal 8 sites.

Our git tags are our releases. See for the list of releases. There is an file in the "Downloads" section of every release.

Please, check the releases page before installing for the first time to be sure you have the latest install script. In case there is a lag in updating the documentation, visiting the "releases" page will tell you the actual latest release.


  • Pick a domain and server name to use for DevShop, and pick a subdomain that makes sense, for example ""

  • Fire up a linux server somewhere, using that domain name as the server's hostname. You can change the hostname using the install script. See below.

    • Rackspace and DigitalOcean use the name of the server to automatically set the hostname.

  • DNS Setup:

    • Add a DNS record that points your domain name ( to your server's IP address.

    • Add a second DNS record that points a wildcard subdomain of your domain (* to your server's IP address. This allows you to setup new sites without having to mess with DNS every time.

    • Example DNS Records: 1800 IN A
        * 1800 IN A
  • Login to your server, and retrieve and run the install script. Remember, check the Releases Page on GitHub to be sure you have the latest release. If you wish to run HEAD (which is normally stable) you can pull the 1.x branch branch version of the script.

      root@devshop:~# wget
      root@devshop:~# bash
  • If you don't have root but have a sudo user:

      ubuntu@devshop:~$ sudo su
      root@devshop:~# wget
      root@devshop:~# bash
  • If you need to change the hostname, use the --hostname option:

      root@devshop:~# bash
  • If you wish to install NGINX instead of apache, use the --server-webserver=nginx option:

       root@devshop:~# bash --server-webserver=nginx
  • If you wish to use a different playbook or makefile for the devmaster front-end, you can use the --makefile and --playbook commands:

       root@devshop:~# bash --makefile=devmaster-super.make --playbook=playbook-super.yml
  • If you wish to set the Aegir user's UID to something other than 12345, you can use the --aegir_user_uid option. This might be useful if you are setting up Docker containers to mounting NFS.

Once you have devshop installed, switch to the Aegir user to access all of the files for all of your sites, include the devmaster front-end.

The most important commands to remember are devshop status and devshop login

    root@devshop:~# su - aegir
    aegir@devshop:~$ devshop status
    aegir@devshop:~$ devshop login

What does do?

We strive to make the source code as readable as possible, so please feel free to read through it.

In summary, the script does the following:

  1. Installs git and Ansible.

  2. Generates a secure MySQL password and saves it to the /root/.my.cnf.

  3. Clones to /usr/share/devshop and checks out the chosen version. These files include the Ansible playbooks and variables files.

  4. Runs the Ansible playbooks listed in playbook.yml:

    • opendevshop.users

    • opendevshop.apache

    • geerlingguy.php

    • geerlingguy.php-mysql

    • geerlingguy.composer

    • opendevshop.devmaster

  5. Runs the devshop status command to ensure everything is working properly.

Last updated