version: '3'
services:
  traefik:
    image: traefik:latest
    container_name: traefik # название не обязательно
    env_file:
      - ./.env
    environment:
      - PAITS_HTTP_HEADER=paits.26.6
    logging:
      driver: json-file
      options:
        max-size: "50m" #Один файл 50 МБ, максимум 10 файла. Итого до 500 МБ на контейнер. Старые файлы удаляются автоматически
        max-file: "10"
    deploy:
      resources:
        limits:
          memory: 1024M #Если контейнер превысит лимит памяти, Docker убьёт его сам
    restart: unless-stopped #лучше, чем always >>  перезапускает при любом падении, кроме когда вы остановили контейнер руками
    security_opt:
      - no-new-privileges:true
    ports:
      #- "80:80"
      - target: 80 # container PORT
        published: "80" # PUBLIC
        protocol: tcp
        mode: host
      #- "443:443"
      - target: 443 # container PORT
        published: "443" # PUBLIC
        protocol: tcp
        mode: host
      #- "8888:8888"
      - target: 8888 # container PORT
        published: "8888" # PUBLIC
        protocol: tcp
        mode: host
    volumes: # директории прокинутые в контейнер
      - /var/run/docker.sock:/var/run/docker.sock  # отслеживать все подключения/отключения контейнеров
      - ./:/etc/traefik
  whoami:
    image: traefik/whoami
    container_name: whoami
    command:
      - --port=88
    ports:
      #- "88:80"
      - target: 88 # container PORT
        #published: "88" # NO-PUBLIC
        protocol: tcp
        mode: host
    restart: unless-stopped
  goaccess:
    image: allinurl/goaccess:latest
    container_name: goaccess
    restart: "unless-stopped" # "no"
    volumes:
      - ./geolite2-city-ipv4.csv:/etc/goaccess/geolite2-city-ipv4.csv:ro
      - ./report.html:/etc/goaccess/report.html
      - ./goaccess.cnf:/etc/goaccess/goaccess.cnf:ro
      - ./trfk-acc.log:/etc/goaccess/trfk-acc.log:ro
      - ./browsers.list:/etc/goaccess/browsers.list:ro
      - ./podcast.list:/etc/goaccess/podcast.list:ro
    environment:
      - TZ=UTC
    command: ["--no-global-config", "--config-file=/etc/goaccess/goaccess.cnf"]
