diff --git a/templates/compose/langfuse.yaml b/templates/compose/langfuse.yaml index 5797dd4a1..ddfa8b944 100644 --- a/templates/compose/langfuse.yaml +++ b/templates/compose/langfuse.yaml @@ -6,52 +6,48 @@ x-app-env: &app-env - NEXTAUTH_URL=${SERVICE_FQDN_LANGFUSE} - - DATABASE_URL=postgresql://${SERVICE_USER_POSTGRES}:${SERVICE_PASSWORD_POSTGRES}@postgres:5432/${POSTGRES_DB:-langfuse} + - DATABASE_URL=postgresql://${SERVICE_USER_POSTGRES}:${SERVICE_PASSWORD_POSTGRES}@postgres:5432/${POSTGRES_DB:-langfuse-db} - SALT=${SERVICE_PASSWORD_SALT} - ENCRYPTION_KEY=${SERVICE_PASSWORD_64_LANGFUSE} - - TELEMETRY_ENABLED=${TELEMETRY_ENABLED:-true} + - TELEMETRY_ENABLED=${TELEMETRY_ENABLED:-false} - LANGFUSE_ENABLE_EXPERIMENTAL_FEATURES=${LANGFUSE_ENABLE_EXPERIMENTAL_FEATURES:-false} - CLICKHOUSE_MIGRATION_URL=clickhouse://clickhouse:9000 - CLICKHOUSE_URL=http://clickhouse:8123 - - CLICKHOUSE_USER=clickhouse - - CLICKHOUSE_PASSWORD=$SERVICE_PASSWORD_CLICKHOUSE + - CLICKHOUSE_USER=${SERVICE_USER_CLICKHOUSE} + - CLICKHOUSE_PASSWORD=${SERVICE_PASSWORD_CLICKHOUSE} - CLICKHOUSE_CLUSTER_ENABLED=false - - LANGFUSE_USE_AZURE_BLOB=false - - LANGFUSE_S3_EVENT_UPLOAD_BUCKET=langfuse - - LANGFUSE_S3_EVENT_UPLOAD_REGION=auto - - LANGFUSE_S3_EVENT_UPLOAD_ACCESS_KEY_ID=minio - - LANGFUSE_S3_EVENT_UPLOAD_SECRET_ACCESS_KEY=$SERVICE_PASSWORD_MINIO - - LANGFUSE_S3_EVENT_UPLOAD_ENDPOINT=http://minio:9000 - - LANGFUSE_S3_EVENT_UPLOAD_FORCE_PATH_STYLE=true - - LANGFUSE_S3_EVENT_UPLOAD_PREFIX=events/ - - LANGFUSE_S3_MEDIA_UPLOAD_BUCKET=langfuse - - LANGFUSE_S3_MEDIA_UPLOAD_REGION=auto - - LANGFUSE_S3_MEDIA_UPLOAD_ACCESS_KEY_ID=minio - - LANGFUSE_S3_MEDIA_UPLOAD_SECRET_ACCESS_KEY=$SERVICE_PASSWORD_MINIO - - LANGFUSE_S3_MEDIA_UPLOAD_ENDPOINT=http://localhost:9090 - - LANGFUSE_S3_MEDIA_UPLOAD_FORCE_PATH_STYLE=true - - LANGFUSE_S3_MEDIA_UPLOAD_PREFIX=media/ - - LANGFUSE_S3_BATCH_EXPORT_ENABLED=false - - LANGFUSE_S3_BATCH_EXPORT_BUCKET=langfuse - - LANGFUSE_S3_BATCH_EXPORT_PREFIX=exports/ - - LANGFUSE_S3_BATCH_EXPORT_REGION=auto - - LANGFUSE_S3_BATCH_EXPORT_ENDPOINT=http://minio:9000 - - LANGFUSE_S3_BATCH_EXPORT_EXTERNAL_ENDPOINT=http://localhost:9090 - - LANGFUSE_S3_BATCH_EXPORT_ACCESS_KEY_ID=minio - - LANGFUSE_S3_BATCH_EXPORT_SECRET_ACCESS_KEY=$SERVICE_PASSWORD_MINIO - - LANGFUSE_S3_BATCH_EXPORT_FORCE_PATH_STYLE=true - - LANGFUSE_INGESTION_QUEUE_DELAY_MS=1 - - LANGFUSE_INGESTION_CLICKHOUSE_WRITE_INTERVAL_MS=1000 + - LANGFUSE_USE_AZURE_BLOB=${LANGFUSE_USE_AZURE_BLOB:-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} + - LANGFUSE_S3_EVENT_UPLOAD_SECRET_ACCESS_KEY=${LANGFUSE_S3_EVENT_UPLOAD_SECRET_ACCESS_KEY} + - LANGFUSE_S3_EVENT_UPLOAD_ENDPOINT=${LANGFUSE_S3_EVENT_UPLOAD_ENDPOINT} + - 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} + - LANGFUSE_S3_MEDIA_UPLOAD_SECRET_ACCESS_KEY=${LANGFUSE_S3_MEDIA_UPLOAD_SECRET_ACCESS_KEY} + - LANGFUSE_S3_MEDIA_UPLOAD_ENDPOINT=${LANGFUSE_S3_MEDIA_UPLOAD_ENDPOINT} + - 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} + - LANGFUSE_S3_BATCH_EXPORT_EXTERNAL_ENDPOINT=${LANGFUSE_S3_BATCH_EXPORT_EXTERNAL_ENDPOINT} + - LANGFUSE_S3_BATCH_EXPORT_ACCESS_KEY_ID=${LANGFUSE_S3_BATCH_EXPORT_ACCESS_KEY_ID} + - LANGFUSE_S3_BATCH_EXPORT_SECRET_ACCESS_KEY=${LANGFUSE_S3_BATCH_EXPORT_SECRET_ACCESS_KEY} + - LANGFUSE_S3_BATCH_EXPORT_FORCE_PATH_STYLE=${LANGFUSE_S3_BATCH_EXPORT_FORCE_PATH_STYLE:-true} + - LANGFUSE_INGESTION_QUEUE_DELAY_MS=${LANGFUSE_INGESTION_QUEUE_DELAY_MS:-1} + - LANGFUSE_INGESTION_CLICKHOUSE_WRITE_INTERVAL_MS=${LANGFUSE_INGESTION_CLICKHOUSE_WRITE_INTERVAL_MS:-1000} - REDIS_HOST=redis - REDIS_PORT=6379 - - REDIS_AUTH=$SERVICE_PASSWORD_REDIS - - REDIS_TLS_ENABLED=false - - REDIS_TLS_CA=/certs/ca.crt - - REDIS_TLS_CERT=/certs/redis.crt - - REDIS_TLS_KEY=/certs/redis.key - - EMAIL_FROM_ADDRESS= - - SMTP_CONNECTION_URL= - - NEXTAUTH_SECRET=${SERVICE_BASE64_NEXTAUTHSECRET} # + - REDIS_AUTH=${SERVICE_PASSWORD_REDIS} + - EMAIL_FROM_ADDRESS=${EMAIL_FROM_ADDRESS:-admin@example.com} + - SMTP_CONNECTION_URL=${SMTP_CONNECTION_URL:-} + - NEXTAUTH_SECRET=${SERVICE_BASE64_NEXTAUTHSECRET} - AUTH_DISABLE_SIGNUP=${AUTH_DISABLE_SIGNUP:-true} - HOSTNAME=${HOSTNAME:-0.0.0.0} - LANGFUSE_INIT_ORG_ID=${LANGFUSE_INIT_ORG_ID:-my-org} @@ -59,18 +55,15 @@ x-app-env: &app-env - LANGFUSE_INIT_PROJECT_ID=${LANGFUSE_INIT_PROJECT_ID:-my-project} - LANGFUSE_INIT_PROJECT_NAME=${LANGFUSE_INIT_PROJECT_NAME:-My Project} - LANGFUSE_INIT_USER_EMAIL=${LANGFUSE_INIT_USER_EMAIL:-admin@example.com} - - LANGFUSE_INIT_USER_NAME=${LANGFUSE_INIT_USER_NAME:-Admin} + - LANGFUSE_INIT_USER_NAME=${SERVICE_USER_LANGFUSE} - LANGFUSE_INIT_USER_PASSWORD=${SERVICE_PASSWORD_LANGFUSE} services: langfuse: - image: docker.io/langfuse/langfuse:3 - restart: always + image: langfuse/langfuse:3 depends_on: &langfuse-depends-on postgres: condition: service_healthy - minio: - condition: service_healthy redis: condition: service_healthy clickhouse: @@ -88,19 +81,19 @@ services: interval: 5s timeout: 5s retries: 3 + langfuse-worker: image: langfuse/langfuse-worker:3 - restart: always environment: <<: *app-env depends_on: *langfuse-depends-on + postgres: image: postgres:17-alpine - restart: always environment: - - POSTGRES_DB=${POSTGRES_DB:-langfuse} - - POSTGRES_PASSWORD=$SERVICE_PASSWORD_POSTGRES - - POSTGRES_USER=$SERVICE_USER_POSTGRES + - POSTGRES_DB=${POSTGRES_DB:-langfuse-db} + - POSTGRES_PASSWORD=${SERVICE_PASSWORD_POSTGRES} + - POSTGRES_USER=${SERVICE_USER_POSTGRES} volumes: - langfuse_postgres_data:/var/lib/postgresql/data healthcheck: @@ -110,10 +103,12 @@ services: interval: 5s timeout: 5s retries: 10 + redis: image: redis:8 - restart: always command: ["sh", "-c", "redis-server --requirepass \"$SERVICE_PASSWORD_REDIS\""] + environment: + - REDIS_PASSWORD=${SERVICE_PASSWORD_REDIS} volumes: - langfuse_redis_data:/data healthcheck: @@ -121,32 +116,14 @@ services: interval: 3s timeout: 10s retries: 10 - minio: - image: minio/minio:latest - restart: always - entrypoint: sh - # create the 'langfuse' bucket before starting the service - command: -c 'mkdir -p /data/langfuse && minio server --address ":9000" --console-address ":9001" /data' - environment: - - MINIO_ROOT_USER=minio - - MINIO_ROOT_PASSWORD=$SERVICE_PASSWORD_MINIO - - MINIO_BROWSER=off - volumes: - - langfuse_minio_data:/data - healthcheck: - test: ["CMD", "mc", "ready", "local"] - interval: 1s - timeout: 5s - retries: 5 - start_period: 1s + clickhouse: image: clickhouse/clickhouse-server:latest - restart: always user: "101:101" environment: - - CLICKHOUSE_DB=default - - CLICKHOUSE_USER=clickhouse - - CLICKHOUSE_PASSWORD=$SERVICE_PASSWORD_CLICKHOUSE + - CLICKHOUSE_DB=${CLICKHOUSE_DB:-default} + - CLICKHOUSE_USER=${SERVICE_USER_CLICKHOUSE} + - CLICKHOUSE_PASSWORD=${SERVICE_PASSWORD_CLICKHOUSE} volumes: - langfuse_clickhouse_data:/var/lib/clickhouse - langfuse_clickhouse_logs:/var/log/clickhouse-server @@ -155,4 +132,3 @@ services: interval: 5s timeout: 5s retries: 10 - start_period: 1s