Skip to main content

Documentation Index

Fetch the complete documentation index at: https://langwatch.ai/docs/llms.txt

Use this file to discover all available pages before exploring further.

Docker Compose is the quickest way to try LangWatch locally. It runs the full stack in containers on your machine.

Prerequisites

  • Docker with Docker Compose v2
  • 4 CPU cores, 8 GB RAM, 20 GB disk

Quick Start

# Clone the repository
git clone https://github.com/langwatch/langwatch.git
cd langwatch

# Copy the example environment file
cp langwatch/.env.example langwatch/.env

# Start all services
docker compose up
LangWatch is available at http://localhost:5560.
Why port 5560? On a T9 keyboard, 5560 spells “LLM”.

Services

Docker Compose starts the following services:
ServiceImagePortDescription
applangwatch/langwatch:latest5560Main application
workerslangwatch/langwatch:latestBackground job processing
langwatch_nlplangwatch/langwatch_nlp:latest5561NLP processing, workflows
langevalslangwatch/langevals:latest5562Evaluators, guardrails
postgrespostgres:165432Control plane database
redisredis:alpineJob queue, caching
clickhouselangwatch/clickhouse-serverless:0.2.08123Trace and analytics storage

Configuration

Edit langwatch/.env to customize your deployment. Key variables:
# Required: generate a secret for each
API_TOKEN_JWT_SECRET=your-jwt-secret
CREDENTIALS_SECRET=your-encryption-key
NEXTAUTH_SECRET=your-session-secret
See Environment Variables for the full reference.

Common Operations

Start in the background

docker compose up -d

View logs

# All services
docker compose logs -f

# Specific service
docker compose logs -f app

Stop services

docker compose down

Update to latest version

docker compose pull
docker compose up -d

Reset data

docker compose down -v  # Removes volumes (all data)
docker compose up

Customization

Disable optional services

If you don’t need NLP or evaluators, comment them out in compose.yml:
services:
  # langwatch_nlp:
  #   ...
  # langevals:
  #   ...
Remove the corresponding upstream URLs from the app environment to avoid connection errors.

Connect to external databases

Replace the postgres and redis services with connection strings to your existing instances:
services:
  app:
    environment:
      DATABASE_URL: postgresql://user:password@your-postgres:5432/langwatch
      REDIS_URL: redis://:password@your-redis:6379
    depends_on: []  # Remove postgres and redis dependencies

Connect to external ClickHouse

Replace the clickhouse service with a connection string to your existing instance:
services:
  app:
    environment:
      CLICKHOUSE_URL: http://user:password@your-clickhouse:8123/langwatch
    depends_on:
      postgres:
        condition: service_healthy
      redis:
        condition: service_healthy
      # Remove clickhouse from depends_on

Limitations

Docker Compose is suitable for evaluation and small teams but lacks:
  • High availability — single instance of each service
  • Horizontal scaling — cannot scale workers independently
  • Automated backups — no built-in backup scheduling
  • TLS — no built-in HTTPS (use a reverse proxy like nginx or Caddy)
For production, migrate to the Kubernetes Helm chart.

Next Steps