first commit

This commit is contained in:
2026-05-08 00:26:56 -03:00
parent 21161cc9ce
commit f58cdb63e2
6 changed files with 84 additions and 201 deletions

View File

@@ -7,14 +7,20 @@ echo "🔐 Criando secrets no OCI Vault..."
# ⚙️ CONFIG
# =========================
export COMPARTMENT_ID="ocid1.compartment.oc1..aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
export COMPARTMENT_ID="ocid1.compartment.oc1..xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
export VAULT_ID="ocid1.vault.oc1.iad.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
export VAULT_ID="ocid1.vault.oc1.iad.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
export KEY_ID="ocid1.key.oc1.iad.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
export KEY_ID="ocid1.key.oc1.iad.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
export USER_OCID="ocid1.user.oc1..xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
export PREFIX="langfuse"
# O par de keys de Custom Keys não pode ser gerado automaticamente pois não é fornecido o Secret. Isso só é possível via Console OCi
export S3_ACCESS_KEY="88328a8bd76fe91d9891ef5a95169c981c56dd16"
export S3_SECRET_KEY="/kzBzm14HLP9WybwHtAXmNyyJB6WUU74bI2cVeNYhaQ="
# =========================
# 🔑 SENHAS
# =========================
@@ -78,9 +84,13 @@ ENCRYPTION_SECRET=$(create_secret "${PREFIX}-encryption" "$ENCRYPTION_KEY")
SALT_SECRET=$(create_secret "${PREFIX}-salt" "$COMMON_SECRET")
OCI_ACCESS_SECRET=$(create_secret "${PREFIX}-oci-access" "$COMMON_SECRET")
OCI_ACCESS_SECRET=$(create_secret \
"${PREFIX}-oci-access" \
"$S3_ACCESS_KEY")
OCI_SECRET_SECRET=$(create_secret "${PREFIX}-oci-secret" "$COMMON_SECRET")
OCI_SECRET_SECRET=$(create_secret \
"${PREFIX}-oci-secret" \
"$S3_SECRET_KEY")
# =========================
# 📤 OUTPUT
@@ -98,6 +108,5 @@ echo "export OCI_SECRET_ENCRYPTION=$ENCRYPTION_SECRET"
echo "export OCI_SECRET_SALT=$SALT_SECRET"
echo "export OCI_SECRET_OCI_ACCESS=$OCI_ACCESS_SECRET"
echo "export OCI_SECRET_OCI_SECRET=$OCI_SECRET_SECRET"
echo ""
echo "💡 Salve isso no seu pipeline ou env.sh"

View File

