Object Storage (MinIO)
MyPanel runs an S3-compatible object store on your server by wrapping MinIO in a standard container — the same way the Mail Server wraps docker-mailserver. Use it to store images, uploads and media and serve them over URLs.
Requirements
Section titled “Requirements”- A Linux VPS with Docker (the panel pulls the MinIO +
mcimages when you click Install).
Install & run
Section titled “Install & run”Open the Storage menu. The status card shows where the engine is:
- Not installed — click Install MinIO (the panel pulls the image and starts the container; may take a few minutes).
- Stopped — click Start.
- Running — the bucket management section appears right below.
Uninstall removes the container; confirm again if you also want to wipe the data.
Buckets & access keys
Section titled “Buckets & access keys”While the engine is running:
- Create a bucket — give it a name (lowercase, digits,
-,.), optionally attach a website and enable Public read (so images load over a URL). - Each bucket gets an access key (access key + secret) scoped to that bucket only — one bucket’s key cannot touch another bucket.
- The secret is shown only once at creation. Save it immediately; afterwards your only option is Rotate key to issue a new one.
- Public / Private — toggle anonymous read at any time.
- Delete bucket — if it still contains objects, the panel offers to empty then delete (or delete only if empty).
External access (one-click + SSL)
Section titled “External access (one-click + SSL)”For safety, MinIO only listens locally (127.0.0.1): the API/images on port 9000, the Console (admin UI)
on 9001. Right on the Storage page, use the “Expose on domain” button — the panel creates a
Reverse Proxy website to MinIO and issues Let’s Encrypt automatically once DNS resolves. Two separate entries:
| Purpose | Button in the panel | Points to |
|---|---|---|
| Serve images / use the S3 API | Expose on domain | 127.0.0.1:9000 |
| Open the admin Console | Expose Console on domain | 127.0.0.1:9001 |
After exposing, point the domain’s A record to the server IP (SSL is issued automatically). Each domain counts as one website toward your plan limit. MyPanel’s Reverse Proxy supports WebSocket, so the Console works fully.
Use with WordPress / apps
Section titled “Use with WordPress / apps”Buckets are standard S3, so any S3-capable plugin/SDK works:
- Endpoint —
https://<domain>exposed above (orhttp://127.0.0.1:9000if running on the same machine). - Access key / Secret key — the bucket’s key (needed to upload).
- Bucket — the bucket name. Be sure to enable path-style in the SDK config.
For WordPress: an offload-media plugin (such as WP Offload Media) takes these values to push your media library to MinIO.
Public image link (bucket with public-read on): https://<domain>/<bucket>/<file> — use it directly as an <img src>.
Free / Pro limits
Section titled “Free / Pro limits”| Free | Pro | |
|---|---|---|
| Install & run engine | ✓ | ✓ |
| Number of buckets | 1 | Unlimited |
| Bucket-scoped keys | ✓ | ✓ |
| Public-read / key rotation | ✓ | ✓ |
Backing up data
Section titled “Backing up data”MinIO’s actual data lives at /var/lib/mypanel/minio/data on the server.
- Mirror to another store —
mc mirror(or MinIO replication) pushes buckets to another S3/MinIO on a schedule. - rsync / snapshot — back up the
/var/lib/mypanel/minio/datafolder at the system level on a schedule.