Skip to content

Template · AI & LLM

Langfuse

LLM observability and prompt management (v3 stack: Postgres, ClickHouse, Redis, MinIO).

Deploy on Skiffly

Opens the dashboard with this template pre-selected. Sign in with GitHub if you are new; the free tier needs no card.

  • Postgrespostgres:17
  • ClickHouseclickhouse/clickhouse-server:25.8
  • Redisredis:7-alpine
  • MinIOquay.io/minio/minio:latest
  • Langfuselangfuse/langfuse:3
  • Langfuse Workerlangfuse/langfuse-worker:3
Upstream documentation

What gets deployed

6 services in the environment you pick, on the private network of the project.

About this template

langfuse/langfuse:3 web + langfuse/langfuse-worker:3, PostgreSQL 17, ClickHouse 25.8, Redis (with password) and MinIO for event/media blobs (bucket langfuse is created on start).

Postgres

Image: postgres:17

  • Port 5432/tcp
  • 10 GB volume at /var/lib/postgresql/data
  • 1 vCPU · 1 GB

ClickHouse

Image: clickhouse/clickhouse-server:25.8

  • Port 8123/tcp
  • 20 GB volume at /var/lib/clickhouse
  • 2 vCPU · 2 GB

Redis

Image: redis:7-alpine

  • Port 6379/tcp
  • 2 GB volume at /data
  • 0.5 vCPU · 512 MB

redis-server --requirepass "$REDIS_PASSWORD" --appendonly yes --dir /data --maxmemory-policy noeviction

MinIO

Image: quay.io/minio/minio:latest

  • Port 9000/tcp
  • 20 GB volume at /data
  • 1 vCPU · 1 GB
  • /minio/health/live

mkdir -p /data/langfuse && minio server /data --console-address :9001

Langfuse

Image: langfuse/langfuse:3

  • Port 3000/http
  • Public domain with TLS
  • 1 vCPU · 2 GB
  • /api/public/health

Langfuse Worker

Image: langfuse/langfuse-worker:3

  • Port 3030/tcp
  • 1 vCPU · 2 GB

Variables

Generated secrets never leave the platform; references are resolved on the private network. Anything marked required is asked for at deploy time.

Postgres

NameValue
POSTGRES_USERpostgresSuperuser name
POSTGRES_PASSWORDgenerated (password)Generated at deploy
POSTGRES_DBlangfuseDatabase created on first start
PGDATA/var/lib/postgresql/data/pgdata
DATABASE_URLpostgresql://${{self.POSTGRES_USER}}:${{self.POSTGRES_PASSWORD}}@${{self.SKIFFLY_PRIVATE_DOMAIN}}:5432/${{self.POSTGRES_DB}}Connection string on the private network

ClickHouse

NameValue
CLICKHOUSE_USERdefault
CLICKHOUSE_PASSWORDgenerated (password)
CLICKHOUSE_DBdefault
CLICKHOUSE_DEFAULT_ACCESS_MANAGEMENT1
CLICKHOUSE_URLhttp://${{self.CLICKHOUSE_USER}}:${{self.CLICKHOUSE_PASSWORD}}@${{self.SKIFFLY_PRIVATE_DOMAIN}}:8123/${{self.CLICKHOUSE_DB}}HTTP interface (port 8123)

Redis

NameValue
REDIS_PASSWORDgenerated (password)
REDIS_URLredis://default:${{self.REDIS_PASSWORD}}@${{self.SKIFFLY_PRIVATE_DOMAIN}}:6379

MinIO

NameValue
MINIO_ROOT_USERminio
MINIO_ROOT_PASSWORDgenerated (password)
MINIO_ENDPOINThttp://${{self.SKIFFLY_PRIVATE_DOMAIN}}:9000S3 API on the private network

Langfuse