@@ -43,7 +43,7 @@ spec:
- name: ocirsecret
containers:
- name: langfuse-db
image: iad.ocir.io/xxxxxxxxxx/postgres:15
image: iad.ocir.io/xxxxxxxxxxx/postgres:15
ports:
- containerPort: 5432
env:
@@ -150,7 +150,7 @@ spec:
- name: ocirsecret
containers:
- name: clickhouse
image: iad.ocir.io/xxxxxxxxxxxx/clickhouse:23.8
image: iad.ocir.io/xxxxxxxxxxx/clickhouse:24.3
ports:
- containerPort: 8123
- containerPort: 9000
@@ -259,7 +259,7 @@ spec:
done
containers:
- name: langfuse
image: iad.ocir.io/xxxxxxxxxxxx/langfuse:3.1.0
image: iad.ocir.io/xxxxxxxxxxx/langfuse:3.167.4
ports:
- containerPort: 3000
env:
@@ -270,9 +270,9 @@ spec:
- name: SALT
value: "salt-secret-123"
- name: ENCRYPTION_KEY
value: "ea58fe36914e38ec5d52657c928d3e8350ff1513e1930e0fd306dce6422bf87d"
value: "eec258dc97a3baea5a05de906ebe3a92b57f1cccc191ea2ad15fab3890609dda"
- name: NEXTAUTH_URL
value: https://langfuse.seudominio.com
value: http://localhost:8087
- name: TELEMETRY_ENABLED
value: "false"
- name: CLICKHOUSE_URL
@@ -292,61 +292,26 @@ spec:
- name: REDIS_AUTH
value: "redis123"
# ===== OCI OBJECT STORAGE (EVENTS) =====
- name: LANGFUSE_USE_OCI_NATIVE_OBJECT_STORAGE
value: "true"
- name: LANGFUSE_OCI_AUTH_TYPE
value: "instance_principal"
- name: LANGFUSE_S3_EVENT_UPLOAD_BUCKET
value: "langfuse-events"
- name: LANGFUSE_S3_EVENT_UPLOAD_PREFIX
value: "events/"
- name: LANGFUSE_S3_EVENT_UPLOAD_REGION
value: "us-ashburn-1"
- name: LANGFUSE_S3_EVENT_UPLOAD_ENDPOINT
value: "https://xxxxxxxxxxx.compat.objectstorage.us-ashburn-1.oraclecloud.com"
value: "https://xxxxxxxxxxxxxx.compat.objectstorage.us-ashburn-1.oraclecloud.com"
# - name: LANGFUSE_S3_EVENT_UPLOAD_ACCESS_KEY_ID
# valueFrom:
# secretKeyRef:
# name: langfuse-secret
# key: oci-access-key
#
# - name: LANGFUSE_S3_EVENT_UPLOAD_SECRET_ACCESS_KEY
# valueFrom:
# secretKeyRef:
# name: langfuse-secret
# key: oci-secret-key
- name: LANGFUSE_S3_EVENT_UPLOAD_ACCESS_KEY_ID
value: "88328a8bd76fe91d9891ef5a95169c981c56dd16"
- name: LANGFUSE_S3_EVENT_UPLOAD_SECRET_ACCESS_KEY
value: "/kzBzm14HLP9WybwHtAXmNyyJB6WUU74bI2cVeNYhaQ="
- name: LANGFUSE_S3_EVENT_UPLOAD_FORCE_PATH_STYLE
value: "true"
# ===== EXPORT =====
- name: LANGFUSE_S3_BATCH_EXPORT_ENABLED
value: "true"
- name: LANGFUSE_S3_BATCH_EXPORT_BUCKET
value: "langfuse-exports"
- name: LANGFUSE_S3_BATCH_EXPORT_REGION
value: "us-ashburn-1"
- name: LANGFUSE_S3_BATCH_EXPORT_ENDPOINT
value: "https://xxxxxxxxxxxx.compat.objectstorage.us-ashburn-1.oraclecloud.com"
# - name: LANGFUSE_S3_BATCH_EXPORT_ACCESS_KEY_ID
# valueFrom:
# secretKeyRef:
# name: langfuse-secret
# key: oci-access-key
#
# - name: LANGFUSE_S3_BATCH_EXPORT_SECRET_ACCESS_KEY
# valueFrom:
# secretKeyRef:
# name: langfuse-secret
# key: oci-secret-key
- name: LANGFUSE_S3_BATCH_EXPORT_FORCE_PATH_STYLE
value: "true"
resources:
requests:
cpu: "50m"
@@ -427,12 +392,12 @@ spec:
done
containers:
- name: worker
image: iad.ocir.io/xxxxxxxxxxxx/langfuse-worker:3.1.0
image: iad.ocir.io/xxxxxxxxxxx/langfuse-worker:3.167
env:
- name: DATABASE_URL
value: "postgresql://langfuse:langfuse123@langfuse-db:5432/langfuse"
- name: ENCRYPTION_KEY
value: "ea58fe36914e38ec5d52657c928d3e8350ff1513e1930e0fd306dce6422bf87d"
value: "eec258dc97a3baea5a05de906ebe3a92b57f1cccc191ea2ad15fab3890609dda"
- name: CLICKHOUSE_URL
value: "http://langfuse-clickhouse:8123"
- name: CLICKHOUSE_USER
@@ -450,61 +415,26 @@ spec:
- name: REDIS_AUTH
value: "redis123"
# ===== OCI OBJECT STORAGE (EVENTS) =====
- name: LANGFUSE_USE_OCI_NATIVE_OBJECT_STORAGE
value: "true"
- name: LANGFUSE_OCI_AUTH_TYPE
value: "instance_principal"
- name: LANGFUSE_S3_EVENT_UPLOAD_BUCKET
value: "langfuse-events"
- name: LANGFUSE_S3_EVENT_UPLOAD_PREFIX
value: "events/"
- name: LANGFUSE_S3_EVENT_UPLOAD_REGION
value: "us-ashburn-1"
- name: LANGFUSE_S3_EVENT_UPLOAD_ENDPOINT
value: "https://xxxxxxxxx.compat.objectstorage.us-ashburn-1.oraclecloud.com"
value: "https://xxxxxxxxxxxxxx.compat.objectstorage.us-ashburn-1.oraclecloud.com"
# - name: LANGFUSE_S3_EVENT_UPLOAD_ACCESS_KEY_ID
# valueFrom:
# secretKeyRef:
# name: langfuse-secret
# key: oci-access-key
#
# - name: LANGFUSE_S3_EVENT_UPLOAD_SECRET_ACCESS_KEY
# valueFrom:
# secretKeyRef:
# name: langfuse-secret
# key: oci-secret-key
- name: LANGFUSE_S3_EVENT_UPLOAD_ACCESS_KEY_ID
value: "88328a8bd76fe91d9891ef5a95169c981c56dd16"
- name: LANGFUSE_S3_EVENT_UPLOAD_SECRET_ACCESS_KEY
value: "/kzBzm14HLP9WybwHtAXmNyyJB6WUU74bI2cVeNYhaQ="
- name: LANGFUSE_S3_EVENT_UPLOAD_FORCE_PATH_STYLE
value: "true"
# ===== EXPORT =====
- name: LANGFUSE_S3_BATCH_EXPORT_ENABLED
value: "true"
- name: LANGFUSE_S3_BATCH_EXPORT_BUCKET
value: "langfuse-exports"
- name: LANGFUSE_S3_BATCH_EXPORT_REGION
value: "us-ashburn-1"
- name: LANGFUSE_S3_BATCH_EXPORT_ENDPOINT
value: "https://xxxxxxxxxxx.compat.objectstorage.us-ashburn-1.oraclecloud.com"
# - name: LANGFUSE_S3_BATCH_EXPORT_ACCESS_KEY_ID
# valueFrom:
# secretKeyRef:
# name: langfuse-secret
# key: oci-access-key
#
# - name: LANGFUSE_S3_BATCH_EXPORT_SECRET_ACCESS_KEY
# valueFrom:
# secretKeyRef:
# name: langfuse-secret
# key: oci-secret-key
- name: LANGFUSE_S3_BATCH_EXPORT_FORCE_PATH_STYLE
value: "true"
resources:
requests:
cpu: "50m"

