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

# Docker Compose

> Déployer ClickStack Open Source avec Docker Compose - la pile d’observabilité ClickHouse

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

Tous les composants de ClickStack Open Source sont distribués séparément sous forme d’images Docker distinctes :

* **ClickHouse**
* **HyperDX**
* **collecteur OpenTelemetry (OTel)**
* **MongoDB**

Ces images peuvent être combinées et déployées localement avec Docker Compose.

Docker Compose expose des ports supplémentaires pour l’observabilité et l’ingestion, selon la configuration par défaut de `otel-collector` :

* `13133` : endpoint de contrôle d’état pour l’extension `health_check`
* `24225` : récepteur Fluentd pour l’ingestion des logs
* `4317` : récepteur OTLP gRPC (standard pour les traces, les logs et les métriques)
* `4318` : récepteur OTLP HTTP (alternative à gRPC)
* `8888` : endpoint de métriques Prometheus pour superviser le collecteur lui-même

Ces ports permettent des intégrations avec diverses sources de télémétrie et rendent le collecteur OpenTelemetry prêt pour la production afin de répondre à des besoins d’ingestion variés.

<div id="suitable-for">
  ### Adapté aux cas suivants
</div>

* Tests en local
* Preuves de concept
* Déploiements en production où la tolérance aux pannes n'est pas requise et où un seul serveur suffit pour héberger l'ensemble des données ClickHouse
* Déploiement de ClickStack avec un hébergement séparé de ClickHouse, par exemple via ClickHouse Cloud.

<div id="deployment-steps">
  ## Étapes de déploiement
</div>

<br />

