After digging deep into Aegir for the last few attempts at getting aegir sites running on docker-compose services, I've learned how Aegir installs Drupal and it's not ideal.
Aegir includes the site's PHP codebase directly and runs `install_drupal()`.
Obviously changing this will be a relatively big undertaking.
However, I think it's critical. This system is blocking our ability to:
- Use docker for hosted sites.
drush provision-installrequires a local copy of files and direct database access. One of the benefits of docker is the separation, so granting outside access to your app's database server isn't really ideal. We don't want aegir@server_master to directly access those databases. They will have SSH access so that should be good enough.
- Host anything but Drupal natively. This is why Mathieu Lutfy had to create platform_wordpress and site_wordpress node types: This is one big space where the drupal stuff is hard coded.
- - We must change the workflow to run verify to create the site, then run a separate install task, if desired.
- - This function is not smart. If we are using docker containers, settings.php will already be there.
- Define "platform types". We add a property to platforms for "type" or some other word to track "drupal" or "wordpress" or static or whatever.
- Let those platform types define their "install" hook. For drupal, it should pass to
- Refactor provision-install to run that hook.
- Allow sites to use
sites/default/as their settings file path.
- Allow sites to customize their Files directory path.