2.6 KiB
Deploying Drutopia updates
Prerequsites
A bit more PHP than you need, but this will definitely get you ready for composer and friends:
sudo apt-get install ansible rsync php7.4 php7.4-gd php7.4-mysql php7.4-xml php7.4-curl php7.4-fpm php7.4-sqlite3 php7.4-cli
Then follow the commands from:
And then:
sudo mv composer.phar /usr/local/bin/composer
To make working with Drutopia Platform's recommended Ansible setup easier (and for the following instructions to work), install Ahoy per its instructions:
Finally, clone needed Drutopia repositories locally according to the recommended setup.
Now you are ready for deploying Drutopia updates on a regular basis.
Ensure you are up-to-date
cd ~/Projects/drutopia-platform/drutopia_host/hosting_private
ahoy git-pull-all
ahoy new-site example
And, following the instructions that provides, copy the
ansible-vault edit host_vars/elizabeth.mayfirst.org/vault.yml
If using typical sitename-test.drutopia.org
and sitename-live.drutopia.org
domains pending the real site domain, add the subdomains to drutopia.org through the May First control panel
Prepare appropriate base
ahoy deploy-build next
Deploy your site
ahoy deploy-site example_test
And you can share back the record of the deployments in the build_artifacts
repository with this:
ahoy artifacts
Putting it all together
cd ~/Projects/drutopia-platform/drutopia_host/hosting_private
ahoy git-pull-all
ahoy deploy-build next
ahoy deploy-site example_live
ahoy artifacts
If you need to override site configuration:
ahoy deploy-site-force example_test
Bonus: Keep Drutopia builds with similar available modules
To try to keep various Drutopia-based distributions from diverging too much, at least insofar as available modules, even if they aren't installed, we can use the meld (sudo apt-get install meld
) diff tool to compare and share when posssible.
meld ~/Projects/agaric/sites/crla/crla-org/composer.json ~/Projects/agaric/sites/geo/composer.json ~/Projects/drutopia-platform/build_source/composer.json ~/Projects/agaric/sites/agaric-com/composer.json
When these align in not needing special patches or versions, we can consider dropping a custom build in favor of collaborating on a single one.