<Steps>
  <Step>
    ### Cloner le dépôt

    Pour déployer avec Docker Compose, clonez le dépôt ClickStack, placez-vous dans le répertoire et exécutez `docker-compose up` :

    ```shell theme={null}
    git clone https://github.com/ClickHouse/ClickStack.git
    docker compose up
    ```
  </Step>

  <Step>
    ### Accéder à la UI de HyperDX

    Rendez-vous sur [http://localhost:8080](http://localhost:8080) pour accéder à la UI de HyperDX.

    Créez un utilisateur en indiquant un nom d’utilisateur et un mot de passe conformes aux exigences.

    Lorsque vous cliquez sur `Create`, des sources de données sont créées pour l’instance ClickHouse déployée avec Docker Compose.

    <Info>
      **Remplacer la connexion par défaut**

      Vous pouvez remplacer la connexion par défaut à l’instance ClickHouse intégrée. Pour plus de détails, consultez ["Using ClickHouse Cloud"](#using-clickhouse-cloud).
    </Info>

    <Image img="https://mintcdn.com/private-7c7dfe99-mintlify-8c05c8a2/RhEK5rhPj_7m6pWY/images/use-cases/observability/hyperdx-login.png?fit=max&auto=format&n=RhEK5rhPj_7m6pWY&q=85&s=eec6e42744553cd8881cf9c9ada74166" alt="UI de HyperDX" size="lg" width="3600" height="1900" data-path="images/use-cases/observability/hyperdx-login.png" />

    Pour voir un exemple d’utilisation d’une autre instance ClickHouse, consultez ["Using ClickHouse Cloud"](#using-clickhouse-cloud).
  </Step>

  <Step>
    ### Renseigner les détails de connexion

    Pour vous connecter à l’instance ClickHouse déployée, cliquez simplement sur **Create** et acceptez les paramètres par défaut.

    Si vous préférez vous connecter à votre propre **cluster ClickHouse externe**, par exemple ClickHouse Cloud, vous pouvez saisir manuellement vos identifiants de connexion.

    Si vous êtes invité à créer une source, conservez toutes les valeurs par défaut et renseignez le champ `Table` avec la valeur `otel_logs`. Tous les autres paramètres devraient être détectés automatiquement, ce qui vous permettra de cliquer sur `Save New Source`.

    <Image img="https://mintcdn.com/private-7c7dfe99-mintlify-8c05c8a2/RhEK5rhPj_7m6pWY/images/use-cases/observability/hyperdx-logs.png?fit=max&auto=format&n=RhEK5rhPj_7m6pWY&q=85&s=cdb0c680a92e975a92664b4abd323123" alt="Créer une source de logs" size="md" width="1944" height="1572" data-path="images/use-cases/observability/hyperdx-logs.png" />
  </Step>
</Steps>

<div id="modifying-settings">
  ## Modification des paramètres de Compose
</div>

Vous pouvez modifier les paramètres de la stack, comme la version utilisée, dans le fichier de variables d'environnement :

```shell theme={null}
user@example-host clickstack % cat .env

# Used by docker-compose.yml
IMAGE_NAME_DOCKERHUB=clickhouse/clickstack-all-in-one
LOCAL_IMAGE_NAME_DOCKERHUB=clickhouse/clickstack-local
ALL_IN_ONE_IMAGE_NAME_DOCKERHUB=clickhouse/clickstack-all-in-one
OTEL_COLLECTOR_IMAGE_NAME_DOCKERHUB=clickhouse/clickstack-otel-collector
CODE_VERSION=2.8.0
IMAGE_VERSION_SUB_TAG=.8.0
IMAGE_VERSION=2
IMAGE_NIGHTLY_TAG=2-nightly
IMAGE_LATEST_TAG=latest

# Set up domain URLs
HYPERDX_API_PORT=8000 #optional (should not be taken by other services)
HYPERDX_APP_PORT=8080
HYPERDX_APP_URL=http://localhost
HYPERDX_LOG_LEVEL=debug
HYPERDX_OPAMP_PORT=4320

# Otel/Clickhouse config
HYPERDX_OTEL_EXPORTER_CLICKHOUSE_DATABASE=default
```

<div id="configuring-collector">
  ### Configurer l'OpenTelemetry collector
</div>

La configuration de l'OTel collector peut être modifiée si nécessaire. Voir ["Modification de la configuration"](/fr/clickstack/ingesting-data/collector#modifying-otel-collector-configuration).

<div id="using-clickhouse-cloud">
  ## Utilisation de ClickHouse Cloud
</div>

Cette distribution peut être utilisée avec ClickHouse Cloud, mais elle diffère de [Managed ClickStack](/fr/clickstack/deployment/managed). Dans cette configuration, vous gérez vous-même l'UI de ClickStack tout en utilisant ClickHouse Cloud uniquement pour le calcul et le stockage. Sauf si vous avez une raison particulière d'exploiter l'UI séparément, nous vous recommandons d'utiliser Managed ClickStack, qui inclut une authentification intégrée et des fonctionnalités Enterprise supplémentaires, et vous évite d'avoir à gérer vous-même l'UI de ClickStack.

Vous devez :

* Supprimer le service ClickHouse du fichier `docker-compose.yml`. Cette étape est facultative à des fins de test, car l'instance ClickHouse déployée sera simplement ignorée, même si elle gaspillera des ressources locales. Si vous supprimez le service, assurez-vous également de supprimer toute référence à celui-ci, comme `depends_on`.

* Modifier l'OTel collector pour utiliser une instance ClickHouse Cloud en définissant les variables d'environnement `CLICKHOUSE_ENDPOINT`, `CLICKHOUSE_USER` et `CLICKHOUSE_PASSWORD` dans le fichier compose. Plus précisément, ajoutez ces variables d'environnement au service OTel collector :

  ```shell theme={null}
  otel-collector:
      image: ${OTEL_COLLECTOR_IMAGE_NAME_DOCKERHUB}:${IMAGE_VERSION}
      environment:
        CLICKHOUSE_ENDPOINT: '<CLICKHOUSE_ENDPOINT>' # endpoint HTTPS ici
        CLICKHOUSE_USER: '<CLICKHOUSE_USER>'
        CLICKHOUSE_PASSWORD: '<CLICKHOUSE_PASSWORD>'
        HYPERDX_OTEL_EXPORTER_CLICKHOUSE_DATABASE: ${HYPERDX_OTEL_EXPORTER_CLICKHOUSE_DATABASE}
        HYPERDX_LOG_LEVEL: ${HYPERDX_LOG_LEVEL}
        OPAMP_SERVER_URL: 'http://app:${HYPERDX_OPAMP_PORT}'
      ports:
        - '13133:13133' # extension health_check
        - '24225:24225' # récepteur Fluentd
        - '4317:4317' # récepteur OTLP gRPC
        - '4318:4318' # récepteur OTLP HTTP
        - '8888:8888' # extension de métriques
      restart: always
      networks:
        - internal
  ```

  `CLICKHOUSE_ENDPOINT` doit être l'endpoint HTTPS de ClickHouse Cloud, y compris le port `8443`, par exemple `https://mxl4k3ul6a.us-east-2.aws.clickhouse.com:8443`

* Lorsque vous vous connectez à l'UI de HyperDX et créez une connexion à ClickHouse, utilisez vos identifiants Cloud.

<div id="schema-choice-map-vs-json">
  ## Choix du schéma : Map vs JSON
</div>

Par défaut, ClickStack stocke les attributs dans des colonnes `Map(LowCardinality(String), String)`. Il s’agit du schéma recommandé pour les charges de travail d’observabilité. Associé à la [sérialisation de map compartimentée](/fr/reference/data-types/map#bucketed-map-serialization) et à des index textuels sur les clés et les valeurs de la map, il permet des recherches sélectives sans la surcharge d’ingestion par clé propre aux sous-colonnes JSON dynamiques.

Un schéma de type `JSON` est disponible en bêta pour évaluation sur des charges de travail avec un ensemble réduit et stable de clés d’attributs. Il n’est **pas recommandé** par défaut. Consultez [Map vs JSON type](/fr/clickstack/ingesting-data/schema/map-vs-json) pour la comparaison complète et les variables d’environnement requises pour activer la prise en charge de JSON.
