Environment:Langfuse Langfuse Docker Infrastructure
| Knowledge Sources | |
|---|---|
| Domains | Infrastructure, Containerization |
| Last Updated | 2026-02-14 06:00 GMT |
Overview
Docker Compose orchestration for PostgreSQL 17, ClickHouse 25.8, Redis 7.2.4, and MinIO blob storage on a shared bridge network with persistent volumes.
Description
Langfuse uses Docker Compose to orchestrate all infrastructure services for local development and production deployment. The development configuration (docker-compose.dev.yml) provides PostgreSQL, ClickHouse, Redis, and MinIO on a shared langfuse-network bridge network with persistent volumes. Additional configurations exist for Azure Blob testing (docker-compose.dev-azure.yml) and Redis Cluster testing (docker-compose.dev-redis-cluster.yml). Production images use multi-stage Alpine-based Docker builds.
Usage
Use this environment for local development setup and production container deployment. The pnpm run infra:dev:up command starts all infrastructure services required for development.
System Requirements
| Category | Requirement | Notes |
|---|---|---|
| Software | Docker Engine 20+ | Docker Desktop on macOS/Windows |
| Software | Docker Compose v2+ | Included with Docker Desktop |
| RAM | 4GB+ | For all 4 services running simultaneously |
| Disk | 10GB+ | For Docker images and persistent volumes |
Dependencies
Docker Images
postgres:17(configurable viaPOSTGRES_VERSION)clickhouse/clickhouse-server:25.8(development)redis:7.2.4(development);redis:7(production)cgr.dev/chainguard/minio(Chainguard secure MinIO image)node:24-alpine(application base image)
Docker Volumes
langfuse_postgres_data: PostgreSQL data persistencelangfuse_clickhouse_data: ClickHouse data persistencelangfuse_clickhouse_logs: ClickHouse log fileslangfuse_minio_data: MinIO blob storage
Credentials
Default development credentials (from .env.dev.example):
- PostgreSQL: user=
postgres, password=postgres, db=postgres - ClickHouse: user=
clickhouse, password=clickhouse - Redis: password=
myredissecret - MinIO: user=
minio, password=miniosecret - Web Login: email=
demo@langfuse.com, password=password
Quick Install
# Copy environment file
cp .env.dev.example .env
# Start all infrastructure services
pnpm run infra:dev:up
# (Or full setup including DB reset and seed)
pnpm run dx
# Stop all infrastructure services
pnpm run infra:dev:down
# Nuclear option: remove everything
pnpm run nuke
Code Evidence
Network configuration from docker-compose.dev.yml:
networks:
langfuse-network:
driver: bridge
name: langfuse-network
MinIO service with Chainguard image:
minio:
image: cgr.dev/chainguard/minio
entrypoint: sh
command: -c 'mkdir -p /data/langfuse && minio server /data --console-address ":9001"'
environment:
MINIO_ROOT_USER: minio
MINIO_ROOT_PASSWORD: miniosecret
ports:
- "127.0.0.1:9090:9000"
- "127.0.0.1:9091:9001"
Common Errors
| Error Message | Cause | Solution |
|---|---|---|
port is already allocated |
Port conflict with existing service | Stop conflicting service or change port mapping |
no space left on device |
Docker volumes full | Run docker system prune or increase disk
|
network langfuse-network not found |
Network not created | Run docker compose up to auto-create
|
Compatibility Notes
- macOS (Apple Silicon): All images support ARM64. Docker Desktop with Rosetta may be needed for some ClickHouse features.
- Linux: Native support; ensure Docker group permissions.
- Windows: Use WSL2 backend with Docker Desktop.
- Port Bindings: All development ports bind to
127.0.0.1only (not exposed externally). - ClickHouse UID: Runs as user 101:101 in the container.