В этой статье разберу установку с минимальными усилиями с использованием Helm и локального однонодового кластера Kubeadm.
Создаём кластер:

Добавляем и обновляем репо с Langfuse:
helm repo add langfuse https://langfuse.github.io/langfuse-k8s
helm repo update
Создаём файл values.override.yaml для переопределения настроек helm-приложения под свои нужды и возможности. Можно не добавлять секцию additionalEnv как в примере, но тогда вручную придётся добавлять пользователя и создавать новый проект. Мне подошли такие значения:
langfuse:
salt:
value: "salt"
nextauth:
secret:
value: "nextauth-secret"
resources:
limits:
cpu: "1"
memory: "2Gi"
requests:
cpu: "1"
memory: "2Gi"
web:
pod:
additionalEnv:
- name: LANGFUSE_INIT_ORG_ID
value: "1"
- name: LANGFUSE_INIT_ORG_NAME
value: "example"
- name: LANGFUSE_INIT_PROJECT_ID
value: "1"
- name: LANGFUSE_INIT_PROJECT_NAME
value: "example proj"
- name: LANGFUSE_INIT_PROJECT_PUBLIC_KEY
value: pk-lf-3a1ae631-eb38-4b14-ae81-c0adfe517cab
- name: LANGFUSE_INIT_PROJECT_SECRET_KEY
value: sk-lf-a4279b11-2c10-4bad-b9a2-a6e967360869
- name: LANGFUSE_INIT_USER_EMAIL
value: admin@example.com
- name: LANGFUSE_INIT_USER_NAME
value: admin
- name: LANGFUSE_INIT_USER_PASSWORD
value: password
postgresql:
auth:
username: langfuse
password: "password"
clickhouse:
auth:
password: "password"
resources:
limits:
cpu: "1"
memory: "2Gi"
requests:
cpu: "1"
memory: "2Gi"
redis:
auth:
password: "password"
primary:
resources:
limits:
cpu: "0.5"
memory: "1Gi"
requests:
cpu: "0.5"
memory: "1Gi"
s3:
auth:
rootPassword: "password"
resources:
limits:
cpu: "1"
memory: "1Gi"
requests:
cpu: "1"
memory: "1Gi"
zookeeper:
resources:
limits:
cpu: "1"
memory: "2Gi"
requests:
cpu: "1"
memory: "2Gi"
Выполняем команду установки из папки, где находится yaml-файл:
helm install langfuse langfuse/langfuse -f values.override.yaml
Далее ждём... пока все поды запустятся

Для доступа к ui-интерфейсу пробросим порт:
kubectl port-forward svc/langfuse-web 3333:3000
Логинимся с заранее установленными кредами в переменных LANGFUSE_INIT_USER_EMAIL и LANGFUSE_INIT_USER_PASSWORD:

Для удаления приложения:
helm uninstall langfuse
Важно! После удаления ресурсы Persistent Volume Claims (PVCs) остаются не тронутыми. Поэтому, если заново установить langfuse, в интерфейсе увидим, что данные которые были до удаления никуда не делись.
Для полной очистки выполним дополнительно команду:
kubectl delete pvc -l "app.kubernetes.io/instance=langfuse"
Кстати, при развертывании Langfuse в боевом k8s, я столкнулся с ошибкой запуска компонента langfuse-web, связанной с миграциями в БД ClickHouse: error: Dirty database version XX. Fix and force version. Хотя этот случай даже описан на официальном сайте, я решил проблему проще, переустанавливая приложение с полной очисткой несколько раз, до того момента, когда все миграции наконец прошли и все поды успешно запустились.