From fe9f0d872097e3222502754db39d0371ff887b24 Mon Sep 17 00:00:00 2001 From: 3wc <3wc@doesthisthing.work> Date: Sat, 24 Jul 2021 22:23:02 +0200 Subject: [PATCH] Update packager guide --- docs/packager-guide.md | 42 ++++++++++++++++++++++++++++++++++-------- 1 file changed, 34 insertions(+), 8 deletions(-) diff --git a/docs/packager-guide.md b/docs/packager-guide.md index 256faf6b3..084b8f4f2 100644 --- a/docs/packager-guide.md +++ b/docs/packager-guide.md @@ -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).