View File

@@ -259,7 +259,7 @@ spec:
done
containers:
- name: ${APP_NAME}
image: ${IMAGE_REPOSITORY}/langfuse:${IMAGE_TAG}
image: ${IMAGE_REPOSITORY}/langfuse:${LANGFUSE_TAG}
ports:
- containerPort: 3000
env:
@@ -292,61 +292,26 @@ spec:
- name: REDIS_AUTH
value: "${REDIS_AUTH}"
# ===== OCI OBJECT STORAGE (EVENTS) =====
- name: LANGFUSE_USE_OCI_NATIVE_OBJECT_STORAGE
value: "true"
- name: LANGFUSE_OCI_AUTH_TYPE
value: "instance_principal"
- name: LANGFUSE_S3_EVENT_UPLOAD_BUCKET
value: "langfuse-events"
- name: LANGFUSE_S3_EVENT_UPLOAD_PREFIX
value: "events/"
- name: LANGFUSE_S3_EVENT_UPLOAD_REGION
value: "${OCI_REGION}"
- name: LANGFUSE_S3_EVENT_UPLOAD_ENDPOINT
value: "https://${OCI_NAMESPACE}.compat.objectstorage.${OCI_REGION}.oraclecloud.com"
# - name: LANGFUSE_S3_EVENT_UPLOAD_ACCESS_KEY_ID
# valueFrom:
# secretKeyRef:
# name: langfuse-secret
# key: oci-access-key
#
# - name: LANGFUSE_S3_EVENT_UPLOAD_SECRET_ACCESS_KEY
# valueFrom:
# secretKeyRef:
# name: langfuse-secret
# key: oci-secret-key
- name: LANGFUSE_S3_EVENT_UPLOAD_ACCESS_KEY_ID
value: "${S3_ACCESS_KEY}"
- name: LANGFUSE_S3_EVENT_UPLOAD_SECRET_ACCESS_KEY
value: "${S3_SECRET_KEY}"
- name: LANGFUSE_S3_EVENT_UPLOAD_FORCE_PATH_STYLE
value: "true"
# ===== EXPORT =====
- name: LANGFUSE_S3_BATCH_EXPORT_ENABLED
value: "true"
- name: LANGFUSE_S3_BATCH_EXPORT_BUCKET
value: "langfuse-exports"
- name: LANGFUSE_S3_BATCH_EXPORT_REGION
value: "${OCI_REGION}"
- name: LANGFUSE_S3_BATCH_EXPORT_ENDPOINT
value: "https://${OCI_NAMESPACE}.compat.objectstorage.${OCI_REGION}.oraclecloud.com"
# - name: LANGFUSE_S3_BATCH_EXPORT_ACCESS_KEY_ID
# valueFrom:
# secretKeyRef:
# name: langfuse-secret
# key: oci-access-key
#
# - name: LANGFUSE_S3_BATCH_EXPORT_SECRET_ACCESS_KEY
# valueFrom:
# secretKeyRef:
# name: langfuse-secret
# key: oci-secret-key
- name: LANGFUSE_S3_BATCH_EXPORT_FORCE_PATH_STYLE
value: "true"
resources:
requests:
cpu: "50m"
@@ -427,7 +392,7 @@ spec:
done
containers:
- name: worker
image: ${IMAGE_REPOSITORY}/langfuse-worker:${IMAGE_TAG}
image: ${IMAGE_REPOSITORY}/langfuse-worker:${LANGFUSE_WORKER_TAG}
env:
- name: DATABASE_URL
value: "${DATABASE_URL}"
@@ -450,61 +415,26 @@ spec:
- name: REDIS_AUTH
value: "${REDIS_AUTH}"
# ===== OCI OBJECT STORAGE (EVENTS) =====
- name: LANGFUSE_USE_OCI_NATIVE_OBJECT_STORAGE
value: "true"
- name: LANGFUSE_OCI_AUTH_TYPE
value: "instance_principal"
- name: LANGFUSE_S3_EVENT_UPLOAD_BUCKET
value: "langfuse-events"
- name: LANGFUSE_S3_EVENT_UPLOAD_PREFIX
value: "events/"
- name: LANGFUSE_S3_EVENT_UPLOAD_REGION
value: "${OCI_REGION}"
- name: LANGFUSE_S3_EVENT_UPLOAD_ENDPOINT
value: "https://${OCI_NAMESPACE}.compat.objectstorage.${OCI_REGION}.oraclecloud.com"
# - name: LANGFUSE_S3_EVENT_UPLOAD_ACCESS_KEY_ID
# valueFrom:
# secretKeyRef:
# name: langfuse-secret
# key: oci-access-key
#
# - name: LANGFUSE_S3_EVENT_UPLOAD_SECRET_ACCESS_KEY
# valueFrom:
# secretKeyRef:
# name: langfuse-secret
# key: oci-secret-key
- name: LANGFUSE_S3_EVENT_UPLOAD_ACCESS_KEY_ID
value: "${S3_ACCESS_KEY}"
- name: LANGFUSE_S3_EVENT_UPLOAD_SECRET_ACCESS_KEY
value: "${S3_SECRET_KEY}"
- name: LANGFUSE_S3_EVENT_UPLOAD_FORCE_PATH_STYLE
value: "true"
# ===== EXPORT =====
- name: LANGFUSE_S3_BATCH_EXPORT_ENABLED
value: "true"
- name: LANGFUSE_S3_BATCH_EXPORT_BUCKET
value: "langfuse-exports"
- name: LANGFUSE_S3_BATCH_EXPORT_REGION
value: "${OCI_REGION}"
- name: LANGFUSE_S3_BATCH_EXPORT_ENDPOINT
value: "https://${OCI_NAMESPACE}.compat.objectstorage.${OCI_REGION}.oraclecloud.com"
# - name: LANGFUSE_S3_BATCH_EXPORT_ACCESS_KEY_ID
# valueFrom:
# secretKeyRef:
# name: langfuse-secret
# key: oci-access-key
#
# - name: LANGFUSE_S3_BATCH_EXPORT_SECRET_ACCESS_KEY
# valueFrom:
# secretKeyRef:
# name: langfuse-secret
# key: oci-secret-key
- name: LANGFUSE_S3_BATCH_EXPORT_FORCE_PATH_STYLE
value: "true"
resources:
requests:
cpu: "50m"

