Prerequisites
- Docker with Docker Compose v2
- 4 CPU cores, 8 GB RAM, 20 GB disk
Quick Start
infra/compose.yml and reads .env at the repository root, so run every docker compose command from the repository root with -f infra/compose.yml --project-directory .. The commands below use that form.
LangWatch is available at http://localhost:5560.
Services
Docker Compose starts the following services:
Services with no host port bind no port on the host’s interfaces, so they do not answer on
localhost and are not reachable from another machine. langwatch_nlp listens on 5561 inside the Docker network, which is what LANGWATCH_NLP_SERVICE points the app and the workers at. A process on the Docker host itself can still reach a container directly on its own network address, so treat this as removing an exposed entry point, not as a network boundary.
Configuration
Edit.env to customize your deployment. Key variables:
CREDENTIALS_SECRET stable once LangWatch holds data: changing it makes stored credentials unreadable and invalidates API keys. To replace it, see Rotating the credentials secret. See Environment Variables for the full reference.
Common Operations
Start in the background
View logs
Stop services
Update to latest version
pnpm task upgrade on the new image when they start, and the app does not report ready until it completes. On a current installation it applies no step. If it fails, read docker compose logs workers; the exit code is explained in the Upgrade Guide.
Reset data
Customization
Disable optional services
If you don’t need NLP or evaluators, comment them out ininfra/compose.yml:
Connect to external databases
Replace thepostgres and redis services with connection strings to your existing instances:
Connect to external ClickHouse
Replace theclickhouse service with a connection string to your existing instance:
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)
Next Steps
- First run: Create the first account, add the license and connect your identity provider
- Docker Images: Learn about each container image
- Kubernetes (Helm): Production deployment
- Environment Variables: Full configuration reference