The alternatives
minio
MinIO is a high-performance, S3 compatible object store, open sourced under GNU AGPLv3 license.
minio/minio Updated 2026-04-24 seaweedfs
SeaweedFS is a distributed storage system for object storage (S3), file systems, and Iceberg tables, designed to handle billions of files with O(1) disk access and effortless horizontal scaling.
seaweedfs/seaweedfs Updated 2026-05-06 Comparison notes
MinIO is the primary OSS S3-compatible object storage that can be self-hosted on any infrastructure. SeaweedFS and Ceph also provide S3-compatible APIs at scale. The key tradeoff: MinIO self-hosted eliminates per-GB storage costs but adds operational burden for replication, availability, and hardware. Cloudflare R2 specifically targets egress-heavy workloads — if your use case is primarily PUT/GET with minimal external traffic, the no-egress advantage shrinks. OSS self-hosted storage can achieve lower per-GB costs but requires engineering time to maintain. Garage (Rust-based) is a lighter S3-compatible option for distributed storage.
Migration tips
- Use rclone (rclone copy r2:bucket minio:bucket) to migrate objects between S3-compatible endpoints without downloading locally
- Update application S3 endpoint URLs, access keys, and region settings — R2 uses account-specific endpoints
- Audit any Cloudflare Workers that read from R2 directly — Workers integration does not transfer to a self-hosted setup
- Replicate bucket CORS policies and lifecycle rules in the target system before cutover
- Test large object (multipart upload) behavior in the target system — MinIO compatibility is generally good but edge cases exist
FAQ
Can I fully replace Cloudflare R2 with an OSS tool?
Feature parity varies. Most OSS alternatives cover 70-90% of core workflows, but may lack polish, integrations, or specialized features. Pilot the alternative with a subset of your team before fully committing.
What's the cost of self-hosting?
Plan for ~$5-50/month in VPS costs (DigitalOcean, Hetzner, etc.) plus 2-8 hours/month in maintenance. For a team of 20+, self-hosting usually breaks even against SaaS pricing within 6-12 months.
Which alternative should I pick?
Sort by GitHub stars (a proxy for community health), check the last-pushed date (avoid unmaintained projects), and read recent issues to gauge responsiveness.