version: "3"

services:
  clickhouse:
    image: clickhouse/clickhouse-server:22.7
    restart: on-failure
    environment:
      CLICKHOUSE_DB: uptrace
    healthcheck:
      test: ["CMD", "wget", "--spider", "-q", "localhost:8123/ping"]
      interval: 1s
      timeout: 1s
      retries: 30
    volumes:
      - ch_data:/var/lib/clickhouse
    ports:
      - "8123:8123"
      - "9000:9000"

  uptrace:
    image: "uptrace/uptrace:1.2.0"
    #image: 'uptrace/uptrace-dev:latest'
    restart: on-failure
    volumes:
      - uptrace_data:/var/lib/uptrace
      - ./uptrace.yml:/etc/uptrace/uptrace.yml
    #environment:
    #  - DEBUG=2
    ports:
      - "14317:14317"
      - "14318:14318"
    depends_on:
      clickhouse:
        condition: service_healthy

  otel-collector:
    image: otel/opentelemetry-collector-contrib:0.58.0
    restart: on-failure
    volumes:
      - ./config/otel-collector.yaml:/etc/otelcol-contrib/config.yaml
    ports:
      - "4317:4317"
      - "4318:4318"

  vector:
    image: timberio/vector:0.24.X-alpine
    volumes:
      - ./config/vector.toml:/etc/vector/vector.toml:ro

  alertmanager:
    image: prom/alertmanager:v0.24.0
    restart: on-failure
    volumes:
      - ./config/alertmanager.yml:/etc/alertmanager/config.yml
      - alertmanager_data:/alertmanager
    ports:
      - 9093:9093
    command:
      - "--config.file=/etc/alertmanager/config.yml"
      - "--storage.path=/alertmanager"

  mailhog:
    image: mailhog/mailhog:v1.0.1
    restart: on-failure
    ports:
      - "8025:8025"

  redis-server:
    image: redis
    ports:
      - "6379:6379"
  redis-cli:
    image: redis

volumes:
  uptrace_data:
    driver: local
  ch_data:
    driver: local
  alertmanager_data:
    driver: local
