Aegir file system structure

This page documents the typical file system structure on an Aegir installation. It is intended to complement a related wiki page on Aegir Architecture. The following paths are based on an Aegir 0.4-x installation and assume that all directories are within the /var/aegir folder.

Scripts and Configuration Files

Path Notes
/backups site-specific tar balls containing a database dump and folders under path/to/platform/sites/example.com
/config
/config/server_master
/config/server_master/apache
/config/server_master/apache/conf.d non-aegir or non-drupal virtual hosts files
/config/server_master/apache/platform.d contains .htaccess information for each aegir platform
/config/server_master/apache/vhost.d apache virtual host files for aegir platforms
/config/server_master/apache/vhost.d/aegir.example.com virtual host file for aegir web site - specifies path to platform directory and site database settings (so that database credentials are not exposed directly in site settings.php file)
/config/server_master/apache/vhost.d/site-1.com virtual host file for deployed web site
/config/server_master/apache/vhost.d/site-2.com
/config/server_master/apache/vhost.d/site-3.com
/drush drush folder
/drush/drush.php drush script
/.drush drush extensions and server, platform and site aliases
/.drush/drush_make drush_make project folder - used for building web sites from .make files
/.drush/provision provision folder
/.drush/server_master.alias.drushrc.php settings for the master server where the main aegir database, hosting platform and aegir site reside
/.drush/platform_hostmaster.alias.drushrc.php settings for the hostmaster platform on which the aegir site is based
/.drush/hostmaster.alias.drushrc.php settings for the aegir site
/.drush/platform_platform1.alias.drushrc.php settings for platform1 on which site-1.com is based
/.drush/site-1.com.alias.drushrc.php settings for site-1.com

Hostmaster Platform and Aegir (front-end) Site

Path Notes
/hostmaster-0.x hostmaster platform
/hostmaster-0.x/profiles
/hostmaster-0.x/profiles/default
/hostmaster-0.x/profiles/hostmaster hostmaster profile
/hostmaster-0.x/profiles/hostmaster/modules
/hostmaster-0.x/profiles/hostmaster/modules/admin_menu
/hostmaster-0.x/profiles/hostmaster/modules/hosting hosting module
/hostmaster-0.x/profiles/hostmaster/modules/install_profile_api install_profile_api – facilitates provisioning of sites based on a non-default profile
/hostmaster-0.x/profiles/hostmaster/modules/jquery_ui
/hostmaster-0.x/profiles/hostmaster/modules/modalframe
/hostmaster-0.x/profiles/hostmaster/themes
/hostmaster-0.x/profiles/hostmaster/themes/eldir eldir theme – provides Aegir front end look and feel
/hostmaster-0.x/profiles/hostmaster/hostmaster.profile profile file – used in site provisioning to configure a drupal database
/hostmaster-0.x/profiles/hostmaster/hostmaster.make make file – used to include modules, themes, libraries etc. from various sources
/hostmaster-0.x/modules
/hostmaster-0.x/themes
/hostmaster-0.x/sites
/hostmaster-0.x/sites/aegir.example.com aegir web site folders

Deployed Platforms

Note: the directory /platforms is optional but can be useful to separate deployed platforms from directories for scripts, config files and hostmaster platform.

Path Notes
/platforms
/platforms/platform-1
/platforms/platform-1/profiles
/platforms/platform-1/profiles/default
/platforms/platform-1/profiles/custom-profile
/platforms/platform-1/profiles/custom-profile/modules
/platforms/platform-1/profiles/custom-profile/themes
/platforms/platform-1/profiles/custom-profile/custom.profile profile file – used in site provisioning to configure a drupal database
/platforms/platform-1/profiles/custom-profile/custom.make make file – used to include modules, themes, libraries etc. from various sources
/platforms/platform-1/modules
/platforms/platform-1/themes
/platforms/platform-1/sites
/platforms/platform-1/sites/site-1.com
/platforms/platform-1/sites/site-1.com/modules
/platforms/platform-1/sites/site-1.com/themes
/platforms/platform-1/sites/site-1.com/files
/platforms/platform-1/sites/site-1.com/settings.php site-specific drupal configuration file
/platforms/platform-1/sites/site-1.com/drushrc.php site-specific aegir-specific configuration file
/platforms/platform-1/sites/site-2.com
/platforms/platform-1/sites/site-3.com
/platforms/platform-1/sites/site-n.com
/platforms/platform-2
/platforms/platform-3
/platforms/platform-n

#1

Based on suggestions I've seen elsewhere, and the development workflow we need to follow (multiple developers using the same server, and I don't want them all to masquerade as aegir all the time just to get anything done)

I think that - seeing as the group is :aegir anyway, and the prevailing wisdom is to "join the aegir group" then we should have group write permissions on by default.

All cases of

drwxr-xr-x  aegir:aegir
-rw-r--r--  aegir:aegir

should be changed to

drwxrwxr-x  aegir:aegir
-rw-rw-r--  aegir:aegir

#2

The problem of setting up a non drupal vhost file is a very common issue that involves many later consequences. Just like you mentioned that you were not able to pick up in directory it also involves many similar issues.

#3

The problem of setting up a non drupal vhost file is a very common issue that involves many later consequences. Just like you mentioned that you were not able to pick up in directory it also involves many similar issues.