Install Langfuse

Official Documentation: https://langfuse.com/docs

🚀Installation

Install By

Preliminary

1. Kubernetes is installed; if not, check 🔗link


2. Helm is installed; if not, check 🔗link


3. Ingress is installed; if not, check 🔗link


4. Cert-Manager is installed; if not, check 🔗link


1.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: true

3.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 \
  --atomic

4.monitor status

Details
kubectl -n monitor get pods
kubectl -n monitor get ingress
kubectl -n monitor logs deploy/langfuse-web --tail=100

Preliminary

1. Kubernetes is installed; if not, check 🔗link


2. Helm is installed; if not, check 🔗link


3. ArgoCD is installed; if not, check 🔗link


1.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
EOF

2.sync by argocd

Details
argocd app sync argocd/langfuse

3.monitor status

Details
argocd app get argocd/langfuse
kubectl -n monitor get pods
kubectl -n monitor get ingress

Verify

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.online

If response status is 200 or 302, open https://langfuse.dev.72602.online in browser.