环境:
Os:Centos 7
langfuse:
升级前版本:V2.70.1
升级后版本:V3.110
说明:
v3部署在新机器,我们需要将v2下的postgresql外挂的数据目录文件拷贝到v3下的外挂数据目录
说明:yaml资源清单文件直接下载,尽量不要复制粘贴,避免不必要的错误.
1.新机器准备langfuse部署目录
[root@kvm-181 home]# mkdir -p /home/middle/langfuse/langfuse
下面下载的yaml文件就保存在该目录
下载地址:
https://github.com/langfuse/langfuse/blob/v3.110.0/docker-compose.yml
[root@host135 langfuse]# ls -al
total 8
drwxr-xr-x 2 root root 32 May 20 09:11 .
drwxr-xr-x 3 root root 22 May 20 09:11 ..
-rw-r--r-- 1 root root 7294 May 20 09:03 docker-compose.yml
[root@host135 langfuse]# pwd
/home/middle/langfuse/langfuse
需要进行修改,修改的地方:镜像地址(docker hub无法访问)和外挂目录,最后修改后的文件内容如下:
[root@host135 langfuse]# more docker-compose.yml
# Make sure to update the credential placeholders with your own secrets.
# We mark them with # CHANGEME in the file below.
# In addition, we recommend to restrict inbound traffic on the host to langfuse-web (port 3000) and minio (port 9090) only.
# All other components are bound to localhost (127.0.0.1) to only accept connections from the local machine.
# External connections from other machines will not be able to reach these services directly.
services:langfuse-worker:image: registry.cn-shenzhen.aliyuncs.com/hxlk8s/langfuse-worker:3.110restart: alwaysdepends_on: &langfuse-depends-onpostgres:condition: service_healthyminio:condition: service_healthyredis:condition: service_healthyclickhouse:condition: service_healthyports:- 127.0.0.1:3030:3030environment: &langfuse-worker-envDATABASE_URL: postgresql://postgres:postgres@postgres:5432/postgres # CHANGEMESALT: "mysalt" # CHANGEMEENCRYPTION_KEY: "0000000000000000000000000000000000000000000000000000000000000000" # CHANGEME: generate via `openssl rand -hex
32`TELEMETRY_ENABLED: ${TELEMETRY_ENABLED:-true}LANGFUSE_ENABLE_EXPERIMENTAL_FEATURES: ${LANGFUSE_ENABLE_EXPERIMENTAL_FEATURES:-true}CLICKHOUSE_MIGRATION_URL: ${CLICKHOUSE_MIGRATION_URL:-clickhouse://clickhouse:9000}CLICKHOUSE_URL: ${CLICKHOUSE_URL:-http://clickhouse:8123}CLICKHOUSE_USER: ${CLICKHOUSE_USER:-clickhouse}CLICKHOUSE_PASSWORD: ${CLICKHOUSE_PASSWORD:-clickhouse} # CHANGEMECLICKHOUSE_CLUSTER_ENABLED: ${CLICKHOUSE_CLUSTER_ENABLED:-false}LANGFUSE_S3_EVENT_UPLOAD_BUCKET: ${LANGFUSE_S3_EVENT_UPLOAD_BUCKET:-langfuse}LANGFUSE_S3_EVENT_UPLOAD_REGION: ${LANGFUSE_S3_EVENT_UPLOAD_REGION:-auto}LANGFUSE_S3_EVENT_UPLOAD_ACCESS_KEY_ID: ${LANGFUSE_S3_EVENT_UPLOAD_ACCESS_KEY_ID:-minio}LANGFUSE_S3_EVENT_UPLOAD_SECRET_ACCESS_KEY: ${LANGFUSE_S3_EVENT_UPLOAD_SECRET_ACCESS_KEY:-miniosecret} # CHANGEMELANGFUSE_S3_EVENT_UPLOAD_ENDPOINT: ${LANGFUSE_S3_EVENT_UPLOAD_ENDPOINT:-http://minio:9000}LANGFUSE_S3_EVENT_UPLOAD_FORCE_PATH_STYLE: ${LANGFUSE_S3_EVENT_UPLOAD_FORCE_PATH_STYLE:-true}LANGFUSE_S3_EVENT_UPLOAD_PREFIX: ${LANGFUSE_S3_EVENT_UPLOAD_PREFIX:-events/}LANGFUSE_S3_MEDIA_UPLOAD_BUCKET: ${LANGFUSE_S3_MEDIA_UPLOAD_BUCKET:-langfuse}LANGFUSE_S3_MEDIA_UPLOAD_REGION: ${LANGFUSE_S3_MEDIA_UPLOAD_REGION:-auto}LANGFUSE_S3_MEDIA_UPLOAD_ACCESS_KEY_ID: ${LANGFUSE_S3_MEDIA_UPLOAD_ACCESS_KEY_ID:-minio}LANGFUSE_S3_MEDIA_UPLOAD_SECRET_ACCESS_KEY: ${LANGFUSE_S3_MEDIA_UPLOAD_SECRET_ACCESS_KEY:-miniosecret} # CHANGEMELANGFUSE_S3_MEDIA_UPLOAD_ENDPOINT: ${LANGFUSE_S3_MEDIA_UPLOAD_ENDPOINT:-http://localhost:9090}LANGFUSE_S3_MEDIA_UPLOAD_FORCE_PATH_STYLE: ${LANGFUSE_S3_MEDIA_UPLOAD_FORCE_PATH_STYLE:-true}LANGFUSE_S3_MEDIA_UPLOAD_PREFIX: ${LANGFUSE_S3_MEDIA_UPLOAD_PREFIX:-media/}LANGFUSE_S3_BATCH_EXPORT_ENABLED: ${LANGFUSE_S3_BATCH_EXPORT_ENABLED:-false}LANGFUSE_S3_BATCH_EXPORT_BUCKET: ${LANGFUSE_S3_BATCH_EXPORT_BUCKET:-langfuse}LANGFUSE_S3_BATCH_EXPORT_PREFIX: ${LANGFUSE_S3_BATCH_EXPORT_PREFIX:-exports/}LANGFUSE_S3_BATCH_EXPORT_REGION: ${LANGFUSE_S3_BATCH_EXPORT_REGION:-auto}LANGFUSE_S3_BATCH_EXPORT_ENDPOINT: ${LANGFUSE_S3_BATCH_EXPORT_ENDPOINT:-http://minio:9000}LANGFUSE_S3_BATCH_EXPORT_EXTERNAL_ENDPOINT: ${LANGFUSE_S3_BATCH_EXPORT_EXTERNAL_ENDPOINT:-http://localhost:9090}LANGFUSE_S3_BATCH_EXPORT_ACCESS_KEY_ID: ${LANGFUSE_S3_BATCH_EXPORT_ACCESS_KEY_ID:-minio}LANGFUSE_S3_BATCH_EXPORT_SECRET_ACCESS_KEY: ${LANGFUSE_S3_BATCH_EXPORT_SECRET_ACCESS_KEY:-miniosecret} # CHANGEMELANGFUSE_S3_BATCH_EXPORT_FORCE_PATH_STYLE: ${LANGFUSE_S3_BATCH_EXPORT_FORCE_PATH_STYLE:-true}LANGFUSE_INGESTION_QUEUE_DELAY_MS: ${LANGFUSE_INGESTION_QUEUE_DELAY_MS:-}LANGFUSE_INGESTION_CLICKHOUSE_WRITE_INTERVAL_MS: ${LANGFUSE_INGESTION_CLICKHOUSE_WRITE_INTERVAL_MS:-}REDIS_HOST: ${REDIS_HOST:-redis}REDIS_PORT: ${REDIS_PORT:-6379}REDIS_AUTH: ${REDIS_AUTH:-myredissecret} # CHANGEMEREDIS_TLS_ENABLED: ${REDIS_TLS_ENABLED:-false}REDIS_TLS_CA: ${REDIS_TLS_CA:-/certs/ca.crt}REDIS_TLS_CERT: ${REDIS_TLS_CERT:-/certs/redis.crt}REDIS_TLS_KEY: ${REDIS_TLS_KEY:-/certs/redis.key}langfuse-web:image: registry.cn-shenzhen.aliyuncs.com/hxlk8s/langfuse:3.110restart: alwaysdepends_on: *langfuse-depends-onports:- 3000:3000environment:<<: *langfuse-worker-envNEXTAUTH_URL: http://localhost:3000
NEXTAUTH_SECRET: mysecret # CHANGEMELANGFUSE_INIT_ORG_ID: ${LANGFUSE_INIT_ORG_ID:-}LANGFUSE_INIT_ORG_NAME: ${LANGFUSE_INIT_ORG_NAME:-}LANGFUSE_INIT_PROJECT_ID: ${LANGFUSE_INIT_PROJECT_ID:-}LANGFUSE_INIT_PROJECT_NAME: ${LANGFUSE_INIT_PROJECT_NAME:-}LANGFUSE_INIT_PROJECT_PUBLIC_KEY: ${LANGFUSE_INIT_PROJECT_PUBLIC_KEY:-}LANGFUSE_INIT_PROJECT_SECRET_KEY: ${LANGFUSE_INIT_PROJECT_SECRET_KEY:-}LANGFUSE_INIT_USER_EMAIL: ${LANGFUSE_INIT_USER_EMAIL:-}LANGFUSE_INIT_USER_NAME: ${LANGFUSE_INIT_USER_NAME:-}LANGFUSE_INIT_USER_PASSWORD: ${LANGFUSE_INIT_USER_PASSWORD:-}clickhouse:image: registry.cn-shenzhen.aliyuncs.com/hxlk8s/clickhouse-server:24.8restart: always##user: "101:101"environment:CLICKHOUSE_DB: defaultCLICKHOUSE_USER: clickhouseCLICKHOUSE_PASSWORD: clickhouse # CHANGEMEvolumes:- /home/middle/langfuse/clickhouse/data:/var/lib/clickhouse- /home/middle/langfuse/clickhouse/logs:/var/log/clickhouse-server##- /home/middle/langfuse/clickhouse/conf/config.xml:/etc/clickhouse-server/config.xml##- /home/middle/langfuse/clickhouse/conf/users.xml:/etc/clickhouse-server/users.xmlports:- 127.0.0.1:8123:8123- 127.0.0.1:9000:9000healthcheck:test: wget --no-verbose --tries=1 --spider http://localhost:8123/ping || exit 1
interval: 5stimeout: 5sretries: 10start_period: 1sminio:image: registry.cn-shenzhen.aliyuncs.com/hxlk8s/minio:RELEASE.2025-04-22T22-12-26Zrestart: alwaysentrypoint: sh# create the 'langfuse' bucket before starting the servicecommand: -c 'mkdir -p /data/langfuse && minio server --address ":9000" --console-address ":9001" /data'environment:MINIO_ROOT_USER: minioMINIO_ROOT_PASSWORD: miniosecret # CHANGEMEports:- 9090:9000- 9091:9001volumes:- /home/middle/langfuse/minio_data:/datahealthcheck:test: ["CMD", "mc", "ready", "local"]interval: 1stimeout: 5sretries: 5start_period: 1sredis:image: registry.cn-shenzhen.aliyuncs.com/hxlk8s/redis:7.4restart: always# CHANGEME: row below to secure redis passwordcommand: >--requirepass ${REDIS_AUTH:-myredissecret}ports:- 127.0.0.1:6379:6379healthcheck:test: ["CMD", "redis-cli", "ping"]interval: 3stimeout: 10sretries: 10postgres:image: registry.cn-shenzhen.aliyuncs.com/hxlk8s/postgresql:16.4.0restart: alwayshealthcheck:test: ["CMD-SHELL", "pg_isready -U postgres"]interval: 3stimeout: 3sretries: 10environment:POSTGRES_USER: postgresPOSTGRES_PASSWORD: postgres # CHANGEMEPOSTGRES_DB: postgresports:- 127.0.0.1:5432:5432volumes:- /home/middle/langfuse/pgdata:/var/lib/postgresql/data