documentation/tools/deploying-drutopia-updates.md

67 lines
2 KiB
Markdown

# 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.