What is MinIO? Self-host S3 object storage on a VPS
If you’ve ever used Amazon S3 to store images, uploads or backups, then MinIO gives you that exact experience — but running right on your own VPS, with no per-GB bill and no vendor lock-in. This post explains what MinIO is, when to use it, and how to self-host S3-compatible object storage in a single click with MyPanel.
What is MinIO?
MinIO is open-source object storage software that is fully compatible with the Amazon S3 API. Instead of storing files in a traditional folder tree, object storage keeps each file as an “object” inside buckets and serves them over HTTP/HTTPS — exactly the way S3 works.
Why MinIO stands out:
- 100% S3-compatible — any library, SDK or plugin that speaks S3 works with MinIO with virtually no code changes.
- Lightweight and fast — a single high-performance Go binary that runs well even on small VPS instances.
- Data sovereignty — your data lives on your server, fully under your control.
- Free — open source, no license fees.
In short: MinIO gives you your own “mini Amazon S3.”
Why self-host MinIO instead of renting S3?
| MinIO (self-hosted) | Amazon S3 / cloud | |
|---|---|---|
| Storage cost | Included in your VPS | Per-GB + request fees |
| Egress bandwidth | Usually free/cheap with the VPS | Billed, easy to overrun |
| Latency for same-host apps | Very low (local) | Over the Internet |
| Data sovereignty | Full control | On a third party’s infra |
| Vendor lock-in | None | Yes |
For small and medium sites, S3 storage plus egress fees can easily exceed the price of a single VPS. Self-hosting MinIO eliminates per-GB storage bills while keeping the S3 standard so you can scale out later.
What is MinIO used for?
- WordPress media offload — push your media library to MinIO via S3 plugins (like WP Offload Media) to lighten and speed up your site.
- Application file uploads — any app using an S3 SDK (Node, Python, Go, PHP, Laravel…) just points its endpoint at MinIO.
- Backup target — send website/database backups to MinIO so they survive even a server disk failure.
- Private file sharing — issue temporary presigned URLs for private files.
Installing MinIO on a VPS: by hand vs one-click
Standing up a production-grade MinIO by hand is not trivial: you install Docker, pull the MinIO image and the mc client, configure the container, set up an nginx reverse proxy, obtain a Let’s Encrypt SSL certificate, then create buckets and per-bucket access keys for safety. One wrong step and either it’s unreachable from outside, or your data is wide open.
MyPanel bundles all of that into one button.
Self-host MinIO with MyPanel — the steps
MyPanel is a single-binary control panel for Linux VPS with built-in Object Storage (MinIO):
- Install the engine — go to the Storage menu and click Install MinIO. The panel pulls the MinIO image +
mcand starts the container. - Create a bucket + key — name the bucket; each bucket gets its own access key + secret scoped to that bucket only (one bucket’s key can’t touch another). Enable public read if you want to serve images over URLs.
- Expose on a domain + SSL — click “Expose on a domain” and MyPanel creates a reverse proxy to MinIO and issues Let’s Encrypt automatically. There’s a separate option to expose the admin Console (full WebSocket support).
- Connect your app — use Endpoint
https://<your-domain>, Regionus-east-1, and enable path-style (forcePathStyle: true). The Storage page shows these values ready to copy.
See the Object Storage (MinIO) guide for details.
Secure by default
MyPanel configures MinIO to listen internally only (127.0.0.1) — it’s only exposed to the Internet when you deliberately “Expose on a domain” with SSL. Each bucket has its own key, you can rotate keys anytime, and toggle public / private at will. This is exactly the setup that’s easy to get wrong by hand.
Pair MinIO with backups
MinIO isn’t just for media — it’s also an S3-compatible backup target for MyPanel itself. You can point website/database backups at MinIO (on the same server or another) for a safe copy. See backup & restore.
Get started in minutes
If you want self-hosted, cost-effective, S3-compatible object storage without wrestling with Docker and nginx, MinIO on MyPanel is the shortest path:
- The Free plan already lets you install the engine and create 1 bucket to try it out.
- The Pro plan unlocks unlimited buckets.
👉 Install MyPanel with one command on an Ubuntu/Debian VPS, then turn on MinIO with a single click.