首页
/ Langfuse项目Docker Compose部署指南

Langfuse项目Docker Compose部署指南

2025-07-06 03:01:41作者:曹令琨Iris

项目概述

Langfuse是一个基于多组件架构的应用系统,通过Docker Compose可以快速部署其完整运行环境。本文将深入解析其docker-compose.yml文件的技术细节,帮助开发者理解各组件的作用和配置要点。

核心组件架构

Langfuse系统由以下几个关键服务组成:

  1. Langfuse Web:主应用服务,提供Web界面和API
  2. Langfuse Worker:后台工作进程,处理异步任务
  3. PostgreSQL:关系型数据库,存储结构化数据
  4. ClickHouse:分析型数据库,用于大数据分析
  5. Redis:内存数据库,用于缓存和消息队列
  6. MinIO:对象存储服务,用于文件存储

安全配置要点

必须修改的安全参数

文件中标记为"# CHANGEME"的配置项必须修改,包括:

  1. 数据库密码(PostgreSQL、ClickHouse)
  2. 加密密钥(ENCRYPTION_KEY)
  3. 盐值(SALT)
  4. Redis认证密码
  5. MinIO根凭据
  6. NextAuth密钥(NEXTAUTH_SECRET)

建议使用以下命令生成强加密密钥:

openssl rand -hex 32

网络访问控制

默认配置已考虑安全性:

  • 仅Web服务(3000端口)和MinIO(9090端口)对外暴露
  • 其他服务(PostgreSQL、Redis等)仅绑定到localhost

关键服务解析

Langfuse Worker配置

Worker服务负责后台任务处理,主要配置包括:

  1. 数据库连接:通过DATABASE_URL配置PostgreSQL连接
  2. 加密配置:SALT和ENCRYPTION_KEY用于数据加密
  3. ClickHouse集成:配置了连接参数和集群选项
  4. 对象存储:支持S3兼容存储(MinIO)和Azure Blob
  5. Redis连接:用于任务队列和缓存

Langfuse Web配置

Web服务继承Worker的环境变量,并添加了:

  1. 认证配置:NEXTAUTH_URL和NEXTAUTH_SECRET
  2. 初始化参数:可配置初始组织、项目和用户

数据存储服务

  1. PostgreSQL:使用最新版本,数据持久化到本地卷
  2. ClickHouse:配置了独立用户和数据/日志卷
  3. MinIO:自动创建langfuse存储桶
  4. Redis:配置了密码保护和健康检查

部署建议

  1. 资源分配:根据数据量调整各服务的资源限制
  2. 持久化存储:确保volumes配置指向合适的存储位置
  3. 健康检查:各服务都配置了健康检查,确保依赖服务就绪
  4. 环境变量管理:建议使用.env文件管理敏感配置

性能调优参数

配置文件中包含多个可调优的参数:

  1. LANGFUSE_INGESTION_QUEUE_DELAY_MS:控制任务队列处理延迟
  2. LANGFUSE_INGESTION_CLICKHOUSE_WRITE_INTERVAL_MS:控制ClickHouse写入频率
  3. CLICKHOUSE_CLUSTER_ENABLED:启用ClickHouse集群模式

故障排查

  1. 服务启动顺序:通过depends_on确保依赖服务先启动
  2. 健康检查:利用各服务的健康检查机制监控状态
  3. 日志查看:各服务日志可帮助诊断启动问题

生产环境建议

  1. TLS配置:为Redis启用TLS加密
  2. 备份策略:定期备份数据库卷
  3. 监控集成:添加Prometheus等监控工具
  4. 高可用:考虑关键服务的集群部署

通过理解这些配置细节,开发者可以更好地部署和维护Langfuse系统,根据实际需求调整配置参数,构建安全、稳定的运行环境。