Minio’s Dead Jim

Dec 8, 2025 | Linux

The writing has been on the wall for a while, but it feels like we’ve finally reached the “It’s dead, Jim” moment for MinIO’s open-source support. Whether they call it “maintenance mode” or just a strategic pivot to the enterprise / AI, the message to the self-hosting and FOSS community is clear: You are on your own. For those of us running our own infrastructure—whether it’s a homelab rack or a production cluster or even folks who just want their data behind their firewall—sticking with a tool that treats its open-source users like a Borg drone disconnected from the collective isn’t a strategy. It’s a liability.

The good news? The Federation has options.  If you are running Rails and need S3-compatible object storage without the licensing headaches, it’s time to beam aboard SeaweedFS and (optionally) Garage. I’ve been running SeaweedFS both for Alice, consulting clients and most recently added built-in support for it to my opensource pg_lake deployment tool PGLakeMake.

The Galaxy Class Project: SeaweedFS

If MinIO was a runabout, SeaweedFS is a Galaxy-class starship. Based on Facebook’s Haystack paper, it is designed to handle billions of small files without breaking a sweat.

Why it wins:

  • The Tribble Problem: Most storage systems choke when you fill them with millions of tiny files. SeaweedFS handles them with O(1) disk seek time. It scales effortlessly.
  • The Filer: Unlike pure object stores, SeaweedFS includes a “Filer” that gives you a POSIX-compliant view. You can mount it, browse it, and treat it like a standard file-system when you need to.
  • Performance: It separates the volume servers (storage) from the master (metadata). It’s fast. Warp 9 fast.

And most importantly, it’s truly opensource; do note they do have a commercial enterprise offering, but the core license is Apache.

The Resilient Mesh: Garage

Garage is a bit newer, written in Rust (go ahead crab-people click your claws). Garage is a bit closer to what you get in Minio in that out of the box it’s more full-featured in terms of bells and whistles. That might be a feature or a bug depending on your use case. One other big nicety from Garage is that it’s just one binary to run a pretty beefy cluster; with SeaweedFS, you’ll need to have three running, depending on your scenario.

Why it wins:

  • CRDTs (Conflict-free Replicated Data Types): This is the magic. It allows Garage nodes to sync data across unstable networks or different geographical locations without causing a warp core breach (split-brain scenario).
  • Simplicity: It’s a single binary. It’s lightweight.
  • Multi-Site: If you have servers in New York, London, and your basement, Garage treats them as one unified mesh.

The “Best of Both Worlds” Strategy

You don’t have to choose just one. In a robust architecture, I’m increasingly recommending a hybrid approach:

  1. Garage for “Hot” Data: Point your primary Rails ActiveStorage service here. Its consistency makes it perfect for user avatars, PDF uploads, and critical app data.
  2. SeaweedFS for the “Deep” Archive: Use SeaweedFS for your heavy lifting—database backups, massive media libraries, and logs.

The Universal Translator: Rails ActiveStorage

The beauty of the S3 protocol is that it’s the Universal Translator of storage. Rails doesn’t care if it’s talking to AWS, MinIO, or a server in your closet, as long as the dialect is correct.

Here is the config/storage.yml configuration. The prime directive here is force_path_style: true. Without it, the aws-sdk-s3 gem tries to use subdomains (bucket.domain.com) which usually breaks self-hosted setups unless your DNS is perfectly tuned.

# config/storage.yml

minio_replacement:
  service: S3
  access_key_id: <%= ENV['S3_ACCESS_KEY'] %>
  secret_access_key: <%= ENV['S3_SECRET_KEY'] %>
  region: us-east-1
  bucket: my-app-bucket
  # The endpoint is where the magic happens
  endpoint: https://s3.myserver.com 
  # This line is the Kobayashi Maru beater:
  force_path_style: true

Engage

MinIO had a great run, but it’s hard to recommend it as a long-term viable opensource solution going forward.  SeaweedFS and Garage represent the next generation: one optimized for massive scale, the other for massive resilience. Switching over is easier than you think. Update your YAML, sync your buckets, and leave the drama behind. Live long and prosper (and back up your data).

More from Mike:

About Me

Hi! I’m Mike! I’m a software engineer who codes at The Mad Botter INC. You might know me from Coder Radio or The Mike Dominick Show.  Drop me a line if you’re interested in having some custom mobile or web development done.

Follow Me

© 2026 Copyright Michael Dominick | All rights reserved