Unverified Commit 36d866f2 authored by Tom Moulard's avatar Tom Moulard Committed by GitHub
Browse files

feat: take advantage of the new 'include' element of docker compose to remove...

feat: take advantage of the new 'include' element of docker compose to remove the use of the bash function (#41)
parent 4fbe4944
Loading
Loading
Loading
Loading
+17 −14
Original line number Diff line number Diff line
@@ -10,6 +10,9 @@ jobs:
  Config-test:
    runs-on: 'ubuntu-latest'
    steps:
      - uses: 'KengoTODA/actions-setup-docker-compose@v1'
        with:
          version: '2.20.2'
      - uses: 'actions/checkout@v3'
      - name: 'DEBUG'
        run: 'docker version && docker compose version'
@@ -23,63 +26,63 @@ jobs:
            log.log
            *.patch
  Health-checks-codimd:
    uses: 'tomMoulard/make-my-server/.github/workflows/healthcheck.workflow.tmpl.yml@master'
    uses: 'tomMoulard/make-my-server/.github/workflows/healthcheck.workflow.tmpl.yml@feat/compose-v2.20'
    with:
      service_name: 'codimd'
      timeout-minutes: 5
# Health-checks-grafana:
#   uses: 'tomMoulard/make-my-server/.github/workflows/healthcheck.workflow.tmpl.yml@master'
#   uses: 'tomMoulard/make-my-server/.github/workflows/healthcheck.workflow.tmpl.yml@feat/compose-v2.20'
#   with:
#     sus: 'mkdir -p ./grafana/grafana/ ./grafana/prometheus/data/'
#     service_name: 'grafana'
# Health-checks-hits:
#   uses: 'tomMoulard/make-my-server/.github/workflows/healthcheck.workflow.tmpl.yml@master'
#   uses: 'tomMoulard/make-my-server/.github/workflows/healthcheck.workflow.tmpl.yml@feat/compose-v2.20'
#   with:
#     sus: 'mkdir -p ./hits/postgresql/data'
#     service_name: 'hits'
# Health-checks-hugo:
#   uses: 'tomMoulard/make-my-server/.github/workflows/healthcheck.workflow.tmpl.yml@master'
#   uses: 'tomMoulard/make-my-server/.github/workflows/healthcheck.workflow.tmpl.yml@feat/compose-v2.20'
#   with:
#     service_name: 'hugo'
  Health-checks-jackett:
    uses: 'tomMoulard/make-my-server/.github/workflows/healthcheck.workflow.tmpl.yml@master'
    uses: 'tomMoulard/make-my-server/.github/workflows/healthcheck.workflow.tmpl.yml@feat/compose-v2.20'
    with:
      service_name: 'jackett'
# Health-checks-mastodon:
#   uses: 'tomMoulard/make-my-server/.github/workflows/healthcheck.workflow.tmpl.yml@master'
#   uses: 'tomMoulard/make-my-server/.github/workflows/healthcheck.workflow.tmpl.yml@feat/compose-v2.20'
#   with:
#     service_name: 'mastodon'
  Health-checks-nextcloud:
    uses: 'tomMoulard/make-my-server/.github/workflows/healthcheck.workflow.tmpl.yml@master'
    uses: 'tomMoulard/make-my-server/.github/workflows/healthcheck.workflow.tmpl.yml@feat/compose-v2.20'
    with:
      service_name: 'nextcloud'
  Health-checks-nginx:
    uses: 'tomMoulard/make-my-server/.github/workflows/healthcheck.workflow.tmpl.yml@master'
    uses: 'tomMoulard/make-my-server/.github/workflows/healthcheck.workflow.tmpl.yml@feat/compose-v2.20'
    with:
      service_name: 'nginx'
  Health-checks-searxng:
    uses: 'tomMoulard/make-my-server/.github/workflows/healthcheck.workflow.tmpl.yml@master'
    uses: 'tomMoulard/make-my-server/.github/workflows/healthcheck.workflow.tmpl.yml@feat/compose-v2.20'
    with:
      service_name: 'searxng'
  Health-checks-sharelatex:
    uses: 'tomMoulard/make-my-server/.github/workflows/healthcheck.workflow.tmpl.yml@master'
    uses: 'tomMoulard/make-my-server/.github/workflows/healthcheck.workflow.tmpl.yml@feat/compose-v2.20'
    with:
      service_name: 'sharelatex'
  Health-checks-streama:
    uses: 'tomMoulard/make-my-server/.github/workflows/healthcheck.workflow.tmpl.yml@master'
    uses: 'tomMoulard/make-my-server/.github/workflows/healthcheck.workflow.tmpl.yml@feat/compose-v2.20'
    with:
      sus: 'touch streama/streama.mv.db streama/streama.trace.db'
      service_name: 'streama'
  Health-checks-traefik:
    uses: 'tomMoulard/make-my-server/.github/workflows/healthcheck.workflow.tmpl.yml@master'
    uses: 'tomMoulard/make-my-server/.github/workflows/healthcheck.workflow.tmpl.yml@feat/compose-v2.20'
    with:
      service_name: 'traefik'
  Health-checks-transmission:
    uses: 'tomMoulard/make-my-server/.github/workflows/healthcheck.workflow.tmpl.yml@master'
    uses: 'tomMoulard/make-my-server/.github/workflows/healthcheck.workflow.tmpl.yml@feat/compose-v2.20'
    with:
      service_name: 'transmission'
  Health-checks-wordpress:
    uses: 'tomMoulard/make-my-server/.github/workflows/healthcheck.workflow.tmpl.yml@master'
    uses: 'tomMoulard/make-my-server/.github/workflows/healthcheck.workflow.tmpl.yml@feat/compose-v2.20'
    with:
      service_name: 'wordpress'
  Lint:
+14 −7
Original line number Diff line number Diff line
@@ -20,6 +20,9 @@ jobs:
    runs-on: 'ubuntu-latest'
    steps:
      - uses: 'actions/checkout@v3'
      - uses: 'KengoTODA/actions-setup-docker-compose@v1'
        with:
          version: '2.20.2'
      - name: 'Caching'
        uses: 'actions/cache@v3'
        with:
@@ -31,20 +34,24 @@ jobs:
          ${{ inputs.sus }}
      - name: 'Starting the docker-compose stack'
        run: |
          docker-compose -f docker-compose.yml -f ${{inputs.service_name}}/docker-compose.${{inputs.service_name}}.yml up -d
          echo -e "USERS=runner\nUSERNAME=octocat" > .env
          docker-compose up -d ${{inputs.service_name}}
      - name: 'Waiting for running containers'
        timeout-minutes: '${{ inputs.timeout-minutes }}'
        run: |
          while :; do
            echo "sleeping for 5s"
            sleep 5s;
            docker-compose -f docker-compose.yml -f ${{inputs.service_name}}/docker-compose.${{inputs.service_name}}.yml ps | grep "starting" || exit 0
            docker-compose ps ${{inputs.service_name}} | grep "starting" || exit 0
          done
      - name: 'Check health'
      - name: 'Checking containers health'
        run: |
          docker-compose ps ${{inputs.service_name}} | grep "healthy"
      - name: 'Checking for unattended volumes'
        run: |
          docker-compose -f docker-compose.yml -f ${{inputs.service_name}}/docker-compose.${{inputs.service_name}}.yml ps | grep "Up (healthy)"
      - name: 'Export logs'
          git diff --exit-code .
      - name: 'Exporting logs'
        if: '${{ failure() }}'
        run: |
          docker-compose -f docker-compose.yml -f ${{inputs.service_name}}/docker-compose.${{inputs.service_name}}.yml ps
          docker-compose -f docker-compose.yml -f ${{inputs.service_name}}/docker-compose.${{inputs.service_name}}.yml logs
          docker-compose ps ${{inputs.service_name}}
          docker-compose logs ${{inputs.service_name}}
+12 −4
Original line number Diff line number Diff line
# Server configuration
[![Docker](https://github.com/tomMoulard/make-my-server/workflows/Docker/badge.svg)](https://github.com/tomMoulard/make-my-server/actions)
[![Discord](https://img.shields.io/discord/861623516142501898)](https://discord.gg/zQV6m9Jk6Z)

Your (my) own server configuration, managed by docker-compose, with
comprehensive default configuration.

## Setup
IF you are using [docker compose version <2.20](https://docs.docker.com/compose/multiple-compose-files/include/),
you need to use the following bash command to use this project:
```bash
docker-compose ()
{
    docker-compose $(find -name 'docker-compose*.yml' -type f -printf '%p\t%d\n'  2>/dev/null | sort -n -k2 | cut -f 1 | awk '{print "-f "$0}') $@
    docker-compose $(find -name 'docker-compose.*.yml' -type f -printf '%p\t%d\n'  2>/dev/null | sort -n -k2 | cut -f 1 | awk '{print "-f "$0}') $@
}
```

### Run
```bash
SITE=tom.moulard.org docker-compose up -d
```

Now you have my own server configuration.
Now you have your own server configuration.

To be a little more consistent with the management, you can use a `.env` file
and do:
@@ -19,7 +27,7 @@ and do:
cp .env.default .env
```

And edit the file to use the correct site URL.
And edit the `.env` file to use the correct configuration.

The `docker-compose` function gather all docker-compose files in order to have
the whole configuration in one place (see `docker-compose config`).
+3 −3
Original line number Diff line number Diff line
@@ -20,6 +20,6 @@ services:
      - 'srv'
    restart: 'always'
    volumes:
      - './bazarr/config:/config'
      - './bazarr/movies:/movies'
      - './bazarr/tv:/tv'
      - './config:/config'
      - './movies:/movies'
      - './tv:/tv'
+1 −1
Original line number Diff line number Diff line
@@ -28,4 +28,4 @@ services:
    restart: 'always'
    user: 'nobody'
    volumes:
      - './bitwarden/data:/data'
      - './data:/data'
Loading