99 lines
3.6 KiB
Django/Jinja
99 lines
3.6 KiB
Django/Jinja
version: '3.9'
|
|
|
|
services:
|
|
db:
|
|
image: mongo:5.0.14-focal
|
|
volumes:
|
|
- "{{ data_dir }}/mongo:/data/db"
|
|
networks:
|
|
- internal
|
|
deploy:
|
|
mode: replicated
|
|
replicas: 1
|
|
# placement:
|
|
# constraints: [node.role == worker] # DBs besser auf Workern lassen wenn möglich
|
|
|
|
otel-collector:
|
|
image: "clickhouse/clickstack-otel-collector:2"
|
|
environment:
|
|
CLICKHOUSE_ENDPOINT: 'tcp://ch-server:9000?dial_timeout=10s'
|
|
HYPERDX_OTEL_EXPORTER_CLICKHOUSE_DATABASE: "default"
|
|
HYPERDX_LOG_LEVEL: "{{ hyperdx_log_level | default('info') }}"
|
|
OPAMP_SERVER_URL: 'http://app:{{ hyperdx_opamp_port | default(4320) }}'
|
|
ports:
|
|
- "4317:4317" # OTLP gRPC
|
|
- "4318:4318" # OTLP HTTP
|
|
# - "8888:8888" # Metrics (optional)
|
|
networks:
|
|
- internal
|
|
- shared-observability
|
|
- traefik_public
|
|
deploy:
|
|
mode: replicated
|
|
replicas: 3
|
|
labels:
|
|
- "traefik.enable=true"
|
|
- "traefik.docker.network=traefik_public"
|
|
- "traefik.http.routers.otel-collector.rule=Host(`{{ otlp_domain }}`)"
|
|
- "traefik.http.routers.otel-collector.entrypoints=https"
|
|
- "traefik.http.routers.otel-collector.tls.certresolver=main"
|
|
- "traefik.http.services.otel-collector.loadbalancer.server.port=4318"
|
|
|
|
app:
|
|
image: "hyperdx/hyperdx:2"
|
|
environment:
|
|
# URLs anpassen für Traefik Erreichbarkeit
|
|
FRONTEND_URL: "https://{{ hdx_domain }}"
|
|
HYPERDX_APP_URL: "https://{{ hdx_domain }}"
|
|
|
|
HYPERDX_API_KEY: "{{ hyperdx_api_key }}"
|
|
HYPERDX_API_PORT: "{{ hyperdx_api_port | default(8000) }}"
|
|
HYPERDX_APP_PORT: "{{ hyperdx_app_port | default(8080) }}"
|
|
HYPERDX_LOG_LEVEL: "{{ hyperdx_log_level | default('info') }}"
|
|
MINER_API_URL: 'http://miner:5123' # Falls miner benötigt wird (in original compose nicht definiert?)
|
|
MONGO_URI: 'mongodb://db:27017/hyperdx'
|
|
SERVER_URL: "http://127.0.0.1:{{ hyperdx_api_port | default(8000) }}"
|
|
OPAMP_PORT: "{{ hyperdx_opamp_port | default(4320) }}"
|
|
OTEL_EXPORTER_OTLP_ENDPOINT: 'http://otel-collector:4318'
|
|
OTEL_SERVICE_NAME: 'hdx-oss-app'
|
|
USAGE_STATS_ENABLED: "{{ usage_stats_enabled | default('false') }}"
|
|
# Clickhouse Connection String (Default User/Pass from Clickhouse Image)
|
|
DEFAULT_CONNECTIONS: >-
|
|
[{"name":"Local ClickHouse","host":"http://ch-server:8123","username":"default","password":""}]
|
|
DEFAULT_SOURCES: '{{ hyperdx_default_sources | to_json }}'
|
|
networks:
|
|
- internal
|
|
- traefik_public
|
|
deploy:
|
|
labels:
|
|
- "traefik.enable=true"
|
|
- "traefik.docker.network=traefik_public"
|
|
- "traefik.http.routers.hyperdx.rule=Host(`{{ subdomain }}.{{ main_domain }}`)"
|
|
- "traefik.http.routers.hyperdx.entrypoints=https"
|
|
- "traefik.http.routers.hyperdx.tls.certresolver=main"
|
|
- "traefik.http.services.hyperdx.loadbalancer.server.port={{ hyperdx_app_port | default(8080) }}"
|
|
|
|
ch-server:
|
|
image: clickhouse/clickhouse-server:25.6-alpine
|
|
environment:
|
|
CLICKHOUSE_DEFAULT_ACCESS_MANAGEMENT: 1
|
|
volumes:
|
|
- "{{ data_dir }}/clickhouse/config/config.xml:/etc/clickhouse-server/config.xml"
|
|
- "{{ data_dir }}/clickhouse/config/users.xml:/etc/clickhouse-server/users.xml"
|
|
- "{{ data_dir }}/clickhouse/data:/var/lib/clickhouse"
|
|
- "{{ data_dir }}/clickhouse/logs:/var/log/clickhouse-server"
|
|
deploy:
|
|
mode: replicated
|
|
replicas: 1
|
|
# placement:
|
|
# constraints: [node.role == worker]
|
|
networks:
|
|
- internal
|
|
|
|
networks:
|
|
internal:
|
|
driver: overlay
|
|
traefik_public:
|
|
external: true
|
|
shared-observability:
|
|
external: true |