# Deploying Drutopia updates ## Prerequsites A bit more PHP than you need, but this will definitely get you ready for composer and friends: ```bash 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: [getcomposer.org/download](https://getcomposer.org/download/) And then: ```bash sudo mv composer.phar /usr/local/bin/composer ``` To make working with [Drutopia Platform's recommended Ansible setup](https://gitlab.com/drutopia-platform/drutopia_host#introduction) easier (and for the following instructions to work), install Ahoy per its instructions: [github.com/ahoy-cli/ahoy](https://github.com/ahoy-cli/ahoy) Finally, [clone needed Drutopia repositories locally according to the recommended setup](creating-new-drutopia-site#overall-setup). Now you are ready for deploying Drutopia updates on a regular basis. ## Ensure you are up-to-date ```bash 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 ``` ## Prepare appropriate base ``` ahoy deploy-build next ``` ## Deploy your site ``` ahoy deploy-site 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. ```bash 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.