version: '3.5'

networks:

  traefik_net:
    name: traefik_net

services:

  traefik:
    container_name: traefik
    # image: traefik:<stable version from https://hub.docker.com/_/traefik>
    image: traefik:v1.7-alpine
    restart: always
    command:
      - "--debug=false"
      - "--logLevel=info"
      - "--defaultentrypoints=http,https"
      - "--entrypoints=Name:http Address::80 Redirect.EntryPoint:https"
      - "--entrypoints=Name:https Address::443 TLS"

      - "--traefikLog.filePath=/var/log/traefik.log"
      - "--accessLog.filePath=/var/log/access.log"


      - "--docker"
      - "--docker.endpoint=unix:///var/run/docker.sock"
      # - "--docker.domain=mydomain.ca"
      - "--docker.watch"
      - "--docker.exposedByDefault=false"

      - "--acme"
      - "--acme.email=webmaster@ogilvy.it"
      - "--acme.storage=/acme.json"
      - "--acme.entryPoint=https"
      - "--acme.onDemand=false"
      - "--acme.onHostRule=true"
      - "--acme.httpChallenge.entryPoint=http"

      - "--api"

    networks:
      - traefik_net
    ports:
      - '80:80'
      - '443:443'
    volumes:
      - '/var/run/docker.sock:/var/run/docker.sock'
    #  - '${SYSTEM_CONFIG_FOLDER}/traefik/traefik.toml:/traefik.toml'
      - '${SYSTEM_CONFIG_FOLDER}/traefik/acme.json:/acme.json'
      - '${SYSTEM_LOG_FOLDER}/traefik:/var/log'
    labels:
      - 'traefik.enable=true'
      - 'traefik.backend=traefik'
      - 'traefik.port=8080'
      - 'traefik.frontend.rule=Host:traefik.${SYSTEM_DOMAIN}'

  portainer:
    container_name: portainer
    image: portainer/portainer
    restart: always
    networks:
      - traefik_net
    volumes:
      - '/var/run/docker.sock:/var/run/docker.sock'
      - '${SYSTEM_CONFIG_FOLDER}/portainer:/data'
    depends_on:
      - traefik
    labels:
      - 'traefik.enable=true'
      - 'traefik.backend=portainer'
      - 'traefik.port=9000'
      - 'traefik.frontend.rule=Host:portainer.${SYSTEM_DOMAIN}'
      - 'traefik.docker.network=traefik_net'

  webhook:
    container_name: webhook
    image: hoitalia/webhook
    restart: always
    networks:
      - traefik_net
    command: -hotreload -verbose -hooks=/webhook/hooks.json
    volumes:
      # - /var/run/docker.sock:/var/run/docker.sock      
      # - '${SYSTEM_LOG_FOLDER}:/opt/aral/volumes'
      - '${SYSTEM_CONFIG_FOLDER}/webhook:/webhook'
      - ~/.ssh:/root/.ssh
    depends_on: 
      - traefik
    labels:
      - 'traefik.enable=true'
      - 'traefik.backend=webhook'
      - 'traefik.port=9000'
      - 'traefik.frontend.rule=Host:webhook.${SYSTEM_DOMAIN}'
      - 'traefik.docker.network=traefik_net'
