Omega8.cc: BOA’s Baby Pictures

The internet has a rule – pictures or it did not happen – so here is the evidence, timestamps, byte sizes and all. Click on the picture for full version.
The three scripts now live on our documentation site, byte for byte, with a guided tour of what each one did and what survived into the modern stack, so you can judge yourself, when you will have a spare quarter of an hour. If you fancy a short trip to the year when Ægir was at 0.4-alpha3 and the smartest way to fetch code was a CVS pserver line, the whole excavation is here – bring your own nostalgia, the artefacts are on us!

Terminal file listing: the three scripts in dev/alpha3, dated 20 November 2009

And yes, before you ask: the install script creates the database with a hardcoded MySQL root password, in plain text on the command line, and then grants ALL privileges on *.* to the hostmaster user at '%', which today would rightly get us chased down the street, yet in 2009 the box was ours alone and the wall around it was the SSH login. We publish the scripts exactly as they were found, passwords included (they died together with that server a very long time ago, so please do not get too excited), because a historical document which was “improved” afterwards is not a historical document any more, and we would rather blush a little than airbrush our own history.
It felt like lifting a dust sheet in the shed and finding the hand-built prototype still on its wheels, the one welded together before any factory existed. For anyone meeting these names cold: Ægir is the Drupal hosting system which manages whole fleets of sites from a Drupal site of its own, and BOA (Barracuda, Octopus and Ægir) is our stack built around it, which is what these three files eventually grew into. In our anniversary post we mentioned that Barracuda & Octopus began as “a simplified version of the scripts we used ourselves”, and these are exactly those scripts, or at least their November 2009 layer: AegirCoreVPSinit.sh puts the Ægir layer onto a VPS, AegirCoreVPSupgrade.sh upgrades it, and AegirDistrosVPS.sh builds a whole menu of Drupal platforms next to it. Three files, sixteen kilobytes together, and already the division of labour which later received proper names – the init script grew into Barracuda, and the distros one into Octopus.
What surprised us more than the nostalgia is how much is already in there. The aegir user is created almost exactly the way BOA creates it today, Pressflow serves as the hardened base core, the eldir theme is already named, and an upgrade begins with cron stopped and a full copy plus a database dump taken before anything else is touched, a habbit these scripts never lost. Even the internal geography survived: the distros script builds everything into /data/disk/… where every Octopus account lives to this day, and the tools come from a /dev/ path on our webroot, the same path name our mirrors still use for the release trees. The bones, as it turns out, never changed.
Back to the blog »
Nobody misses how installing anything serious looked in 2009, yet we got a sharp reminder of it recently, because while poking around the oldest corner of our static file mirrors we found a little directory called alpha3 – and inside it, three shell scripts with a file date of 20 November 2009, which makes them older than the public BOA repository itself, since our GitHub history only starts in January 2010. So there they were, the three files this whole thing grew from, sitting quietly on the mirrors all these years – the baby pictures of our whole stack!
Reading them today is pure archaeology. There are four version control systems in three scripts, because that is simply how one fetched open source back then: Drush arrives by CVS checkout from cvs.drupal.org (yes, CVS!), Pressflow 6 is branched with bzr from Launchpad, Acquia Drupal comes over SVN, and git turns up twice – for one module from Koumbit, and for Open Atrium pulled straight off the young GitHub. The platform menu is a time capsule of its own: Drupal 5.20, Acquia Drupal, Open Atrium, ProsePoint, Pressflow, OpenPublish, ManagingNews, Ubercart on Pressflow – half of these names will bring a tear to the eye of anyone who was around, and the other half will send younger readers straight to the search engine.

Similar Posts