MinIO Is in Maintenance Mode: Your Guide to S3-Compatible Storage Alternatives

MinIO Is in Maintenance Mode: Your Guide to S3-Compatible Storage Alternatives

If you've been running MinIO in production, you probably felt a chill run down your spine in December 2025. The project quietly entered maintenance mode. No fanfare, no migration guide, just a commit to the README and a locked GitHub issue with 29 thumbs-down reactions.

Here's what happened, what it means for your stack, and where to go next.

What Actually Happened to MinIO

MinIO's decline wasn't sudden. It was a slow squeeze. The license shifted from Apache 2.0 to AGPL v3 back in 2021. In February 2025, the web management console was stripped from the community edition, replaced with a bare-bones "object browser." Features like account management, bucket configuration, and site replication? Moved to the paid AIStor product exclusively.

The last community release shipped on October 15, 2025 (a CVE patch). Two months later, maintenance mode. No new features, no accepted PRs, security fixes evaluated "case by case."

Meanwhile, AIStor Enterprise starts at roughly $96,000/year for 400TB. For teams running MinIO as their S3-compatible backbone, the message was clear: pay up or find something else.

So let's talk about something else.

The Three Contenders

After spending time evaluating the alternatives that actually matter, three projects stand out. Each fills a different niche, and picking the right one depends on what you're building.

SeaweedFS: The Battle-Tested Workhorse

If you need a production-ready MinIO replacement today, SeaweedFS is the answer for most teams.

It's written in Go, licensed under Apache 2.0 (no AGPL surprises), and has been around long enough to earn its ~30,000 GitHub stars the hard way. The architecture uses a Master + Volume Server model where masters handle metadata and topology while volume servers store your actual data. This gives you O(1) disk seek for blob retrieval, which matters when you're handling billions of files.

The S3 API compatibility is solid. You get versioning, server-side encryption (AES-256), cross-datacenter replication, erasure coding for warm storage, and a Kubernetes CSI driver. It also supports FUSE mounts and WebDAV if you need file-system access alongside your S3 API.

Here's a quick Docker Compose setup to get it running:

version: "3"
services:
  master:
    image: chrislusf/seaweedfs
    command: "master -ip=master -ip.bind=0.0.0.0"
    ports:
      - "172.17.0.1:9333:9333"
    restart: always

  volume:
    image: chrislusf/seaweedfs
    command: "volume -mserver=master:9333 -ip.bind=0.0.0.0 -port=8080"
    ports:
      - "172.17.0.1:8080:8080"
    depends_on:
      - master
    volumes:
      - ./seaweed-data:/data
    restart: always

  s3:
    image: chrislusf/seaweedfs
    command: "s3 -filer=filer:8888 -ip.bind=0.0.0.0"
    ports:
      - "172.17.0.1:8333:8333"
    depends_on:
      - filer
    restart: always

  filer:
    image: chrislusf/seaweedfs
    command: "filer -master=master:9333 -ip.bind=0.0.0.0"
    ports:
      - "172.17.0.1:8888:8888"
    depends_on:
      - master
      - volume
    volumes:
      - ./seaweed-filer:/data
    restart: always

Best for: Teams that need a drop-in MinIO replacement at scale, data lake use cases, or anyone who values Apache 2.0 licensing.

Garage: The Self-Hoster's Secret Weapon

Garage takes a completely different approach. Built in Rust by Deuxfleurs, a French non-profit, it's designed from the ground up for geo-distributed self-hosting across unreliable hardware.

Where SeaweedFS is a datacenter tool, Garage is built for the real world: three nodes scattered across different locations, connected over regular internet links, running on machines with as little as 1 GB of RAM and 16 GB of disk. The architecture is based on Amazon's Dynamo paper and uses CRDTs (conflict-free replicated data types) for consistency without a central coordinator.

It's AGPL v3 licensed, which matches MinIO's current license, so no change there if you're already running AGPL in your stack.

Garage v2.0 (released June 2025) brought a proper admin API with scoped, expirable tokens, website hosting with redirections, and significant performance improvements. It plays nicely with Nextcloud, Mastodon, and Matrix out of the box.

version: "3"
services:
  garage:
    image: dxflrs/garage:v2.2.0
    ports:
      - "172.17.0.1:3900:3900"  # S3 API
      - "172.17.0.1:3902:3902"  # Admin API
    volumes:
      - ./garage-data:/var/lib/garage/data
      - ./garage-meta:/var/lib/garage/meta
      - ./garage.toml:/etc/garage.toml
    restart: always

Best for: Self-hosters running distributed setups across multiple locations, homelab clusters, or anyone who wants minimal resource usage.

RustFS: The One to Watch

RustFS is the newest contender, written in Rust with an Apache 2.0 license. It claims 2.3x better performance than MinIO for small object payloads and features a zero-master architecture that eliminates single points of failure. It has a web console (something MinIO's community edition lost), bucket replication, WORM compliance, and migration tooling for MinIO and Ceph.

The catch? It's in alpha. The official docs explicitly state: "Do NOT use in production environments." Key features like lifecycle management and distributed mode are still under testing.

With ~21,000 GitHub stars (impressive for an alpha project), the community interest is clearly there. Evaluate it, test it, but don't bet your production data on it yet.

Best for: Future evaluation and non-critical workloads. Check back in 6 months.

Quick Comparison

Feature SeaweedFS Garage RustFS
License Apache 2.0 AGPL v3 Apache 2.0
Language Go Rust Rust
Production Ready Yes Yes No (alpha)
Min RAM 2 GB 1 GB 2 GB
Web UI Yes Admin API Yes
GitHub Stars ~30k ~2.7k ~21k
Best Scale Large Small-Medium TBD

Migrating from MinIO

Whatever you choose, the migration path from MinIO follows the same pattern:

# Use rclone to sync data between S3-compatible endpoints
rclone sync minio:my-bucket seaweedfs:my-bucket \
  --s3-provider=Other \
  --s3-endpoint=http://172.17.0.1:8333 \
  --transfers=16 \
  --progress

Update your application's S3 endpoint URL and credentials, and you're done. The beauty of S3 API compatibility is that your application code doesn't need to change.

Troubleshooting Common Migration Issues

"Access Denied" after switching endpoints: Double-check that your new storage service uses AWS Signature v4 authentication, and verify your access key and secret key are configured correctly.

Missing objects after sync: Run rclone check before decommissioning MinIO to verify object counts and checksums match.

Performance degradation: SeaweedFS and Garage have different optimal configurations. For SeaweedFS, ensure your volume servers have enough disk I/O. For Garage, check that your replication factor matches your node count.

Deploy Without the Headache

If you'd rather skip the infrastructure setup entirely, Elestio offers managed MinIO deployment with automated backups, updates, and monitoring. Starting at $16/month on NVMe storage, it's a fraction of what you'd spend on AIStor licensing, and you keep full control of your data.

MinIO had a good run. The S3-compatible ecosystem is healthier than ever, and you've got solid options no matter your scale. Pick the one that fits, migrate your buckets, and move on.

Thanks for reading! See you in the next one.