Install Langfuse
Official Documentation: https://langfuse.com/docs
🚀Installation
Install By
Preliminary
1. Kubernetes is installed; if not, check 🔗link2. Helm is installed; if not, check 🔗link3. Ingress is installed; if not, check 🔗link4. Cert-Manager is installed; if not, check 🔗link1.prepare namespace and secrets
Details
kubectl get namespaces monitor > /dev/null 2>&1 || kubectl create namespace monitor
kubectl -n monitor create secret generic langfuse-secret \
--from-literal=NEXTAUTH_SECRET=$(tr -dc A-Za-z0-9 </dev/urandom | head -c 32) \
--from-literal=SALT=$(tr -dc A-Za-z0-9 </dev/urandom | head -c 32)2.prepare `langfuse.values.yaml`
Details
# Minimal example. Adjust storage classes, resource limits, and domain before production use.
ingress:
enabled: true
className: nginx
annotations:
cert-manager.io/cluster-issuer: self-signed-ca-issuer
hosts:
- host: langfuse.dev.72602.online
paths:
- path: /
pathType: Prefix
tls:
- secretName: langfuse.dev.72602.online-tls
hosts:
- langfuse.dev.72602.online
env:
NEXTAUTH_URL: https://langfuse.dev.72602.online
TELEMETRY_ENABLED: "false"
# Use external databases in production.
postgresql:
enabled: true
redis:
enabled: true
clickhouse:
enabled: true3.install chart
Details
helm repo add langfuse https://langfuse.github.io/langfuse-k8s
helm repo update
helm upgrade --install langfuse langfuse/langfuse \
-n monitor \
-f langfuse.values.yaml \
--atomic4.monitor status
Details
kubectl -n monitor get pods
kubectl -n monitor get ingress
kubectl -n monitor logs deploy/langfuse-web --tail=100Preliminary
1. Kubernetes is installed; if not, check 🔗link2. Helm is installed; if not, check 🔗link3. ArgoCD is installed; if not, check 🔗link1.prepare `langfuse-app.yaml`
Details
kubectl -n argocd apply -f - <<'EOF'
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: langfuse
namespace: argocd
spec:
project: default
source:
repoURL: https://langfuse.github.io/langfuse-k8s
chart: langfuse
targetRevision: 1.0.0
helm:
values: |
ingress:
enabled: true
className: nginx
annotations:
cert-manager.io/cluster-issuer: self-signed-ca-issuer
hosts:
- host: langfuse.dev.72602.online
paths:
- path: /
pathType: Prefix
tls:
- secretName: langfuse.dev.72602.online-tls
hosts:
- langfuse.dev.72602.online
env:
NEXTAUTH_URL: https://langfuse.dev.72602.online
TELEMETRY_ENABLED: "false"
postgresql:
enabled: true
redis:
enabled: true
clickhouse:
enabled: true
destination:
server: https://kubernetes.default.svc
namespace: monitor
syncPolicy:
syncOptions:
- CreateNamespace=true
- ServerSideApply=true
EOF2.sync by argocd
Details
argocd app sync argocd/langfuse3.monitor status
Details
argocd app get argocd/langfuse
kubectl -n monitor get pods
kubectl -n monitor get ingressVerify
Details
K8S_MASTER_IP=$(kubectl get nodes --selector=node-role.kubernetes.io/control-plane -o jsonpath='{$.items[0].status.addresses[?(@.type=="InternalIP")].address}')
echo "$K8S_MASTER_IP langfuse.dev.72602.online" | sudo tee -a /etc/hosts
curl -kI https://langfuse.dev.72602.onlineIf response status is 200 or 302, open https://langfuse.dev.72602.online in browser.