Aegir 3.12

The Aegir team is proud to announce a new release in the stable 3.x branch!

This release ships with a number of bug fixes and UI improvements.

  • Going for semi-semantic-verioning ... the new tag is 7.x-3.120 but you can read it as 7.x-3.12.0, see for discussionA
  • Add php 7.1 as alternative to 7.0 package dependency.
  • We've added the Hosting Logs module and module_filter module.
  • We released 3.12.1 to support the upcomming Drupal 8.4 - See
Project Description Links Status
Provision Drush commands
Build Status
build status
Hosting Drupal Modules
Hostmaster Drupal Install Profile
Dockerfiles Docker image definitions. Used for all tests.
Build Status
Tests Behat tests and Travis tools Build Status
Development Environment Local docker-based development environment. Build Status

Installing and upgrading

The canonical source of installation documentation is

Within those sections you'll find step-by-step instructions for performing both manual and automatic upgrade processes.

It is still imperative that you read the upgrade path and version-specific information and follow all version-specific upgrade instructions before trying to run the upgrade script or manual upgrade.

Need help?

If you struggle to install or upgrade your Aegir system, you have a number of options available to you for getting help.

Consult this page for more information:

Thanks to our awesome community for their help, support and encouragement as always! Enjoy the new release :)


Changes to hostmaster since 7.x-3.11

  • #2359571 by jon-pugh, helmo: Add the optional module_filter module to improve the admin/modules page
  • #2908932: Add Hosting Logs to Hostmaster contrib
  • Update views to 3.18

Changes to provision since 7.x-3.11

  • Add php 7.1 as alternative to 7.0 package dependency
  • Add test for Ubuntu 17.04 Artful
  • Output command on error for generate_dump(), The error could be empty.
  • #2857480 by helmo, kfolsom, jsedwick: MySQL Dumps containing Global Transaction ID (GTID) Incompatible with Aegir
  • #2754069: Fixing sites that were breaking because drush option "installed" wasn't being set.
  • Revert "Issue #2754069: Replace drush_get_option('installed') with _provision_drupal_site_exists()."
  • #2894190 by helmo: Let systemd service file for queued depend on mysql
  • Adding 2 debug statements to drush_provision_drupal_pre_provision_verify().
  • Creating platform from makefile should be a "notice" drush log.
  • Add -T and XTERM environment variable.
  • #2754069: Replace drush_get_option('installed') with _provision_drupal_site_exists().
  • Only change dir if the dir exists.
  • #2794915 by jon-pugh: Refactor database permissions granting to allow scalability to arbitrary web servers
  • Print all the errors found.
  • Output all of the errors when a platform cannot be bootstrapped, and show the path we are looking for.
  • Instead of just saying "Drush could not bootstrap this platform.", print the error if there is one.
  • Merge branch '7.x-3.x' into 7.x-3.x-devshop
  • #2754069 by jon-pugh: Merge remote-tracking branch 'origin/2754069-decouple-install' into 7.x-3.x
  • Merge branch '7.x-3.11.x' into 7.x-3.x
  • 3.11.2 mini release to trigger an update of Drupal core
  • 3.11.1 mini release to trigger an update of Drupal core
  • #2886519 by helmo: Package debian archive key
  • #2886519: Cleanup unused option, only useful for source packages
  • Add binary version of the debian/aegir-archive-keyring.asc file
  • Rename Debian Archive key again, now with the correct asc extension
  • Rename Debian Archive key to be more descriptive
  • #2859549: purge jenkins code from debian/rules
  • #2886587 by helmo: Set install profile via Debian package variable
  • #2770819 by helmo: Install fails on MariaDB 10 without password (new default)
  • Merge commit '39842d795217ffc2cbde9b6da78767e3094a4c25' into 7.x-3.x-devshop
  • #2754069: Use d()->install_method when checking for profile install.
  • Merge branch '7.x-3.x' into 2754069-decouple-install-alternate
  • Merge branch '2754069-decouple-install-alternate' into 7.x-3.x-devshop
  • #2754069: Change option to "install_method".
  • Change directory into the makefile dir so local paths work.
  • Merge branch '7.x-3.x' of into 2754069-decouple-install-alternate
  • Add "install_method" as a context option instead of a drush option.
  • Revert "Issue #2836185: Allow "force-reinstall" drush option for "provision-install" command."
  • #2836185: Allow "force-reinstall" drush option for "provision-install" command.
  • Check for site_install_method before rebuilding caches, saving packages, and running cron because we might not have an installed site now.
  • #2754069: Default to "profile" method. If "manual" method, set "login_link" to be to /install.php.
  • #2754069: Change the drush option to "site_install_method", default to "profile". Add as a context option, and switch back to create an "install" task on site insert.
  • #2754069: Wrap the backend profile drupal install in a drush option so that hostmaster can decide whether or not to install Drupal profile automaticlly.