View File

@@ -8,13 +8,14 @@ set -e
# =========================
export REGION="iad"
export TENANCY_NAMESPACE="aaaaaaaaa"
export TENANCY_NAMESPACE="idavixsf5sbx"
export REGISTRY="${REGION}.ocir.io/${TENANCY_NAMESPACE}"
# Tags fixas (produção)
export LANGFUSE_TAG="3.1.0"
export CLICKHOUSE_TAG="23.8"
export LANGFUSE_TAG="3.167.4"
export LANGFUSE_WORKER_TAG="3.167"
export CLICKHOUSE_TAG="24.3"
export REDIS_TAG="7.2"
export POSTGRES_TAG="15"
@@ -38,12 +39,12 @@ docker push ${REGISTRY}/langfuse:${LANGFUSE_TAG}
echo "📦 Langfuse Worker..."
docker pull langfuse/langfuse-worker:${LANGFUSE_TAG}
docker pull langfuse/langfuse-worker:${LANGFUSE_WORKER_TAG}
docker tag langfuse/langfuse-worker:${LANGFUSE_TAG} \
${REGISTRY}/langfuse-worker:${LANGFUSE_TAG}
docker tag langfuse/langfuse-worker:${LANGFUSE_WORKER_TAG} \
${REGISTRY}/langfuse-worker:${LANGFUSE_WORKER_TAG}
docker push ${REGISTRY}/langfuse-worker:${LANGFUSE_TAG}
docker push ${REGISTRY}/langfuse-worker:${LANGFUSE_WORKER_TAG}
# =========================

