Ctrl K
ComunidadGuías…

docker-compose.yml

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
name: hdx-oss
services:
  # ONLY USED FOR DEMO SSL SETUP
  # nginx:
  #   image: nginx:1.27.3
  #   volumes:
  #     - ./docker/nginx/nginx.conf:/etc/nginx/nginx.conf
  #     - ./docker/nginx/ssl:/etc/nginx/ssl
  #     - .volumes/nginx_logs:/var/log/nginx
  #   ports:
  #     - 80:80
  #     - 443:443
  #   networks:
  #     - internal
  #   depends_on:
  #     - app
  db:
    image: mongo:5.0.32-focal
    volumes:
      - .volumes/db:/data/db
    # WARNING: Exposing the database port will make it accessible from outside the container,
    # potentially allowing unauthorized access. If you uncomment the ports below,
    # ensure to secure your database (e.g., with strong authentication, proper network rules, and firewalls).
    # ports:
    #   - 27017:27017
    networks:
      - internal
  otel-collector:
    image: ${CH_IMAGE_REPO}/${NEXT_OTEL_COLLECTOR_IMAGE_NAME_DOCKERHUB}:${IMAGE_VERSION}
    environment:
      CLICKHOUSE_ENDPOINT: 'tcp://ch-server:9000?dial_timeout=10s'
      HYPERDX_OTEL_EXPORTER_CLICKHOUSE_DATABASE: ${HYPERDX_OTEL_EXPORTER_CLICKHOUSE_DATABASE}
      HYPERDX_LOG_LEVEL: ${HYPERDX_LOG_LEVEL}
      OPAMP_SERVER_URL: 'http://app:${HYPERDX_OPAMP_PORT}'
      # TODO: use new schema
      HYPERDX_OTEL_EXPORTER_CREATE_LEGACY_SCHEMA: 'true'
      # Uncomment to enable PromQL schema (must match app service's ENABLE_PROMQL)
      # ENABLE_PROMQL: 'true'
    ports:
      - '13133:13133' # health_check extension
      - '24225:24225' # fluentd receiver
      - '4317:4317' # OTLP gRPC receiver
      - '4318:4318' # OTLP http receiver
      - '8888:8888' # metrics extension
      # Uncomment to enable statsd ingestion (also requires adding the
      # `statsd` receiver to a pipeline via CUSTOM_OTELCOL_CONFIG_FILE - see
      # packages/otel-collector/README.md). Left commented out by default:
      # a fixed host port mapping fails the whole service's startup if
      # something else on the host (e.g. a local StatsD daemon or Datadog
      # Agent) already owns 8125/udp, which would otherwise break the
      # default stack for anyone not using this feature.
      # - '8125:8125/udp' # statsd receiver
    restart: always
    networks:
      - internal
    depends_on:
      - ch-server
  app:
    image: ${CH_IMAGE_REPO}/${NEXT_IMAGE_NAME_DOCKERHUB}:${IMAGE_VERSION}
    ports:
      - ${HYPERDX_API_PORT}:${HYPERDX_API_PORT}
      - ${HYPERDX_APP_PORT}:${HYPERDX_APP_PORT}
    environment:
      FRONTEND_URL: ${HYPERDX_APP_URL}:${HYPERDX_APP_PORT}
      HYPERDX_API_KEY: ${HYPERDX_API_KEY}
      HYPERDX_API_PORT: ${HYPERDX_API_PORT}
      HYPERDX_APP_PORT: ${HYPERDX_APP_PORT}
      HYPERDX_APP_URL: ${HYPERDX_APP_URL}
      HYPERDX_LOG_LEVEL: ${HYPERDX_LOG_LEVEL}
      MONGO_URI: 'mongodb://db:27017/hyperdx'
      SERVER_URL: http://127.0.0.1:${HYPERDX_API_PORT}
      OPAMP_PORT: ${HYPERDX_OPAMP_PORT}
      OTEL_EXPORTER_OTLP_ENDPOINT: 'http://otel-collector:4318'
      # Per-signal OTLP endpoints (override OTEL_EXPORTER_OTLP_ENDPOINT for individual signals)
      # OTEL_EXPORTER_OTLP_TRACES_ENDPOINT: 'http://otel-collector:4318/v1/traces'
      # OTEL_EXPORTER_OTLP_METRICS_ENDPOINT: 'http://otel-collector:4318/v1/metrics'
      # OTEL_EXPORTER_OTLP_LOGS_ENDPOINT: 'http://otel-collector:4318/v1/logs'
      OTEL_SERVICE_NAME: 'hdx-oss-app'
      USAGE_STATS_ENABLED: ${USAGE_STATS_ENABLED:-true}
      # Comma-separated hostnames or exact IP literals that may receive webhooks.
      WEBHOOK_HOSTNAME_ALLOWLIST: ${WEBHOOK_HOSTNAME_ALLOWLIST:-}
      # 32-byte base64 or hex key. Setting it encrypts stored Slack and OAuth
      # tokens; unset means they are stored in plain text.
      TOKEN_ENCRYPTION_KEY: ${TOKEN_ENCRYPTION_KEY:-}
      EXPRESS_SESSION_SECRET: ${EXPRESS_SESSION_SECRET:-}
      # Uncomment the next two lines to enable PromQL (Prometheus-compatible metrics)
      # ENABLE_PROMQL: 'true'
      # NEXT_PUBLIC_ENABLE_PROMQL: 'true'
      # Uncomment to enable the alert detail page (in development)
      # NEXT_PUBLIC_ENABLE_ALERT_DETAILS: 'true'
      # Uncomment and set to append a label to the browser tab title, e.g.
      # for operators running multiple instances (produces "HyperDX UK")
      # NEXT_PUBLIC_INSTANCE_LABEL: 'UK'
      DEFAULT_CONNECTIONS:
        '[{"name":"Local
        ClickHouse","host":"http://ch-server:8123","username":"default","password":""}]'
      DEFAULT_SOURCES:
        '[{"from":{"databaseName":"default","tableName":"otel_logs"},"kind":"log","timestampValueExpression":"Timestamp","name":"Logs","displayedTimestampValueExpression":"Timestamp","implicitColumnExpression":"Body","serviceNameExpression":"ServiceName","bodyExpression":"Body","eventAttributesExpression":"LogAttributes","resourceAttributesExpression":"ResourceAttributes","defaultTableSelectExpression":"Timestamp,ServiceName,SeverityText,Body","severityTextExpression":"SeverityText","severityNumberExpression":"SeverityNumber","eventNameExpression":"EventName","traceIdExpression":"TraceId","spanIdExpression":"SpanId","metadataMaterializedViews":{"kvRollupTable":"otel_logs_kv_rollup_15m","granularity":"15
        minute"},"connection":"Local
        ClickHouse","traceSourceId":"Traces","metricSourceId":"Metrics"},{"from":{"databaseName":"default","tableName":"otel_traces"},"kind":"trace","timestampValueExpression":"Timestamp","name":"Traces","displayedTimestampValueExpression":"Timestamp","implicitColumnExpression":"SpanName","serviceNameExpression":"ServiceName","eventAttributesExpression":"SpanAttributes","resourceAttributesExpression":"ResourceAttributes","defaultTableSelectExpression":"Timestamp,ServiceName,StatusCode,round(Duration/1e6),SpanName","traceIdExpression":"TraceId","spanIdExpression":"SpanId","durationExpression":"Duration","durationPrecision":9,"parentSpanIdExpression":"ParentSpanId","spanNameExpression":"SpanName","spanKindExpression":"SpanKind","statusCodeExpression":"StatusCode","statusMessageExpression":"StatusMessage","spanEventsValueExpression":"Events","spanLinksValueExpression":"Links","metadataMaterializedViews":{"kvRollupTable":"otel_traces_kv_rollup_15m","granularity":"15
        minute"},"connection":"Local
        ClickHouse","logSourceId":"Logs","sessionSourceId":"Sessions","metricSourceId":"Metrics"},{"from":{"databaseName":"default","tableName":""},"kind":"metric","timestampValueExpression":"TimeUnix","name":"Metrics","resourceAttributesExpression":"ResourceAttributes","metricTables":{"gauge":"otel_metrics_gauge","histogram":"otel_metrics_histogram","sum":"otel_metrics_sum","summary":"otel_metrics_summary","exponential
        histogram":"otel_metrics_exponential_histogram"},"connection":"Local
        ClickHouse","logSourceId":"Logs"},{"from":{"databaseName":"default","tableName":"hyperdx_sessions"},"kind":"session","timestampValueExpression":"TimestampTime","name":"Sessions","resourceAttributesExpression":"ResourceAttributes","connection":"Local
        ClickHouse","traceSourceId":"Traces"}]'
    networks:
      - internal
    depends_on:
      - ch-server
      - db
  ch-server:
    image: clickhouse/clickhouse-server:26.8.36.3-alpine
    # WARNING: Exposing the database port will make it accessible from outside the container,
    # potentially allowing unauthorized access. If you uncomment the ports below,
    # ensure to secure your database (e.g., with strong authentication, proper network rules, and firewalls).
    # ports:
    #   - 8123:8123 # http api
    #   - 9000:9000 # native
    environment:
      # default settings
      CLICKHOUSE_DEFAULT_ACCESS_MANAGEMENT: 1
    volumes:
      - ./docker/clickhouse/local/config.xml:/etc/clickhouse-server/config.xml
      - ./docker/clickhouse/local/users.xml:/etc/clickhouse-server/users.xml
      - .volumes/ch_data:/var/lib/clickhouse
      - .volumes/ch_logs:/var/log/clickhouse-server
    restart: on-failure
    networks:
      - internal
networks:
  internal: