92 lines
2.6 KiB
Markdown
92 lines
2.6 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
|
|
```
|
|
|
|
```bash
|
|
ahoy new-site example
|
|
```
|
|
|
|
And, following the instructions that provides, copy the
|
|
|
|
```bash
|
|
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](https://members.mayfirst.org/cp/)
|
|
|
|
## Prepare appropriate base
|
|
|
|
```bash
|
|
ahoy deploy-build next
|
|
```
|
|
|
|
## Deploy your site
|
|
|
|
```bash
|
|
ahoy deploy-site example_test
|
|
```
|
|
|
|
And you can share back the record of the deployments in the `build_artifacts` repository with this:
|
|
|
|
```bash
|
|
ahoy artifacts
|
|
```
|
|
|
|
## Putting it all together
|
|
|
|
```bash
|
|
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:
|
|
|
|
```bash
|
|
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.
|
|
|
|
```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.
|