Skip to content

Docker Compose quickstart

import { Aside, Steps, Tabs, TabItem } from ‘@astrojs/starlight/components’;

The application repository contains the canonical Compose stack: ClickHouse, a one-shot schema service, PulsusDB in all mode, and an OpenTelemetry Collector.

  1. Clone the application repository.

    Terminal window
    git clone https://github.com/digitalis-io/pulsusdb.git
    cd pulsusdb
  2. Create the Collector configuration used by docker-compose.yaml.

    otel-config.yaml
    receivers:
    otlp:
    protocols:
    grpc:
    endpoint: 0.0.0.0:4317
    http:
    endpoint: 0.0.0.0:4318
    exporters:
    otlphttp/pulsusdb:
    endpoint: http://pulsusdb:3100
    service:
    pipelines:
    logs:
    receivers: [otlp]
    exporters: [otlphttp/pulsusdb]
    metrics:
    receivers: [otlp]
    exporters: [otlphttp/pulsusdb]
    traces:
    receivers: [otlp]
    exporters: [otlphttp/pulsusdb]
  3. Start the stack.

    ```sh docker compose up -d ``` ```sh podman-compose up -d ```
  4. Check readiness.

    Terminal window
    curl --fail http://localhost:3100/ready
  5. Send application telemetry to the Collector at localhost:4317 (gRPC) or localhost:4318 (HTTP).

The PulsusDB binary does not create its schema. The one-shot schema service runs schema/schema.sh with PULSUS_RETENTION_DAYS=7 before the API starts. The script builds the database from schema/schema.sql.

URL Purpose
http://localhost:3100/ready Dependency-aware readiness
http://localhost:3100/metrics PulsusDB’s own Prometheus metrics
http://localhost:3100/buildinfo Build information
http://localhost:3100/config Effective non-secret configuration
http://localhost:3100/admin/ Admin UI; change the default credentials before exposure
Terminal window
docker compose down

Add -v only when you also want to delete the ClickHouse volume and all stored telemetry.