A new way to Multisite: migrating Aegir to GitHub for WSU Vancouver

About 7 years ago, Washington State University, Vancouver set up their 11 websites on Aegir using a single Drupal 8 codebase. Thanks to Aegir, our client and friend Aaron Thorne was able to maintain all 11 websites by himself, despite not being a Drupal developer. Eventually, though, it was time for something new.

Last year, they contacted me to upgrade their sites and the hosting platform, but keep it inside their own private server infrastructure.

We took our time to figure out how we could design a new model for a multisite codebase, hosting, testing.

How can we implement reliable quality controls and automated delivery across all 11 sites? How can we make it as easy as possible for developers and system administrators to maintain? How can we leave WSU Vancouver with a system that they can use long term, so that they can update their codebase... forever?

The answer? A new self-contained system using DDEV, GitHub Actions, and clever usage of settings.php and Drush aliases.

I gotta be honest: as a developer, working this way has been a dream.

Run CI/CD with preview environments anywhere with self-hosted Git runners.

GitHub Actions and BitBucket Pipelines are amazing. You can control what is run using yaml files in your codebase. 

You can run just about any command, and they provide a really powerful interface for browsing jobs and logs.

Many people are unaware, you can also control where your scripts are run. If you setup a tool called a Git Runner, you can run Git Actions anywhere, including from your local machine.

Introducing Operations Site Runner: a self-hosted CI/CD platform using GitHub Actions and DDEV.

I've been building and designing automation systems for almost 20 years. I built DevShop on top of Aegir to implement continuous integration and quality control over 10 years ago.

Running CI systems is hard. Really hard. There needs to be an active task runner. A dashboard. API integrations. Tooling. Network Access. It can be incredibly complicated. In the Enterprise? Forget it.

I've been imagining a new system for many years, and here it is.

New Composer plugin "Remote Bin Scripts" makes it easy to install 3rd party tools.

Recently we finished a project that was being moved to Pantheon.

We created a couple custom scripts for pushing data into the pantheon environment, and for pulling data down for continuous integration runs.

The scripts require the Terminus CLI tool created by Pantheon to interact with it's service.

Terminus is a composer project, but it's dependencies don't align with the latest Drupal sites. It's best to install it as a phar file and run it that way.

Introducing Site and Site Manager Modules: Tools for tracking your Drupal sites.

In our line of work, we often deal with many different websites. One of my clients, Vardot, is responsible for over 100 websites. To ensure each site is running smoothly, they needed a tool to keep track of all of them in one place, and hired me to build a "Drupal Support Dashboard", or DSD.

Site Audit 4: Track your Drupal sites into the 4th Dimension

The Site Audit module is a classic. It will reach 10 years old in June of 2023. It gives you a detailed report of your Drupal site in the web admin, providing a nice pass-fail display for review. It has a drush command that renders the report to the terminal in HTML, text, or JSON.

Earlier this year, we started a new project that resulted in a few new features for Site Module, launching the 4.x version branch. 

Site Audit module backported to Drupal 7 to soften landing of Drupal 7 upgraders.

After my presentation on Site Audit 4, I was approached by an audience member, Irina Zaks of Fibonacci Web Studio.

It turns out, the Site Audit module never had a web interface in Drupal 7. It was a drush-only tool that could output HTML, but there was no code ever written to display the audit in the site.

Announcing Provision 4: Leaving the Aegir Nest

As we head into DrupalCon week I've got something big to announce. With the blessing of the Aegir core maintainers, I am taking the 4.x branch of Provision I have been working on and I am separating it from the Aegir Project.

Provision 4 will still power Aegir. We are working on a patch to Hostmaster that will allow us to run a different command other than Drush, allowing Provision4 to become the primary back-end to Aegir 4. This means it will also be able to power the current generation DevShop.

Newest version of DevShop eases Drupal update and release process.

In just a few hours, the first serious critical security update for Drupal since "Drupalgeddon" will be released.

To make this update easier for DevShop users, we've pushed out a new release with 2 features that allow you to update your sites without ever leaving your web browser: "Update, Commit & Push" and "Tag a Release".

"Commit & Push"

The "Update Drupal" button has been available in DevShop for some time, but now you can automatically commit the results by checking a box.