Drupal

Site factory: Let's install Aegir for Drupal 10!

Published on 25 March 2024
Photo of the bluedrop.fr agency premises

Collaborative publication between the bluedrop.fr agency and Evolix.
After reviewing how Aegir works and its history, we are pleased to offer you a way to run Aegir 3 with Drupal 10 and PHP8. This work will allow our Aegir platforms to continue operating until 2026.

Aegir, site factory administration console with Drupal

The idea may seem crazy, but it is made possible thanks to Drupal’s architecture. Drupal can manage, administer, and monitor other Drupal sites. The CMS even gives you the choice between an architecture with one or several databases. The community quickly even considered allowing Drupal site administrators to manage, create, delete, or clone sites without technical skills.

The solution takes the form of a Drupal 7 site, which lets you configure one or more Drupal distributions, or installation profiles. It allows you to manage this site factory with a single Drupal Core, making platform maintenance easier. It gives the administrator a set of tasks for managing the site factory, as well as Drush commands specific to the Drupal environment. For example, the following tasks: 

  • Create, duplicate, delete a site;
  • Read the database name;
  • Back up a site;
  • Reset the password of one or more sites;
  • Clear the Drupal caches of one or more sites;
  • Add an alias to a site;
  • Configure a site’s SSL certificate;
  • Manage redirects;
  • etc.!

Moreover, Aegir offers Drupal developers the opportunity to extend its features, because at its core, Aegir is just Drupal.

16 years of service history!

The first Aegir commit took place on December 7, 2007: https://git.drupalcode.org/project/provision/-/commit/2841de35a376e9438cc8a8c496e1720020b63a4f

The project quickly became popular and was adopted in very diverse fields, although often adapted to the operations of universities, research institutes, associations with a "hub" structure, and some international groups.

As for us, we discovered Aegir 4 years later, in September 2011, through Christian Varoujan Artin, our dearly departed friend, a curious technophile who demonstrated it for us at our offices on Allées Gambetta. From 2012, we enjoyed running an Aegir platform.

Properly maintained until 2018, it gradually gave way under pressure from proprietary solutions. Today: 

  • The main Drupal module "provision" has not been maintained since 2020.
  • The installation procedure for Debian no longer works: the GPG keys for the APT Aegir repository expired in 2022.
  • And http://debian.aegirproject.org/ doesn't even work anymore.

The eventual finitude of Aegir

Unfortunately, the Aegir Project is dying. We are trying to buy some time, but its fate is sealed. The main maintainers are leaving the platform in its current form to redevelop Aegir 5 by taking a different direction. The roadmap is still unclear and we will probably not be following this direction.

Another initiative, maintained by Omega8, allows Drupal 9.5 and Drupal 10 to run. This is BOA (Barracuda Octopus Aegir). We tested this solution, which seems very specific and, for us, difficult to use. However, we thank the BOA team for providing some patches that allowed us to make faster progress with our work.

It seems the end has been announced :(

Our Aegir fork project

While our work offers a solution to extend the lifespan of Aegir, we are already working on an equivalent platform, rebuilt from scratch, incorporating the main features of Aegir. In collaboration with Evolix, we aim to release a publication in the last quarter of 2024. This fork will at times resemble Aegir, minus the heavy and less useful features. It will include certain Drush commands. We will be sure to keep you updated on our progress.

And in the meantime, let's install Aegir for Drupal 10!

Here is the required environment:

The installation works on a single server and in multi-cluster environments.
All installation details are on https://wiki.evolix.org/HowtoAegir.

Note:

Among the patches to the Drupal 10 code, you need to:

  • Remove Drush 12 from the sources
  • Patch vendor/psr/log/src/LoggerTrait.php
  • Patch core/lib/Drupal/Core/Logger/LoggerChannel.php
  • Patch core/lib/Drupal/Core/Logger/RfcLoggerTrait.php
  • Patch core/modules/dblog/src/Logger/DbLog.php
  • Patch vendor/psr/log/src/LoggerInterface.php
  • Several patches, notably on the Drupal "provision" module, come from https://omega8.cc/ and from BOA, thanks to them as well.

And now... it's your turn!

 


 

Some resources:

Read more articles on Drupal