selfhostedworld.com logoselfhostedworld.com

Try describing what you need:

Traceway logo

Traceway

★ 1.7k

A self-hosted alternative to Hotjar

MIT LicenseOpen Source — No Paywall3 Containers — 3 containers — light hosting footprintDocker · SourceNeeds Postgres9+ active committers (12mo)

About

Traceway is an observability platform built around OpenTelemetry for teams that want to capture and analyze application telemetry without stitching together multiple tools. It brings together logs,...

Community Ratings

No ratings yet

Features

  • logs
  • traces
  • metrics
  • session replay
  • RUM
  • exceptions
  • AI tracing
  • on-call paging
  • fleet overview
  • background-task monitoring

Details

Last Updated
Oct 20, 2026
Created
Dec 18, 2025
Install Methods
dockersource
Requirements
OpenTelemetry SDK/OTLP exporterGo (for embedded mode)Docker Compose
Authentication
local
API
REST
Backup & Export
file-backup
Privacy & Independence
Cloud: Optional
User Model
Multi-UserMulti-Tenant
Deployment

Deployment: Docker Compose ✓3 Containers — light hosting footprintRuns as 3 containers

Run Traceway with Docker Compose

Compose file from the Traceway project repository.

3 services · database: postgres · infra: postgres · 1 unclassified (clickhouse-server)

no resource limits declared

needs persistent storage (2 volumes)

docker-compose.yml · @ bf4112b · scanned Jun 6, 2026

services:
  traceway:
    build:
      context: .
      dockerfile: Dockerfile.minimal
    ports:
      - "80:80"
    environment:
      CLICKHOUSE_SERVER: "clickhouse:9000"
      CLICKHOUSE_DATABASE: "traceway"
      CLICKHOUSE_USERNAME: "default"
      CLICKHOUSE_PASSWORD: "clickhouse"
      CLICKHOUSE_TLS: "false"
      POSTGRES_HOST: "postgres"
      POSTGRES_PORT: "5432"
      POSTGRES_DATABASE: "traceway"
      POSTGRES_USERNAME: "traceway"
      POSTGRES_PASSWORD: "traceway"
      POSTGRES_SSLMODE: "disable"
      JWT_SECRET: "change-this-to-a-secure-secret-at-least-32-chars"
      # Optional. Days to keep on-disk session recordings under STORAGE_PATH/recordings/.
      # Worker runs hourly and on startup; 0 disables; no effect when STORAGE_TYPE=s3.
      # SESSION_RECORDING_RETENTION_DAYS: "30"
    depends_on:
      clickhouse:
        condition: service_healthy
      postgres:
        condition: service_healthy
    restart: unless-stopped

  clickhouse:
    image: clickhouse/clickhouse-server:24.8-alpine
    environment:
      CLICKHOUSE_DB: traceway
      CLICKHOUSE_PASSWORD: clickhouse
    volumes:
      - clickhouse-data:/var/lib/clickhouse
    healthcheck:
      test: ["CMD", "clickhouse-client", "--password", "clickhouse", "--query", "SELECT 1"]
      interval: 5s
      timeout: 3s
      start_period: 10s
      retries: 10
    restart: unless-stopped

  postgres:
    image: postgres:17
    environment:
      POSTGRES_USER: traceway
      POSTGRES_PASSWORD: traceway
      POSTGRES_DB: traceway
    volumes:
      - postgres-data:/var/lib/postgresql/data
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U traceway"]
      interval: 5s
      timeout: 3s
      start_period: 10s
      retries: 10
    restart: unless-stopped

volumes:
  clickhouse-data:
  postgres-data:

This file may be out of date. Check the Traceway documentation for current setup steps.

Track your self-hosted stack

Bookmark software to try, rate tools you've used, and keep your collection in one place.

Metadata extracted from README on Sep 3, 2026