View File

@@ -72,15 +72,16 @@ export APP_NAME="langfuse"
export K8S_NAMESPACE="langfuse"
export IMAGE_REPOSITORY="${REGISTRY}"
export IMAGE_TAG="3.1.0"
export LANGFUSE_TAG="3.167.4"
export LANGFUSE_WORKER_TAG="3.167"
export CLICKHOUSE_TAG="23.8"
export CLICKHOUSE_TAG="24.3"
export REDIS_TAG="7.2"
export POSTGRES_TAG="15"
echo "✔️ App: $APP_NAME"
echo "✔️ Namespace: $K8S_NAMESPACE"
echo "✔️ Image: $IMAGE_REPOSITORY:$IMAGE_TAG"
echo "✔️ Image: $IMAGE_REPOSITORY:$LANGFUSE_TAG"
# =========================
@@ -91,7 +92,7 @@ echo "✔️ Image: $IMAGE_REPOSITORY:$IMAGE_TAG"
echo ""
echo "🌐 Etapa 5: URL..."
export NEXTAUTH_URL="https://langfuse.seudominio.com"
export NEXTAUTH_URL="http://localhost:8087"
echo "✔️ URL: $NEXTAUTH_URL"
@@ -136,6 +137,9 @@ echo "✔️ NEXTAUTH_SECRET carregado"
export ENCRYPTION_KEY=$(get_secret "$OCI_SECRET_ENCRYPTION" | tr -d '\r\n')
export S3_ACCESS_KEY=$(get_secret "$OCI_SECRET_OCI_ACCESS")
export S3_SECRET_KEY=$(get_secret "$OCI_SECRET_OCI_SECRET")
# Corrige automaticamente caso a key esteja inválida
if ! [[ "$ENCRYPTION_KEY" =~ ^[a-fA-F0-9]{64}$ ]]; then
echo "⚠️ ENCRYPTION_KEY inválida no Vault. Gerando automaticamente..."
@@ -193,7 +197,7 @@ echo "☁️ Etapa 9: Config OCI Object Storage..."
export LANGFUSE_S3_EVENT_UPLOAD_BUCKET="langfuse-events"
export LANGFUSE_S3_EVENT_UPLOAD_REGION="${OCI_REGION}"
export LANGFUSE_S3_EVENT_UPLOAD_ENDPOINT="https://${OCI_NAMESPACE}.compat.objectstorage.${OCI_REGION}.oraclecloud.com"
export LANGFUSE_USE_OCI_NATIVE_OBJECT_STORAGE="true"
#export LANGFUSE_USE_OCI_NATIVE_OBJECT_STORAGE="true"
echo "✔️ Bucket eventos: $LANGFUSE_S3_EVENT_UPLOAD_BUCKET"
# =========================

View File

@@ -17,6 +17,11 @@ export OCI_SECRET_NEXTAUTH="ocid1.vaultsecret.oc1.iad.xxxxxxxxxxxxxxxxxxxxxxxxxx
export OCI_SECRET_CLICKHOUSE="ocid1.vaultsecret.oc1.iad.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
export OCI_SECRET_REDIS="ocid1.vaultsecret.oc1.iad.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
export OCI_SECRET_DB="ocid1.vaultsecret.oc1.iad.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
export USER_OCID="ocid1.user.oc1..xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
# O par de keys de Custom Keys não pode ser gerado automaticamente pois não é fornecido o Secret. Isso só é possível via Console OCi
export OCI_ACCESS_KEY="88328a8bd76fe91d9891ef5a95169c981c56dd16"
export OCI_SECRET_KEY="/kzBzm14HLP9WybwHtAXmNyyJB6WUU74bI2cVeNYhaQ="
# =========================
# 🔑 VALORES
@@ -79,3 +84,7 @@ echo "✅ Secrets atualizados com sucesso!"
echo ""
echo "👉 ENCRYPTION_KEY usada:"
echo "$ENCRYPTION_KEY"
update_secret "$OCI_SECRET_OCI_ACCESS" "$OCI_ACCESS_KEY"
update_secret "$OCI_SECRET_OCI_SECRET" "$OCI_SECRET_KEY"