
Langfuse
Open-source LLM observability, tracing, and evaluation platform
Deploy Langfuse in 3 Steps
Connect Your VPS
Add your server credentials to Server Compass
Select Langfuse
Choose from our template library
Deploy & Configure
Fill in settings and click Deploy
Self-Host Langfuse with Docker
Take the DIY route and deploy Langfuse on your own server using Docker.
Remote into Your Server
Initiate a secure shell connection to your server using the command below.
# Connect to your VPS
ssh root@your-server-ip
# Or with a specific SSH key
ssh -i ~/.ssh/your-key root@your-server-ipFirst time? Docker required! Install it with: curl -fsSL https://get.docker.com | sh
Create the App Directory
Organize your deployment by creating a dedicated project folder.
# Create and navigate to project directory
mkdir -p ~/apps/langfuse
cd ~/apps/langfuseWrite Your docker-compose.yml
Create a new docker-compose.yml file and paste this configuration:
services:
langfuse-web:
image: langfuse/langfuse:3
ports:
- "3000:3000"
environment:
- DATABASE_URL=postgresql://langfuse:<your-db-password>@postgres:5432/langfuse
- NEXTAUTH_SECRET=<your-nextauth-secret>
- SALT=<your-salt>
- ENCRYPTION_KEY=<your-encryption-key>
- CLICKHOUSE_URL=http://clickhouse:8123
- CLICKHOUSE_MIGRATION_URL=clickhouse://clickhouse:9000
- CLICKHOUSE_USER=default
- CLICKHOUSE_PASSWORD=<your-clickhouse-password>
- REDIS_CONNECTION_STRING=redis://redis:6379/0
- LANGFUSE_S3_EVENT_UPLOAD_BUCKET=langfuse
- LANGFUSE_S3_EVENT_UPLOAD_REGION=auto
- LANGFUSE_S3_EVENT_UPLOAD_ACCESS_KEY_ID=langfuse
- LANGFUSE_S3_EVENT_UPLOAD_SECRET_ACCESS_KEY=<your-minio-password>
- LANGFUSE_S3_EVENT_UPLOAD_ENDPOINT=http://minio:9000
- LANGFUSE_S3_EVENT_UPLOAD_FORCE_PATH_STYLE=true
- LANGFUSE_S3_MEDIA_UPLOAD_BUCKET=langfuse
- LANGFUSE_S3_MEDIA_UPLOAD_REGION=auto
- LANGFUSE_S3_MEDIA_UPLOAD_ACCESS_KEY_ID=langfuse
- LANGFUSE_S3_MEDIA_UPLOAD_SECRET_ACCESS_KEY=<your-minio-password>
- LANGFUSE_S3_MEDIA_UPLOAD_ENDPOINT=http://minio:9000
- LANGFUSE_S3_MEDIA_UPLOAD_FORCE_PATH_STYLE=true
restart: unless-stopped
depends_on:
postgres:
condition: service_healthy
redis:
condition: service_started
clickhouse:
condition: service_started
minio:
condition: service_started
langfuse-worker:
image: langfuse/langfuse-worker:3
environment:
- DATABASE_URL=postgresql://langfuse:<your-db-password>@postgres:5432/langfuse
- SALT=<your-salt>
- ENCRYPTION_KEY=<your-encryption-key>
- CLICKHOUSE_URL=http://clickhouse:8123
- CLICKHOUSE_MIGRATION_URL=clickhouse://clickhouse:9000
- CLICKHOUSE_USER=default
- CLICKHOUSE_PASSWORD=<your-clickhouse-password>
- REDIS_CONNECTION_STRING=redis://redis:6379/0
- LANGFUSE_S3_EVENT_UPLOAD_BUCKET=langfuse
- LANGFUSE_S3_EVENT_UPLOAD_REGION=auto
- LANGFUSE_S3_EVENT_UPLOAD_ACCESS_KEY_ID=langfuse
- LANGFUSE_S3_EVENT_UPLOAD_SECRET_ACCESS_KEY=<your-minio-password>
- LANGFUSE_S3_EVENT_UPLOAD_ENDPOINT=http://minio:9000
- LANGFUSE_S3_EVENT_UPLOAD_FORCE_PATH_STYLE=true
restart: unless-stopped
depends_on:
postgres:
condition: service_healthy
redis:
condition: service_started
clickhouse:
condition: service_started
minio:
condition: service_started
postgres:
image: postgres:17-alpine
environment:
- POSTGRES_USER=langfuse
- POSTGRES_PASSWORD=<your-db-password>
- POSTGRES_DB=langfuse
volumes:
- langfuse_postgres:/var/lib/postgresql/data
restart: unless-stopped
healthcheck:
test: ["CMD-SHELL", "pg_isready -U langfuse -d langfuse"]
interval: 10s
timeout: 5s
retries: 5
start_period: 30s
clickhouse:
image: clickhouse/clickhouse-server:latest
user: "101:101"
environment:
- CLICKHOUSE_DB=default
- CLICKHOUSE_USER=default
- CLICKHOUSE_PASSWORD=<your-clickhouse-password>
volumes:
- langfuse_clickhouse:/var/lib/clickhouse
- langfuse_clickhouse_logs:/var/log/clickhouse-server
restart: unless-stopped
minio:
image: minio/minio:latest
entrypoint: sh
command: -c 'mkdir -p /data/langfuse && minio server /data --console-address ":9001"'
environment:
- MINIO_ROOT_USER=langfuse
- MINIO_ROOT_PASSWORD=<your-minio-password>
volumes:
- langfuse_minio:/data
restart: unless-stopped
redis:
image: redis:7-alpine
volumes:
- langfuse_redis:/data
restart: unless-stopped
volumes:
langfuse_postgres:
langfuse_clickhouse:
langfuse_clickhouse_logs:
langfuse_minio:
langfuse_redis:
PORTHost port to expose(default: 3000)DB_PASSWORDDatabase passwordNEXTAUTH_SECRETSession secretSALTAPI key saltENCRYPTION_KEYEncryption keyCLICKHOUSE_PASSWORDClickHouse passwordLaunch the Containers
Start the services and tail the logs to verify startup.
# Spin up containers
docker compose up -d
# Verify deployment
docker compose ps
# Check logs for errors
docker compose logs -fOpen Firewall Ports
Open the required port in your firewall to allow access.
# Allow the application port through firewall
sudo ufw allow 3000/tcp
sudo ufw reload
# Access your app at:
# http://your-server-ip:3000Want the easy way? Try Server Compass.
Forget SSH and YAML files. Deploy Langfuse visually with Server Compass in just a few clicks.
- Visual config editor
- Instant deployment
- Automatic HTTPS
- Smooth updates
- Live monitoring
- Quick rollbacks
After Deployment
After deploying Langfuse with Server Compass, complete these steps to finish setup
Open the Langfuse URL in your browser
Create your account
Create a project and generate API keys
Integrate the Langfuse SDK into your LLM application
Need help? Check out our documentation for detailed guides.
Langfuse FAQ
Common questions about self-hosting Langfuse
How do I deploy Langfuse with Server Compass?
Simply download Server Compass, connect to your VPS, and select Langfuse from the templates list. Fill in the required configuration and click Deploy. The entire process takes under 3 minutes.
What are the system requirements for Langfuse?
Langfuse requires a minimum of 1024MB RAM. We recommend a VPS with at least 2048MB RAM for optimal performance. Any modern Linux server with Docker support will work.
Can I migrate my existing Langfuse data?
Yes! Server Compass provides volume mapping that allows you to import existing data. You can also use standard Langfuse backup and restore procedures.
How do I update Langfuse to the latest version?
Server Compass makes updates easy. Simply click the Update button in your deployment dashboard, and the latest Langfuse image will be pulled and deployed with zero downtime.
Is Langfuse free to self-host?
Langfuse is open-source software. You only pay for your VPS hosting (typically $5-20/month) and optionally Server Compass ($29 one-time). No subscription fees or per-seat pricing.
Ready to Self-Host Langfuse?
Download Server Compass and deploy Langfuse to your VPS in under 3 minutes. No Docker expertise required.
Download Server Compass


