hyperdx/docker-compose.yml

153 lines
4.6 KiB
YAML

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
# go-parser:
# image: ${IMAGE_NAME_HDX}:${IMAGE_VERSION}-go-parser
# environment:
# AGGREGATOR_API_URL: 'http://aggregator:8001'
# HYPERDX_API_KEY: ${HYPERDX_API_KEY}
# HYPERDX_LOG_LEVEL: ${HYPERDX_LOG_LEVEL}
# OTEL_EXPORTER_OTLP_ENDPOINT: http://otel-collector:4318
# OTEL_LOG_LEVEL: ${HYPERDX_LOG_LEVEL}
# OTEL_SERVICE_NAME: hdx-oss-go-parser
# PORT: 7777
# ports:
# - 7777:7777
# networks:
# - internal
# miner:
# image: ${IMAGE_NAME_HDX}:${IMAGE_VERSION}-miner
# environment:
# HYPERDX_API_KEY: ${HYPERDX_API_KEY}
# HYPERDX_ENABLE_ADVANCED_NETWORK_CAPTURE: 1
# HYPERDX_LOG_LEVEL: ${HYPERDX_LOG_LEVEL}
# OTEL_EXPORTER_OTLP_ENDPOINT: http://otel-collector:4318
# OTEL_LOG_LEVEL: ${HYPERDX_LOG_LEVEL}
# OTEL_SERVICE_NAME: hdx-oss-miner
# ports:
# - 5123:5123
# networks:
# - internal
# hostmetrics:
# image: ${IMAGE_NAME_HDX}:${IMAGE_VERSION}-hostmetrics
# environment:
# HYPERDX_API_KEY: ${HYPERDX_API_KEY}
# HYPERDX_LOG_LEVEL: ${HYPERDX_LOG_LEVEL}
# OTEL_SERVICE_NAME: hostmetrics
# restart: always
# networks:
# - internal
redis:
image: redis:7.0.11-alpine
volumes:
- .volumes/redis:/data
ports:
- 6379:6379
networks:
- internal
db:
image: mongo:5.0.14-focal
volumes:
- .volumes/db:/data/db
ports:
- 27017:27017
networks:
- internal
otel-collector:
image: ${OTEL_COLLECTOR_IMAGE_NAME}:${IMAGE_VERSION}
environment:
CLICKHOUSE_SERVER_ENDPOINT: 'ch-server:9000'
HYPERDX_LOG_LEVEL: ${HYPERDX_LOG_LEVEL}
ports:
- '13133:13133' # health_check extension
- '24225:24225' # fluentd receiver
- '4317:4317' # OTLP gRPC receiver
- '4318:4318' # OTLP http receiver
- '8888:8888' # metrics extension
restart: always
networks:
- internal
depends_on:
- ch-server
# task-check-alerts:
# image: ${IMAGE_NAME_HDX}:${IMAGE_VERSION}-app
# entrypoint: 'node'
# command: './build/tasks/index.js check-alerts'
# environment:
# APP_TYPE: 'scheduled-task'
# CLICKHOUSE_LOG_LEVEL: ${HYPERDX_LOG_LEVEL}
# EXPRESS_SESSION_SECRET: 'hyperdx is cool 👋'
# FRONTEND_URL: ${HYPERDX_APP_URL}:${HYPERDX_APP_PORT} # need to be localhost (CORS)
# HDX_NODE_ADVANCED_NETWORK_CAPTURE: 1
# HDX_NODE_BETA_MODE: 0
# HDX_NODE_CONSOLE_CAPTURE: 1
# HYPERDX_API_KEY: ${HYPERDX_API_KEY}
# HYPERDX_LOG_LEVEL: ${HYPERDX_LOG_LEVEL}
# MINER_API_URL: 'http://miner:5123'
# MONGO_URI: 'mongodb://db:27017/hyperdx'
# NODE_ENV: development
# OTEL_EXPORTER_OTLP_ENDPOINT: 'http://otel-collector:4318'
# OTEL_SERVICE_NAME: 'hdx-oss-task-check-alerts'
# REDIS_URL: redis://redis:6379
# restart: always
# networks:
# - internal
# depends_on:
# - ch-server
# - db
# - redis
app:
image: ${IMAGE_NAME_HDX}:${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}
MINER_API_URL: 'http://miner:5123'
MONGO_URI: 'mongodb://db:27017/hyperdx'
NEXT_PUBLIC_SERVER_URL: http://127.0.0.1:${HYPERDX_API_PORT}
OTEL_SERVICE_NAME: 'hdx-oss-api'
REDIS_URL: redis://redis:6379
USAGE_STATS_ENABLED: ${USAGE_STATS_ENABLED:-true}
networks:
- internal
depends_on:
- ch-server
- db
- redis
ch-server:
image: clickhouse/clickhouse-server:24-alpine
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: