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/). | ||||
|  | ||||
| We'll be making a Docker "swarm-mode" `compose.yml` file. | ||||
|  | ||||
| - Tired: Write your own image and compose file | ||||
| - Wired: Use someone else's image (& maybe compose file) | ||||
| - Inspired: Upstream image, someone else's 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 | ||||
| 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 | ||||
| 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). | ||||
|  | ||||
| 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 | ||||
| LETS_ENCRYPT_ENV=production | ||||
| Depending on whether you defined any extra environment variables -- we didn't so | ||||
| far, in this example -- you might want to run `abra app mygreatapp config` to | ||||
| check the configuration. | ||||
|  | ||||
| SECRET_DB_PASSWORD_VERSION=v1 | ||||
| SECRET_DB_ROOT_PASSWORD_VERSION=v1 | ||||
| Otherwise, or once you've done that, go ahead and deploy the app: | ||||
|  | ||||
| ``` | ||||
| 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). | ||||
|  | ||||
		Reference in New Issue
	
	Block a user