langfuse: replace MinIO with SeaweedFS - #5568
Open
IgorTerenti wants to merge 2 commits into
Open
IgorTerenti wants to merge 2 commits into
IgorTerenti wants to merge 2 commits into
Conversation
added 2 commits
September 16, 2026 12:40
MinIO is now archived. Langfuse was its only consumer in ODS, as the S3 store for event uploads. Swap it for a single SeaweedFS container running master, volume, filer, and the S3 gateway in one process. Credentials come from AWS_ACCESS_KEY_ID / AWS_SECRET_ACCESS_KEY, which SeaweedFS turns into a static admin identity. Telemetry, IAM, Iceberg, and Lance listeners are off. A small init container creates the langfuse-events bucket with weed shell and is safe to re-run. Rename the .env keys to LANGFUSE_S3_ACCESS_KEY / LANGFUSE_S3_SECRET_KEY across the Linux, macOS, and Windows env generators, the schema, the example env, and test fixtures. Drop four LANGFUSE_MINIO_* schema keys that nothing generated or consumed. The data dir moves to data/langfuse/seaweedfs; old MinIO data is not migrated.
README, CHANGELOG, and installer comments still named MinIO. Point them at SeaweedFS and add a note that old MinIO bucket data is not read by the new store. Drop LANGFUSE_MINIO_ROOT_USER from two redaction-regex comments since the key no longer exists.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
minio is now archived and langfuse was the only thing in ODS using it (s3 store for event uploads). Swapped it for a single seaweedfs container running master + volume + filer + s3 gateway in one process. Creds come in via
AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY, which seaweedfs turns into a static admin identity. Telemetry, IAM, iceberg, and lance listeners are off. Small init container creates thelangfuse-eventsbucket withweed shelland is safe to re-run.Also renamed the
.envkeys toLANGFUSE_S3_ACCESS_KEY/LANGFUSE_S3_SECRET_KEYacross the linux/macos/windows env generators, schema,.env.example, and fixtures. Dropped fourLANGFUSE_MINIO_*schema keys that nothing generated or consumed. Data dir moves todata/langfuse/seaweedfs, old minio data isn't migrated (different on-disk format).Two commits: one functional, one NFC for docs/comments.
AI Assistance
Claude Code drafted the analysis, compose rewrite, and doc updates. I ran the validation below on real hardware and read the full diff.
Release Lane
release/2.6.xmainStable hotfix reason:
Changed Surface
Risk And Validation
git diff --checkrelease/2.6.xCommands/results:
Operational Change Check
Notes For Reviewers
data/langfuse/minio/dir can just be deletedchrislusf/seaweedfs:4.47. There's noseaweedfs/seaweedfson docker hub, upstream publishes under the maintainer's account (mirrored from ghcr). Happy to switch to the ghcr path if you'd rather avoid hub pull limitstests/smoke/installer-env-smoke.shhas two pre-existing failures (undefinedai_err), unrelated to this changelib/backup-paths.shskips all ofdata/langfuse/*and the coverage test never scanscompose.yaml.disabled. Pre-existing gap, left it out of this PR to keep it one concern. Can open an issue if wantedAssumed venue: PR description, so I kept the repo's required template sections and filled them in the review register.