用途:在单一 VPC 内以六台 AWS 或 Vultr 机器自托管部署并收敛 Langfuse v4.27.0,包含 Neon 存储层(存储 broker、pageserver、一个 safekeeper、compute_ctl 下的 Postgres 17、层级与 WAL 存放 R2)、Redis 7.2、三台各带 Keeper voter 的 ClickHouse 副本,以及运行 langfuse-web、langfuse-worker 和 Caddy(位于 Cloudflare 后)的应用主机。Neon 层不自实现,而是 SHA 固定 getcolors/neon 并渲染其模板;ClickHouse 模板为本包自有,派生自 getcolors/clickhouse。
用法:先安装启动器:npx skills add getcolors/langfuse;cp .agents/skills/package-langfuse-red/red ./red;chmod +x red。根目录 red 是载荷副本而非符号链接,执行 npx skills update -p 会重写载荷但不改动副本,因此每次更新后需重新复制。可用动词:./red build(渲染 .colors/<profile>/,无提供方调用与凭据)、./red create --dry-run(走流程、跳过副作用)、./red create(真实收敛,内含各门禁)、./red rehearse(从备份恢复两个存储、启动固定镜像并演练)、./red describe(经 SSH 返回各主机最近监控结果)、./red delete(受 compute-prevent-destroy 保护,不删除 R2 内容)。build 与 --dry-run 可在空环境的新检出上运行;退出码 2 表示校验失败并一次列出全部问题。
配置:非机密期望状态在 colors.yml;各凭据为 COLORS_PAR_* 环境变量,惯例放在被 gitignore 的 .envrc.private。不要导出 COLORS_PAR_PROFILE,它用于选择部署的远程状态。当存储或备份凭据对与状态凭据对相同,或备份对等于存储对时,除非 colors.yml 中记录 r2-credential-sharing: shared-accepted,否则拒绝创建。
限制与恢复:ENCRYPTION_KEY、SALT 与初始用户密码三个机密须由操作者保管、置于机器之外。其余密码与密钥由各主机生成,应用主机上 sudo langfuse-credential 可打印项目密钥。恢复方面:ClickHouse 副本故障 RPO 0(自动);重啟 Redis 从 AOF,RPO 0;Redis 主机故障无自动恢复,队列任务丢失但原始事件留在 R2;Neon 本地状态从 R2 层级与 safekeeper 重放,RPO 约 0;Neon 主机故障从 Postgres 转储恢复,RPO 6 小时;整个 ClickHouse 集群从每夜原生备份配合下一份 Postgres 转储恢复,RPO 24 小时;应用主机通过一次收敛加操作者持有的密钥恢复,RPO 0。备份在恢复时配对。
其他:托管的 AWS 部署需使用 provider-compute: aws、provider-backend: s3、s3-bucket-mode: managed、langfuse-storage-provider: s3、langfuse-storage-managed: true,并仍需三个操作者持有的应用机密。浏览器中渲染媒体需在存储桶上为 https://<langfuse-host> 设置 CORS 规则。配置参考见 references/configuration.md。计算使用固定的 colors-compute 库,状态可用 R2 或 S3。