NameValue
DATABASE_URL${{Postgres.DATABASE_URL}}
SALTgenerated (secret)
ENCRYPTION_KEYgenerated (hex64)
TELEMETRY_ENABLEDfalse
CLICKHOUSE_MIGRATION_URLclickhouse://${{ClickHouse.SKIFFLY_PRIVATE_DOMAIN}}:8123?protocol=http
CLICKHOUSE_URLhttp://${{ClickHouse.SKIFFLY_PRIVATE_DOMAIN}}:8123
CLICKHOUSE_USER${{ClickHouse.CLICKHOUSE_USER}}
CLICKHOUSE_PASSWORD${{ClickHouse.CLICKHOUSE_PASSWORD}}
CLICKHOUSE_CLUSTER_ENABLEDfalse
REDIS_HOST${{Redis.SKIFFLY_PRIVATE_DOMAIN}}
REDIS_PORT6379
REDIS_AUTH${{Redis.REDIS_PASSWORD}}
LANGFUSE_S3_EVENT_UPLOAD_BUCKETlangfuse
LANGFUSE_S3_EVENT_UPLOAD_REGIONauto
LANGFUSE_S3_EVENT_UPLOAD_ACCESS_KEY_ID${{MinIO.MINIO_ROOT_USER}}
LANGFUSE_S3_EVENT_UPLOAD_SECRET_ACCESS_KEY${{MinIO.MINIO_ROOT_PASSWORD}}
LANGFUSE_S3_EVENT_UPLOAD_ENDPOINT${{MinIO.MINIO_ENDPOINT}}
LANGFUSE_S3_EVENT_UPLOAD_FORCE_PATH_STYLEtrue
LANGFUSE_S3_EVENT_UPLOAD_PREFIXevents/
LANGFUSE_S3_MEDIA_UPLOAD_BUCKETlangfuse
LANGFUSE_S3_MEDIA_UPLOAD_REGIONauto
LANGFUSE_S3_MEDIA_UPLOAD_ACCESS_KEY_ID${{MinIO.MINIO_ROOT_USER}}
LANGFUSE_S3_MEDIA_UPLOAD_SECRET_ACCESS_KEY${{MinIO.MINIO_ROOT_PASSWORD}}
LANGFUSE_S3_MEDIA_UPLOAD_ENDPOINT${{MinIO.MINIO_ENDPOINT}}
LANGFUSE_S3_MEDIA_UPLOAD_FORCE_PATH_STYLEtrue
LANGFUSE_S3_MEDIA_UPLOAD_PREFIXmedia/
NEXTAUTH_URLhttps://${{self.SKIFFLY_PUBLIC_DOMAIN}}
NEXTAUTH_SECRETgenerated (secret)
LANGFUSE_INIT_USER_EMAILadmin@example.com
LANGFUSE_INIT_USER_PASSWORDgenerated (password)
LANGFUSE_INIT_USER_NAMEAdmin
LANGFUSE_INIT_ORG_IDmain
LANGFUSE_INIT_ORG_NAMEMain

Langfuse Worker

NameValue
DATABASE_URL${{Postgres.DATABASE_URL}}
SALT${{Langfuse.SALT}}
ENCRYPTION_KEY${{Langfuse.ENCRYPTION_KEY}}
TELEMETRY_ENABLEDfalse
CLICKHOUSE_MIGRATION_URLclickhouse://${{ClickHouse.SKIFFLY_PRIVATE_DOMAIN}}:8123?protocol=http
CLICKHOUSE_URLhttp://${{ClickHouse.SKIFFLY_PRIVATE_DOMAIN}}:8123
CLICKHOUSE_USER${{ClickHouse.CLICKHOUSE_USER}}
CLICKHOUSE_PASSWORD${{ClickHouse.CLICKHOUSE_PASSWORD}}
CLICKHOUSE_CLUSTER_ENABLEDfalse
REDIS_HOST${{Redis.SKIFFLY_PRIVATE_DOMAIN}}
REDIS_PORT6379
REDIS_AUTH${{Redis.REDIS_PASSWORD}}
LANGFUSE_S3_EVENT_UPLOAD_BUCKETlangfuse
LANGFUSE_S3_EVENT_UPLOAD_REGIONauto
LANGFUSE_S3_EVENT_UPLOAD_ACCESS_KEY_ID${{MinIO.MINIO_ROOT_USER}}
LANGFUSE_S3_EVENT_UPLOAD_SECRET_ACCESS_KEY${{MinIO.MINIO_ROOT_PASSWORD}}
LANGFUSE_S3_EVENT_UPLOAD_ENDPOINT${{MinIO.MINIO_ENDPOINT}}
LANGFUSE_S3_EVENT_UPLOAD_FORCE_PATH_STYLEtrue
LANGFUSE_S3_EVENT_UPLOAD_PREFIXevents/
LANGFUSE_S3_MEDIA_UPLOAD_BUCKETlangfuse
LANGFUSE_S3_MEDIA_UPLOAD_REGIONauto
LANGFUSE_S3_MEDIA_UPLOAD_ACCESS_KEY_ID${{MinIO.MINIO_ROOT_USER}}
LANGFUSE_S3_MEDIA_UPLOAD_SECRET_ACCESS_KEY${{MinIO.MINIO_ROOT_PASSWORD}}
LANGFUSE_S3_MEDIA_UPLOAD_ENDPOINT${{MinIO.MINIO_ENDPOINT}}
LANGFUSE_S3_MEDIA_UPLOAD_FORCE_PATH_STYLEtrue
LANGFUSE_S3_MEDIA_UPLOAD_PREFIXmedia/

Deploy button for your README

Add a one-click deploy link to your repository or docs. Two variants: for light and dark backgrounds.

Deploy on SkifflyDeploy on Skiffly
Markdown · Light background
[![Deploy on Skiffly](https://skiffly.dev/button.svg)](https://skiffly.dev/templates/langfuse)
Markdown · Dark background
[![Deploy on Skiffly](https://skiffly.dev/button-dark.svg)](https://skiffly.dev/templates/langfuse)
HTML
<a href="https://skiffly.dev/templates/langfuse"><img src="https://skiffly.dev/button.svg" alt="Deploy on Skiffly" height="32"></a>

Deploy Langfuse in one click

Volumes, secrets and domain pre-wired. Runs on EU nodes, paid per minute from a prepaid balance.