All in one
This comprehensive Docker image bundles all ClickStack components:
- ClickHouse
- HyperDX
- OpenTelemetry (OTel) collector (exposing OTLP on ports
4317
and4318
) - MongoDB (for persistent application state)
This option includes authentication, enabling the persistence of dashboards, alerts, and saved searches across sessions and users.
Suitable for
- Demos
- Local testing of the full stack
Deployment steps
Deploy with Docker
The following will run an OpenTelemetry collector (on port 4317 and 4318), ClickHouse (on port 8123), and the HyperDX UI (on port 8080).
Navigate to the HyperDX UI
Visit http://localhost:8080 to access the HyperDX UI.
Create a user, providing a username and password which meets the requirements.
On clicking Create
data sources will be created for the integrated ClickHouse instance.
For an example of using an alternative ClickHouse instance, see "Create a ClickHouse Cloud connection".
Ingest data
To ingest data see "Ingesting data".
Deploying to production
This option should not be deployed to production for the following reasons:
- Non-persistent storage: All data is stored using the Docker native overlay filesystem. This setup does not support performance at scale, and data will be lost if the container is removed or restarted.
- Lack of component isolation: All components run within a single Docker container. This prevents independent scaling and monitoring and applies any
cgroup
limits globally to all processes. As a result, components may compete for CPU and memory.
Customizing ports
If you need to customize the application (8080) or API (8000) ports that HyperDX Local runs on, you'll need to modify the docker run
command to forward the appropriate ports and set a few environment variables.
Customizing the OpenTelemetry ports can simply be changed by modifying the port forwarding flags. For example, replacing -p 4318:4318
with -p 4999:4318
to change the OpenTelemetry HTTP port to 4999.
Using ClickHouse Cloud
This distribution can be used with ClickHouse Cloud. While the local ClickHouse instance will still be deployed (and ignored), the OTel collector can be configured to use a ClickHouse Cloud instance by setting the environment variables CLICKHOUSE_ENDPOINT
, CLICKHOUSE_USER
and CLICKHOUSE_PASSWORD
.
For example:
The CLICKHOUSE_ENDPOINT
should be the ClickHouse Cloud HTTPS endpoint, including the port 8443
e.g. https://mxl4k3ul6a.us-east-2.aws.clickhouse.com:8443
On connecting to the HyperDX UI, navigate to Team Settings
and create a connection to your ClickHouse Cloud service - followed by the required sources. For an example flow, see here.
Configuring the OpenTelemetry collector
The OTel collector configuration can be modified if required - see "Modifying configuration".