Back to all templates
Langfuse logo

Langfuse

Application1024MB+ RAM

Open-source LLM observability, tracing, and evaluation platform

llmobservabilitytracingaievaluation

Deploy Langfuse in 3 Steps

1

Connect Your VPS

Add your server credentials to Server Compass

2

Select Langfuse

Choose from our template library

3

Deploy & Configure

Fill in settings and click Deploy

No Docker knowledge required
Step-by-step deployment guide

Deploy Langfuse on a VPS with Server Compass

Use the Langfuse template in Server Compass to deploy a self-hosted LLM observability stack with PostgreSQL, Redis, ClickHouse, and MinIO on your VPS, then verify the Langfuse web UI in a browser.

About 7 minutesBrowser verified
1
Step 1

Open the server Apps tab

Select your VPS, open the Apps tab, and start a new app deployment. Keep sensitive server details hidden before capturing or sharing screenshots.

Server Compass Apps tab before creating a Langfuse app
2
Step 2

Choose an app template

Click New App and choose the template deployment path so Server Compass can load the built-in catalog.

Choosing to deploy an app from a Server Compass template
3
Step 3

Search for Langfuse

Use the template picker search to find Langfuse in the Server Compass template catalog.

Searching for Langfuse in the Server Compass template picker
4
Step 4

Select the Langfuse template

Choose the Langfuse template. Server Compass fills the Langfuse image, host port, generated secrets, PostgreSQL, Redis, ClickHouse, and MinIO settings.

Langfuse template selected in Server Compass
5
Step 5

Review the Langfuse settings

Confirm the app name and compose services. In this run, the app was named langfuse-demo and used host port 3000.

Reviewing Langfuse project settings and compose services
6
Step 6

Deploy Langfuse

Review the generated environment values, confirm the port is available, and click Deploy Now.

Reviewing Langfuse environment variables and port before deployment
7
Step 7

Watch the deployment progress

Keep the deployment modal open while Server Compass uploads the compose file, pulls the Langfuse image, starts the container, and verifies the stack.

Server Compass deploying the Langfuse template on the VPS
8
Step 8

Confirm Langfuse is running

After deployment finishes, return to the Apps tab and confirm the Langfuse app is marked Running with its application URL available.

Langfuse template running in the Server Compass Apps tab
9
Step 9

Open Langfuse in the browser

Open the application URL in a browser. The Langfuse web UI confirms the site is reachable.

The deployed Langfuse web UI loaded in a browser

After Langfuse Opens

  • Create the first Langfuse account and organization before production use.
  • Configure LLM tracing SDKs, HTTPS, email, and user access before production use.
  • Add a domain and HTTPS before exposing the LLM observability dashboard to users.
  • Back up the Langfuse PostgreSQL, ClickHouse, and MinIO volumes before relying on it for production analytics.

Verified Result

The Langfuse web UI loaded successfully in a browser.

Langfuse deployment questions

What does the Langfuse template deploy?

It deploys Langfuse with PostgreSQL, Redis, ClickHouse, and MinIO backing services plus persistent database volumes.

Which port did the tutorial use?

The tutorial used host port 3000, which maps to the Langfuse web server on container port 80.

Why does the guide stop at the first-run web UI?

The tutorial verifies the clean first-run web UI because real traces, projects, users, and access settings depend on the production server.

Should this become a blog post?

No. The deployment guide should live on the Langfuse template detail page and be linked from the reusable template deployment docs page.

DIY Deployment

Self-Host Langfuse with Docker

Take the DIY route and deploy Langfuse on your own server using Docker.

1

Remote into Your Server

Initiate a secure shell connection to your server using the command below.

terminal
# Connect to your VPS
ssh root@your-server-ip

# Or with a specific SSH key
ssh -i ~/.ssh/your-key root@your-server-ip

First time? Docker required! Install it with: curl -fsSL https://get.docker.com | sh

2

Create the App Directory

Organize your deployment by creating a dedicated project folder.

terminal
# Create and navigate to project directory
mkdir -p ~/apps/langfuse
cd ~/apps/langfuse
3

Write Your docker-compose.yml

Create a new docker-compose.yml file and paste this configuration:

docker-compose.yml
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:
Configurable Options
PORTHost port to expose(default: 3000)
DB_PASSWORDDatabase password
NEXTAUTH_SECRETSession secret
SALTAPI key salt
ENCRYPTION_KEYEncryption key
CLICKHOUSE_PASSWORDClickHouse password
4

Launch the Containers

Start the services and tail the logs to verify startup.

terminal
# Spin up containers
docker compose up -d

# Verify deployment
docker compose ps

# Check logs for errors
docker compose logs -f
5

Open Firewall Ports

Open the required port in your firewall to allow access.

terminal
# Allow the application port through firewall
sudo ufw allow 3000/tcp
sudo ufw reload

# Access your app at:
# http://your-server-ip:3000
Skip the Terminal

Want 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
Download Server Compass$29 one-time • Lifetime license

After Deployment

After deploying Langfuse with Server Compass, complete these steps to finish setup

1

Open the Langfuse URL in your browser

2

Create your account

3

Create a project and generate API keys

4

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