Originally published on the Consensus Enterprises blog.
Have you been looking for a self-hosted solution for hosting and managing Drupal sites? Would you like be able able to upgrade all of your sites at once with a single button click? Are you tired of dealing with all of the proprietary Drupal hosting providers that won’t let you customize your set-up? Wouldn’t it be nice if all of your sites had free automatically-updating HTTPS certificates? You probably know that Aegir can do all of this, but it’s now trivial to set up a temporary trial instance to see how it works.
The new Aegir Development VM makes this possible.
History
Throughout Aegir’s history, we’ve had several projects striving to achieve the same goal. They’re listed in the Contributed Projects section of the documentation.
Aegir Up
Aegir Up was based on a VirtualBox virtual machine (VM), managed by Vagrant and provisioned with Puppet. It was superseded by Valkyrie (see below).
Aegir Development Environment
Aegir Development Environment took a completely different approach using Docker. It assembles all of the services (each one in a container, e.g. the MySQL database) into a system managed by Docker Compose. While this is a novel approach, it’s not necessary to have multiple containers to get a basic Aegir instance up and running.
Valkyrie
Valkyrie was similar to Aegir Up, but provisioning moved from Puppet to Ansible. Valkyrie also made extensive use of custom Drush commands to simplify development.
Its focus was more on developing Drupal sites than on developing Aegir. Now that we have Lando, it’s no longer necessary to include this type of functionality.
It was superseded by the now current Aegir Development VM.
Present
Like Valkyrie, the Aegir Development VM is based on a VirtualBox VM (but that’s not the only option; see below) managed with Vagrant and provisioned with Ansible. However, it doesn’t rely on custom Drush commands.
Features
Customizable configuration
The Aegir Development VM configuration is very easy to customize as Ansible variables are used throughout.
For example, if you’d like to use Nginx instead of Apache, simply replace:
|
|
…with:
|
|
…or override using the command line.
You can also install and enable additional Aegir modules from the available set.
Support for remote VMs
For those folks with older hardware who are unable to spare extra gigabytes (GB) for VMs, it’s possible to set up the VM remotely.
While the default amount of RAM necessary is 1 GB, 2 GB would be better for any serious work, and 4 GB is necessary if creating platforms directly from Packagist.
Support for DigitalOcean is included, but other IaaS providers (e.g. OpenStack) can be added later. Patches welcome!
Fully qualified domain name (FQDN) not required
While Aegir can quickly be installed with a small number of commands in the Quick Start Guide, that process requires an FQDN, usually something like aegir.example.com
(which requires global DNS configuration). That is not the case with the Dev VM, which assumes aegir.local
by default.
Simplified development
You can use it for Aegir development as well as trying Aegir!
Unlike the default set-up provisioned by the Quick Start Guide, which would require additional configuration, the individual components (e.g. Hosting, Provision, etc.) are cloned repositories making it easy to create patches (and for module maintainers: push changes upstream).
Conclusion
We’ve recently updated the project so that an up-to-date VM is being used, and it’s now ready for general use. Please go ahead and try it.
If you run into any problems, feel free to create issues on the issue board and/or submit merge requests.