
如何在本地构建 Langfuse 源码开发环境并首次跑通完整服务栈【免费下载链接】langfuse Open source agent evals observability: Trace, evaluate, and improve LLM applications with one open platform.项目地址: https://gitcode.com/GitHub_Trending/la/langfuse你手里有 Langfuse 的源码仓库想从源码启动一套完整的本地开发服务栈——Web 前端、异步 Worker、Postgres、ClickHouse、Redis、MinIO 对象存储以及 Rust 编写的 AI Gateway——并且第一次就把它跑起来并验证可用。Langfuse 是一个开源的 LLM/Agent 可观测与评估平台本仓库用 pnpm turbo 管理web、worker、packages等 monorepo 子包。以下内容依据仓库的 CONTRIBUTING.md「Development Setup」章节整理适用于全新克隆的仓库。准备工具版本与系统依赖CONTRIBUTING.md 在 Development Setup 一节列出的硬性要求Node.js 24版本由 .nvmrc 固定为v24.20.0pnpm 12.3.1由 package.json 的engines与packageManager字段声明Docker用于在本地运行数据库等基础设施Clickhouse client配合 golang-migrate CLI作为命令行工具安装使用针对 AI GatewayRust 服务随pnpm dev一起启动通过 rustup 安装 Rust以及一个本地编译器/链接器——macOS 用 Xcode Command Line ToolsLinux 用 GCC/ClangWindows 用 MSVC C Build Tools。安装 rustup 后要确保~/.cargo/bin在 PATH 中安装后重开终端。关于 AI Gateway 的两个前置说明来自 ai-gateway/README.mdai-gateway/rust-toolchain.toml 会自动选中 Rust 1.98.0 及 Clippy、rustfmt首次构建需要网络访问来下载工具链和 Cargo 依赖不需要单独的 Rust 文件监听器也不需要在开发阶段为 Gateway 配置任何数据库或供应商凭据。golang-migrate与 ClickHouse client 主要服务于迁移操作如pnpm run db:migrate首次跑通服务栈本身由pnpm run dx自动完成迁移。克隆仓库并安装依赖git clone https://gitcode.com/GitHub_Trending/la/langfuse.git cd langfuse然后安装依赖并配置 pre-commit 钩子pnpm install pnpm run prepare # 安装 Husky pre-commit 钩子两点说明根 package.json 有preinstall钩子only-allow pnpm用 npm/yarn 安装会直接失败pnpm install触发的postinstall会执行 scripts/postinstall.sh自动同步 agent 相关的本地 shim 文件无需手动操作。pre-commit 钩子会在提交时跑格式化和 lint 检查。如果只想跳过某次提交的 lint 检查可以设置环境变量LANGFUSE_PRE_COMMIT_SKIP_LINT1 git commit -m your commit message创建 .env 配置文件cp .env.dev.example .env.env.dev.example 里的默认值与 docker-compose.dev.yml 中容器的默认凭据是一一对应的例如 Postgrespostgres:postgreslocalhost:5432/postgres、ClickHouseclickhouse/clickhouseHTTP 端口 8123、Native 端口 9000、RedisREDIS_AUTHmyredissecret、MinIOminio/miniosecretendpointhttp://localhost:9090因此复制后即可直接使用不必逐项修改。AI Gateway 启动时也会读取根目录的.env默认监听0.0.0.0:8080。首次启动完整栈pnpm run dx在仓库根目录执行pnpm run dx副作用说明这个命令会清理并重建本地开发数据库。从 package.json 的定义可以看到它的完整动作序列pnpm i pnpm run infra:dev:prune pnpm run infra:dev:up --pull always \ pnpm --filtershared run db:reset:test pnpm --filtershared run db:reset \ pnpm --filtershared run ch:reset pnpm --filtershared run db:seed:examples \ pnpm run dev其中infra:dev:prune对应docker compose -f ./docker-compose.dev.yml down -v即停止容器并删除数据卷随后db:reset与ch:reset会重置 Postgres 与 ClickHouse。如果你有已有的本地数据不要执行这条命令。执行过程中会交互式询问是否重置 Postgres 和 ClickHouse两次都输入Y并回车确认。dx拉起的基础设施由 docker-compose.dev.yml 定义Postgres 17、Redis 7.2.4、ClickHouse 25.12注释中说明 25.12 是 Langfuse v4 的最低 ClickHouse 版本因为 events 表依赖 25.x 的全文索引能力、MinIO开发版会预建langfuse桶。infra:dev:up带了--wait即所有容器通过各自 healthcheck 后命令才返回。首次运行注意CONTRIBUTING.md 明确写道dx在非常第一次运行时会失败一次需要再执行一遍才能成功第二次运行后改用pnpm run dev # 之后的日常启动pnpm run dev即turbo watch dev会同时启动 web、worker 与 AI Gateway并且都带文件监听改 Rust 源码后 Gateway 会由 Turbo Watch 重新编译并重启。如果你只想单独调试某个包CONTRIBUTING.md 给出的是pnpm --filterweb run dev # 只跑 web pnpm dev --filterai-gateway # 只跑 AI Gateway注意不要与全量 pnpm dev 同时跑端口会冲突验证服务栈已跑通按下面顺序核对全部通过即表示本地栈可用容器侧docker compose -f ./docker-compose.dev.yml ps应显示 postgres、redis、clickhouse、minio 均为 healthydx里的up --wait已隐含这一步可再确认一遍。Web 侧浏览器打开 Sign up 页面 http://localhost:3000。注册/登录页能正常加载说明 web 服务及其到 Postgres/Redis 的连接是通的。测试账号仓库自带一个开发用测试用户用demolangfuse.com/ 密码password登录。登录后可以直接访问预置的 demo 项目http://localhost:3000/project/7a88fb47-b4e2-43b8-a06c-a5ce950dc53a看到项目数据即说明 web worker ClickHouse 整条链路工作正常。AI Gateway 侧可选单独开一个终端curl --fail http://localhost:8080/health # 文档示例输出{status:ok} curl --fail http://localhost:8080/ready # 文档示例输出{status:ready}以上{status:ok}/{status:ready}为 ai-gateway/README.md 中的文档示例输出。/health在 HTTP 服务可用时返回 200/ready在初始化完成后返回 200。如果栈跑起来后你想要更全的示例数据可以在另一个终端执行dx里已包含一次此命令用于单独补种pnpm run db:seed:examples日常开发与清理跑通之后几个 CONTRIBUTING.md 中与开发循环直接相关的命令快速全量类型检查pnpm tclint 全包pnpm run lint所有包以--max-warnings 0运行有 warning 即失败。lint/typecheck 有 turbo 缓存如需确认真实执行可加--forcepnpm exec turbo run lint --force。新建数据库迁移pnpm run db:migrate -- --name name of the migrationname替换为你要建的迁移名。频繁切换分支时用pnpm run dx而不是pnpm run dev——它会重装依赖、重置数据库清空并重新应用全部迁移、跑 seeder 再启动开发服务器。卡住想彻底清理仓库状态时pnpm run nuke会删除所有node_modules和构建产物执行前理解它会丢弃全部本地安装状态。如果你的下一步是改代码并跑测试测试会针对运行中的本地 Langfuse 实例读写真实数据。默认使用本地开发库即会清掉你的开发数据要做隔离按 CONTRIBUTING.md 的建议复制 .env.test.example 为.env.test测试会改用独立的langfuse_testPostgreSQL 库和 Redis 的 database 1未覆盖的变量回落到.env。限制与边界dx首次运行必然失败一次这是 CONTRIBUTING.md 文档明确说明的行为直接重跑即可不是环境问题dx会删除开发库数据卷不适用于已有本地数据的机器AI Gateway 当前是 foundation 阶段推理路由未实现、返回 404构建/启动/测试不需要 Web、数据库或供应商凭据仓库同时提供 GitHub Codespacedevcontainer方式打开开发环境见 CONTRIBUTING.md 中 Development Setup 的说明完整的 Postgres schema 可在 packages/shared/prisma/schema.prisma 中查阅。【免费下载链接】langfuse Open source agent evals observability: Trace, evaluate, and improve LLM applications with one open platform.项目地址: https://gitcode.com/GitHub_Trending/la/langfuse创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考