version: '3.1'

services:

  tracker:
    image: humanmade/accelerate-tracker:latest
    ports:
      - 3399:3000
    environment:
      PINPOINT_ENDPOINT: http://pinpoint:3000
      ACCESS_KEY: admin
      SECRET_KEY: password
      CLICKHOUSE_HOST: clickhouse
      DO_CLICKHOUSE: true

  pinpoint:
    image: 'humanmade/local-pinpoint:1.3.0'
    ports:
      - 3333:3000
    environment:
      INDEX_ROTATION: OneDay

  elasticsearch:
    image: humanmade/altis-local-server-elasticsearch:4.1.0
    ulimits:
      memlock:
        soft: -1
        hard: -1
    mem_limit: 1g
    volumes:
      - es:/usr/share/elasticsearch/data
    ports:
      - 9220:9200
    healthcheck:
      test:
        - CMD-SHELL
        - 'curl --silent --fail localhost:9200/_cluster/health || exit 1'
      interval: 5s
      timeout: 5s
      retries: 25
    environment:
      - http.max_content_length=10mb
      - discovery.type=single-node
      - 'ES_JAVA_OPTS=-Xms512m -Xmx1g'

  kibana:
    image: humanmade/altis-local-server-kibana:1.1.1
    ports:
      - '5601:5601'
    depends_on:
      elasticsearch:
        condition: service_healthy
    volumes:
      - ./kibana-7.yml:/usr/share/kibana/config/kibana.yml

  clickhouse:
    image: clickhouse/clickhouse-server
    ulimits:
      nofile:
        soft: 262144
        hard: 262144
    ports:
      - '9020:9000'
      - '8123:8123'
    volumes:
      - ch:/var/lib/clickhouse
      - ./.setup:/.setup

  grafana:
    image: grafana/grafana-enterprise
    ports:
      - '3600:3000'
    volumes:
      - grafana:/var/lib/grafana
    environment:
      - GF_INSTALL_PLUGINS=grafana-clickhouse-datasource

volumes:
  es:
  ch:
  grafana:
