> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-mintlify-3a82795f.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Local mode only

> Deploying ClickStack with Local mode only - The ClickHouse Observability Stack

export const Image = ({img, alt, size}) => {
  return <Frame>
      <img src={img} alt={alt} />
    </Frame>;
};

Similar to the [all-in-one image](/clickstack/deployment/docker-compose), this comprehensive Docker image bundles all ClickStack components:

* **ClickHouse**
* **HyperDX**
* **OpenTelemetry (OTel) collector** (exposing OTLP on ports `4317` and `4318`)
* **MongoDB** (for persistent application state)

**However, user authentication is disabled for this distribution of HyperDX**

<h3 id="suitable-for">
  Suitable for
</h3>

* Demos
* Debugging
* Development where HyperDX is used

<h2 id="deployment-steps">
  Deployment steps
</h2>

<br />

<Steps>
  <Step>
    <h3 id="deploy-with-docker">
      Deploy with Docker
    </h3>

    Local mode deploys the HyperDX UI on port 8080.

    ```shell theme={null}
    docker run -p 8080:8080 clickhouse/clickstack-local:latest
    ```
  </Step>

  <Step>
    <h3 id="navigate-to-hyperdx-ui">
      Navigate to the HyperDX UI
    </h3>

    Visit [http://localhost:8080](http://localhost:8080) to access the HyperDX UI.

    **You won't be prompted to create a user, as authentication isn't enabled in this deployment mode.**

    Connect to your own external ClickHouse cluster e.g. ClickHouse Cloud.

    <Image img="https://mintcdn.com/private-7c7dfe99-mintlify-3a82795f/s7SvMaubt_rFZWes/images/use-cases/observability/hyperdx-2.png?fit=max&auto=format&n=s7SvMaubt_rFZWes&q=85&s=806d832f3254ee232dac07782f82e424" alt="Create login" size="md" width="1966" height="1392" data-path="images/use-cases/observability/hyperdx-2.png" />

    Create a source, retain all default values, and complete the `Table` field with the value `otel_logs`. All other settings should be auto-detected, allowing you to click `Save New Source`.

    <Image img="https://mintcdn.com/private-7c7dfe99-mintlify-3a82795f/nRXhrvIyBMY7rv-q/images/use-cases/observability/hyperdx-logs.png?fit=max&auto=format&n=nRXhrvIyBMY7rv-q&q=85&s=ca29662573c2639ed6782f568fa3c40a" alt="Create logs source" size="md" width="1944" height="1572" data-path="images/use-cases/observability/hyperdx-logs.png" />
  </Step>
</Steps>

<h2 id="schema-choice-map-vs-json">
  Schema choice: Map vs JSON
</h2>

ClickStack stores attributes as `Map(LowCardinality(String), String)` columns by default. This is the recommended schema for observability workloads. Combined with [bucketed map serialization](/reference/data-types/map#bucketed-map-serialization) and text indexes on map keys and values, it provides selective lookups without the per-key ingest overhead of dynamic JSON subcolumns.

A `JSON`-typed schema is available in beta for evaluation on workloads with a small, stable attribute key-set. It is **not recommended** as the default. See [Map vs JSON type](/clickstack/ingesting-data/schema/map-vs-json) for the full comparison and the env vars required to enable JSON support.
