forked from toolshed/docs.coopcloud.tech
		
	Update packager guide
This commit is contained in:
		| @ -6,19 +6,32 @@ title: Packager guide | |||||||
|  |  | ||||||
| Let's take as an example, [Matomo web analytics](https://matomo.org/). | Let's take as an example, [Matomo web analytics](https://matomo.org/). | ||||||
|  |  | ||||||
|  | We'll be making a Docker "swarm-mode" `compose.yml` file. | ||||||
|  |  | ||||||
| - Tired: Write your own image and compose file | - Tired: Write your own image and compose file | ||||||
| - Wired: Use someone else's image (& maybe compose file) | - Wired: Use someone else's image (& maybe compose file) | ||||||
| - Inspired: Upstream image, someone else's compose file | - Inspired: Upstream image, someone else's compose file | ||||||
| - On fire: Upstream compose file | - On fire: Upstream compose file | ||||||
|  |  | ||||||
| I'm feeling lazy so, luckily for me, Matomo already has an example compose file in their repository! Let's download and edit it: | I'm feeling lazy so, luckily for me, Matomo already has an example compose file in their repository. | ||||||
|  |  | ||||||
|  | Like a lot of compose files, it's intended for use with `docker-compose`, instead of "swarm mode", but it should be a good start. | ||||||
|  |  | ||||||
|  | First, let's create a directory with the files we need: | ||||||
|  |  | ||||||
|  | ``` | ||||||
|  | abra recipe create matomo | ||||||
|  | cd ~/.abra/apps/matomo | ||||||
|  | ``` | ||||||
|  |  | ||||||
|  | Then, let's download and edit the `docker-compose.yml` file: | ||||||
|  |  | ||||||
| ``` | ``` | ||||||
| mkdir matomo && cd matomo | mkdir matomo && cd matomo | ||||||
| wget https://raw.githubusercontent.com/matomo-org/docker/master/.examples/apache/docker-compose.yml -O compose.yml | wget https://raw.githubusercontent.com/matomo-org/docker/master/.examples/apache/docker-compose.yml -O compose.yml | ||||||
| ``` | ``` | ||||||
|  |  | ||||||
| Open the `compose.yml` in your favourite editor and have a gander :swan: . There are a few things we're looking for -- full list to come -- but a few things we can immediately see are: | Open the `compose.yml` in your favourite editor and have a gander 🦢. There are a few things we're looking for -- full list to come -- but some immediate changes could be: | ||||||
|  |  | ||||||
| 1. Let's bump the version to `3.8`, to make sure we can use all the latest swarm coolness | 1. Let's bump the version to `3.8`, to make sure we can use all the latest swarm coolness | ||||||
| 2. We load environment variables separately via [abra](/overview/#command-line-tool), so we'll strip out `env_file`. | 2. We load environment variables separately via [abra](/overview/#command-line-tool), so we'll strip out `env_file`. | ||||||
| @ -29,16 +42,29 @@ Open the `compose.yml` in your favourite editor and have a gander :swan: . There | |||||||
|  |  | ||||||
| The resulting `compose.yml` is available [here](https://git.autonomic.zone/coop-cloud/matomo/src/branch/main/compose.yml). | The resulting `compose.yml` is available [here](https://git.autonomic.zone/coop-cloud/matomo/src/branch/main/compose.yml). | ||||||
|  |  | ||||||
| Now, create an `.env` file (or call it anything else, but remember to specify the `-e` option for `abra`): | !!! note "Running Co-op Cloud server required!" | ||||||
|  |  | ||||||
|  |     The rest of this guide assumes you have a Co-op Cloud server going -- we'll use `swarm.example.com`, but replace it with your own server address. | ||||||
|  |  | ||||||
|  |     Head over to [the deployment guide](./deploy.md) if you need help setting one up. | ||||||
|  |  | ||||||
|  | Now, we're ready to create a testing instance of Matomo: | ||||||
|  |  | ||||||
| ``` | ``` | ||||||
| TYPE=matomo | abra app new matomo --secrets \ | ||||||
|  |  --domain matomo.swarm.example.com \ | ||||||
|  |  --server swarm.example.com \ | ||||||
|  |  --app-name mygreatapp | ||||||
|  |  ``` | ||||||
|  |  | ||||||
| DOMAIN=matomo.example.com | Depending on whether you defined any extra environment variables -- we didn't so | ||||||
| LETS_ENCRYPT_ENV=production | far, in this example -- you might want to run `abra app mygreatapp config` to | ||||||
|  | check the configuration. | ||||||
|  |  | ||||||
| SECRET_DB_PASSWORD_VERSION=v1 | Otherwise, or once you've done that, go ahead and deploy the app: | ||||||
| SECRET_DB_ROOT_PASSWORD_VERSION=v1 |  | ||||||
|  | ``` | ||||||
|  | abra app mygreatapp deploy | ||||||
| ``` | ``` | ||||||
|  |  | ||||||
| Then, open the `DOMAIN` you configured (you might need to wait a while for Traefik to generate SSL certificates) to finish the set-up. Luckily, this container is (mostly) configurable via environment variables -- if we want to auto-generate the configuration we can use a `config` and / or a custom `entrypoint` (see [`coop-cloud/mediawiki`](https://git.autonomic.zone/coop-cloud/mediawiki) for examples of both). | Then, open the `DOMAIN` you configured (you might need to wait a while for Traefik to generate SSL certificates) to finish the set-up. Luckily, this container is (mostly) configurable via environment variables -- if we want to auto-generate the configuration we can use a `config` and / or a custom `entrypoint` (see [`coop-cloud/mediawiki`](https://git.autonomic.zone/coop-cloud/mediawiki) for examples of both). | ||||||
|  | |||||||
		Reference in New Issue
	
	Block a user