Changes to hosting since 7.x-3.11

  • Add a label to Domain Aliases to distinguish it from the Redirect field.
  • Fix incorrect warning message. We are looking up packages on the platform, not the site.
  • If $node->platform_node->nid is present, save that node during site node save.
  • #2835125 by millenniumtree: Views filtering of remote_import task types
  • #2897036 by millenniumtree: default DB server not restored in settings form
  • #2883630 by kienan: Users may create sites and go above the client's set quota
  • #2697183 by kienan: Allow 'client' users to login to new sites
  • #2754069 by jon-pugh: Merge remote-tracking branch 'origin/2754069-decouple-install' into 7.x-3.x
  • #2883695 by kienan: Users with the aegir client role not able to see their sites and platforms
  • #2744039 by tvl: hosting-queued start error
  • #2857721 by kfolsom: "Accessible clients" and "Associate a client to this user" Missing from User Editing Page
  • Extra example for hosting-task
  • Merge branch '7.x-3.x' into 2754069-decouple-install
  • #2754069: set "install_method" as a context_option, not a drush option.
  • #2754069: Don't bother loading "install_method" as "profile", it defaults further down.
  • Use $task->options to set drush options.
  • #2754069: Change the drush option to "site_install_method", default to "profile". Add as a context option, and switch back to create an "install" task on site insert.
  • #2754069: Use verify instead of Install for first task.

Changes to eldir since 7.x-3.11

  • None

Changes to hosting_civicrm since 7.x-3.11

  • Support for CRM-16395: language setting presets.
  • Merge pull request #13 from nditech/dev/2844984
  • Add .gitlab-ci.yml
  • Use existing data on packages to determine CiviCRM version.
  • #2844984: Trigger verify in the front-end after installing a CiviCRM site.
  • 2844984: Generate site-key during install.

Changes to hosting_git since 7.x-3.11

  • Only include the === line if there is a message below
  • #2893588: Set error and return if repo_path is aegir home.
  • Improve warning message for bad repo_path.
  • Return FALSE from provision_git_is_repo() if repo_path is set to /var/aegir.
  • Check for {$repo_path}.git/config not just {$repo_path}
  • Log a warning if repo_path is found to be /var/aegir.
  • #2893588: Removing a site or platform could remove all of /var/aegir: Do not allow /var/aegir to be repo_path.
  • #2544906: Pickup git setting from disk: Fix improper git repo detection by skipping it if there is no .git/config file.
  • #2893588 by millenniumtree: Quick fix, remove the delete code
  • Clean whitespace
  • Add a TODO about determining if branch or tag before pulling.
  • Array filter those arrays to ensure they are really empty, when checking IP access.
  • Allow empty IP list to grant access to all IPs for webhook requests.
  • Fixing incorrect description of checkout behavior.
  • Re-word title and description of "Git Ref" field in the Checkout task form. Set default value to a GET value to we can prepopulate.
  • Don't show the webhook URL if there is no NID.
  • Forgot to use isset() to avoid the notice.
  • Fixing a notice and removing a @TODO leftover from the d6 upgrade!
  • Only set properties after verify task is "deploy_from_git" context is set. Site nodes were importing platform git properties.
  • Print some new lines for visibility and say somthing if the task cannot be saved.
  • Hide Webhook URL on site create form. We don't know site name yet, so it's wrong.
  • Add variables to control if sites and platforms are allowed to be deployed from git.
  • Improving Git Pull options language some more.
  • Renaming "Git Pull on Webhook" to "Automatic Git Pull". It lines up more with "Manual Git Pull" and "Queued Git Pull".
  • Put git pull method options into a function for reuse elsewhere (like devshop's project settings form.).
  • Improve text for Git Pull Method radio buttons.
  • Improve text for Webhook URL field item.
  • Always show the Webhook URL, hide it from the form using #states.
  • Output a link to the task that was created.
  • Changing "Commit Received" to "Webhook Received".
  • Move _hosting_git_pull_callback_url() to the module so it's available without having to include a file.
  • Move Hash creator to the module so it's available without having to include a file.
  • Adding a @file docblock for hosting_git_pull. This was from devshop_pull.
  • Removing last mention of "project" from Hosting Git Pull webhook.
  • Removing reference to "Project".
  • Update GitHub IPs.

Changes to hosting_remote_import since 7.x-3.11

  • None

Changes to hosting_site_backup_manager since 7.x-3.11

Changes to hosting_tasks_extra since 7.x-3.11

  • Switch to using GitHub so we can use HTTPS
  • Fixing incorrect variable
  • Its "permissions" not "permission"
  • Comment whitespace.
  • Adding section about the Standalone Install Script to both's
  • Adding a standalone install script for fix-permissions and fix-ownership.
  • #2869215 by helmo: Error when trying to set http_auth on site update
  • #2744367 by sambonner, mpv: Password file is not synced to slave servers when using web_pack
  • #2869215 by helmo: Error when trying to set http_auth on site creation
  • Was fixing a notice, found a bug: On site create form, the IP whitelist never showed up, because we don't know platform yet.
  • Only attempt backups if the "backup" option is provided.
  • #2892822: Use structure-tables-key option of sql-sync

Known Issues

  • When upgrading from Aegir 2.x be aware of these notes.
  • When upgrading the update hook uses a batch to rebuild the node_access information, depending on the system size you'll see hosting_client_update_7001 repeated for a while.

    Performed update: hosting_client_update_7001 [ok] Performed update: hosting_client_update_7001 [ok] Performed update: hosting_client_update_7001 [ok]

  • When upgrading, or running verify on the hostmaster site you can get a warning mkdir(): Permission denied which is harmless, see #2693795 for more information.

For a full list of issues, see our combined issue queues