Developing BOA — maintainer guide

This guide is for people who hack on BOA itself — the Barracuda/Octopus bash and the omega8cc Aegir forks (Hostmaster, Provision, Hosting). It's code-first and terse; it assumes you read BOA bash and Drupal PHP fluently and that you understand the fork model. omega8cc is upstream — there are no pre-fork upstreams to defer to.

In this guide

  • Maintainer overview & fork model — the repo set (BOA.sh.txt, BARRACUDA.sh.txt, OCTOPUS.sh.txt, lib/functions/), how the codebase is organised, and the omega8cc forks as their own upstream.
  • Contributing & code style — contribution mechanics plus the BOA bash conventions (_msg "PREFIX:" output in lib/functions/ and main scripts, master/satellite separation) and PHP/Drupal rules the backend enforces.
  • Release model & SKYNET pipeline — the public branch scheme, dual licensing, and the serial/tag → autoupboa self-update path that pushes to the fleet.
  • Install & staged-setup internals — the AegirSetup{A,B,C,M} staged engine and AegirUpgrade: how a box is built and moved between versions.
  • Aegir backend APIs — Hostmaster/Provision/Hosting internals: the Provision context/service classes and the Hosting task/hook_ surfaces a hosting_* module extends.
  • Web & search stack internals — the Nginx vhost/template generator (server.tpl.php, vhost_include.tpl.php), the Drupal settings.php templates, and the Solr installer.
  • Build & test — building and testing the forks, the Drush extension filter, and the disposable-VM install/upgrade test gate.
  • Monitor & abuse-guard internals — code-level internals of the monitor deploy surfaces, the Abuse Guard detectors, and the nightly worker, for maintainers who change them.

Just running BOA, not changing its code? The Operating BOA guide is the operator reference; this guide is for maintainers only.