pickuma.
Infrastructure

MinIO Review: Self-Hosted S3-Compatible Object Storage in 2026

A measured look at MinIO in 2026 — what the single-binary S3 server still does well, what the 2025 console changes took away, and when to pick something else.

7 min read

Self-hosting S3 used to mean a choice between running a sprawling Ceph cluster or paying AWS by the gigabyte. MinIO collapsed that into a single Go binary you can start with one command. In 2026 it is still the first answer most developers reach for when they search for self-hosted, S3-compatible storage — but the project that earned that reputation has changed in ways you should understand before you point production data at it.

This review covers what MinIO actually is today, how it behaves when you run it, and where it stops being the obvious choice.

What MinIO is in 2026

MinIO is an object storage server written in Go that speaks the Amazon S3 API. It ships as a single static binary with no external database or runtime dependencies. You give it one or more directories (or raw drives), it exposes an S3 endpoint, and tools that already talk to S3 — the AWS SDKs, aws s3, Terraform, your CI artifact uploader — work against it with only an endpoint URL change.

The two properties that made it popular still hold. First, the API surface is close enough to S3 that most libraries do not know the difference: bucket operations, multipart uploads, presigned URLs, versioning, and object lifecycle rules are all present. Second, MinIO does erasure coding. Instead of replicating whole objects, it splits each object into data and parity shards spread across your drives, so a cluster can survive losing drives — up to half the drives in an erasure set at maximum parity — without losing data.

The significant change is the management experience. In 2025 MinIO stripped its open-source web console down to a basic object browser. Identity management, policy editing, bucket configuration, and most of the administrative surface that the console used to expose were removed from the community build and moved behind the mc command-line client or the commercial Enterprise/AIStor offering. The storage engine itself stayed open source under AGPLv3, but the friendly point-and-click admin panel many teams relied on is no longer part of the free package.

Running it: from one binary to a cluster

For a development box, MinIO is genuinely a one-liner. Point the minio server command at a single directory and you have an S3 endpoint in seconds. That mode gives you no redundancy — it is for local testing, CI fixtures, and prototyping, not data you care about.

Production is a different posture. The model you want is distributed mode: multiple drives, usually across multiple nodes, with erasure coding doing the redundancy work. A few rules shape the setup. Drive counts matter because MinIO groups drives into erasure sets, so you plan capacity around even, symmetric layouts rather than adding one disk at a time. Drives are expected to be roughly uniform in size, and the recommendation is to give MinIO whole, dedicated drives rather than sharing a filesystem with other workloads.

Day-to-day administration runs through mc, the MinIO client. You add an alias for your server, then manage buckets, users, and policies as subcommands. It is scriptable and fast once you learn it, which is the upside of the console change — everything is now reproducible in a shell script or config-management run rather than clicked through a UI.

Performance is rarely the bottleneck. MinIO is disk- and network-bound, not CPU-bound for normal workloads, and on commodity NVMe with 10GbE or better it saturates the hardware rather than the software. The practical limits you hit first are operational: drive failure handling, rebalancing when you expand, and making sure TLS and the root credentials are configured before anything faces a network.

Kubernetes deployments are common, and MinIO publishes an operator to manage tenants, but you can also run it as a plain StatefulSet if you prefer to own the manifests. On bare metal or a single VM, a systemd unit pointed at your drives is enough.

Where MinIO fits — and where it doesn’t

MinIO earns its place when you need S3 semantics without a cloud provider. On-prem and air-gapped environments, edge deployments, CI artifact and build-cache storage, local development that mirrors a production S3 setup, and Kubernetes clusters that want internal object storage are all strong fits. The lack of operational dependencies makes it easy to reason about, and the S3 compatibility means you are not locking your application code to a niche API.

The cases to reconsider fall into two buckets. The first is the management gap: if your team specifically wanted a self-hosted S3 with a full administrative UI, the post-2025 community build no longer delivers that, and you are either learning the CLI or paying for the commercial tier. The second is the license. AGPLv3 is a strong copyleft license, and if you embed MinIO into a product you distribute or offer as a network service, you should get your licensing reviewed rather than assume it is a permissive grab-and-go.

If either of those is a dealbreaker, the alternatives worth a look are Garage and SeaweedFS for lighter-weight self-hosted S3, Ceph with its RADOS Gateway when you already run or want a full storage platform, and managed S3-compatible services like Cloudflare R2 or Backblaze B2 when “self-hosted” was a means rather than the goal. Each trades away something MinIO gives you — Garage and SeaweedFS have smaller ecosystems, Ceph is heavier to operate, managed services move your data off your own hardware — so the right pick depends on which constraint you actually care about.

The bottom line

MinIO in 2026 is still a fast, dependency-light, genuinely S3-compatible object store that is hard to beat for self-hosted infrastructure. What changed is the contract around it: the friendly free console is gone, administration is a command-line discipline, and the AGPLv3 license deserves a real read before you build a product on it. For a developer who is comfortable in a shell and wants S3 semantics on their own drives, it remains an easy recommendation. For a team that wanted a managed-feeling appliance for free, the gap between expectation and current reality is the thing to check first.

FAQ

Is MinIO still free and open source in 2026?+
Yes. The MinIO server is open source under the AGPLv3 license, and you can run it in production without paying. What changed in 2025 is that most management features were removed from the free web console and moved to the mc command-line client or the paid Enterprise tier. The storage engine itself remains free.
Does MinIO work as a true drop-in replacement for Amazon S3?+
For the common API surface — bucket operations, multipart uploads, presigned URLs, versioning, and lifecycle rules — yes, and most AWS SDKs need only an endpoint change to talk to it. It does not replicate every AWS-specific feature, so verify any unusual S3 calls your application depends on against MinIO before assuming full parity.
MinIO or Ceph for self-hosted object storage?+
Pick MinIO when you want S3 storage specifically, with minimal operational overhead and a single binary to reason about. Pick Ceph when you already run or want a unified storage platform that also provides block and file storage, and you have the operational capacity to manage it. Ceph is more capable and far heavier to operate.

Related tools

Some links above are affiliate links. We may earn a commission if you sign up. See our disclosure for details.

Related reading

See all Infrastructure articles →

Get the best tools, weekly

One email every Friday. No spam, unsubscribe anytime.