hyperdx/docker-compose.yml

109 lines
3.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
# 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
db:
image: mongo:5.0.14-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: ${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
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'
USAGE_STATS_ENABLED: ${USAGE_STATS_ENABLED:-true}
networks:
- internal
depends_on:
- ch-server
- db
ch-server:
image: clickhouse/clickhouse-server:24-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: