Self-Hosting MinIO: Your Own S3-Compatible Object Storage
MinIO is S3-compatible object storage you can run anywhere. Store files, backups, and media with the same API as Amazon S3.
What Is Object Storage?
Object storage treats files as objects in flat buckets rather than hierarchical file systems. Each object has a key (path), data (the file), and metadata.
Amazon S3 popularized this model. Now it's the standard for application file storage.
Why MinIO?
MinIO implements the S3 API. Any tool that works with Amazon S3 works with MinIO — same SDKs, same CLI, same integrations.
Self-Hosting Benefits
Use Cases
Application Storage
Store user uploads, generated files, and media. Your app talks to MinIO using the same AWS S3 SDK it would use for Amazon S3.
Backup Destination
Restic, Borg, and most backup tools support S3. Point them at MinIO.
Docker/Podman Registry Storage
Use MinIO as the storage backend for your container registry.
Static Website Hosting
Serve static files directly from MinIO buckets.
Data Lake
Store large datasets for analytics and machine learning.
Deployment
1. Deploy MinIO on TinyPod
2. Create buckets for your use cases
3. Create access keys
4. Configure your applications to use MinIO endpoint
Resources: 1 CPU, 1 GB RAM. Storage scales with your disk.
Configuration
Create a Bucket
mc mb myminio/my-bucket
Set Bucket Policy
mc anonymous set download myminio/my-bucket/public
Upload Files
mc cp file.pdf myminio/my-bucket/
S3 SDK Compatibility
Change the endpoint URL in your S3 SDK from Amazon to your MinIO server:
const s3 = new S3Client({
endpoint: "https://minio.example.com",
region: "us-east-1",
credentials: { accessKeyId: "...", secretAccessKey: "..." }
});
All existing S3 code works unchanged.
Cost Comparison
1 TB stored, 100 GB transfer/month:
Savings grow linearly with data volume.