A self hosted object storage service, in other words, MinIO π


Why Choose Self-Hosting Over AWS S3? π
While AWS S3 is certainly a very reliable and well known storage solution, it may not be the ideal choice for everyone, particularly for individuals with personal projects or smaller companies with budget constraints. Setting up your own S3-compatible storage environment using MinIO provides several compelling benefits such as:
Cost Control: Avoid unpredictable billing surprises from egress fees or per-request charges
Data Sovereignty: Maintain complete control over where your data is physically stored
Privacy: Keep sensitive data entirely within your infrastructure
Performance: Eliminate network latency when accessing files from the same network
No Vendor Lock-in: Freedom to migrate or change your setup without dependency on a single provider
But What is MinIO β
MinIO is a piece of software that lets you create your own file storage system similar to Dropbox or Google Drive, but running on your own computer or server, Therefore, Self Hosted.
Think of it as having your own personal "cloud storage" system that you control completely, without paying monthly fees to a big company like Amazon or Google.
Setting up MinIO using Docker π¦
STEP 0: Make sure you have Docker Deamon up and running, if not install it and get it ready, Here!
STEP 1: Create and Move inside an directory by running mkdir minio-test && cd minio-test
STEP 2: Create a .env file and add your MINIO_ACCESS_KEY, MINIO_SECRET_KEY, MINIO_DEFAULT_BUCKETS
STEP 3: Create a docker-compose.yml
file and add these contents.
minio:
image: bitnami/minio:latest
container_name: minio
ports:
- '9000:9000'
- '9001:9001'
networks:
- backend
volumes:
- 'minio_data:/bitnami/minio/data'
environment:
- MINIO_ROOT_USER=${MINIO_ACCESS_KEY}
- MINIO_ROOT_PASSWORD=${MINIO_SECRET_KEY}
- MINIO_DEFAULT_BUCKETS=${MINIO_DEFAULT_BUCKETS}
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]
interval: 30s
timeout: 20s
retries: 3
start_period: 30s
restart: unless-stopped
STEP4: Now, inside of the same directory, run docker compose up
and access, localhost:9000 on any browser.
STEP 5: Login using username and password and use MinIO!
Conclusion
Setting up your own S3-compatible storage with MinIO gives you the freedom to control your data without breaking the bank. This Docker-based solution offers the perfect balance of simplicity and power, allowing you to escape unpredictable cloud costs while maintaining professional-grade storage capabilities. Whether you're a developer, small business owner, or tech enthusiast, self-hosted object storage provides the flexibility, performance, and privacy that cloud providers can't match on the same budget. By following this guide, you've taken an important step toward true digital independence, one where you dictate the terms of your data storage rather than the other way around.
Thanks for reading β¨ I hope you found these insights valuable. If you learned something new today, don't forget to share this knowledge with others who might benefit from it.
Letβs connect on, Twitter , Linkedin Find all the other important links at, Linktree π
Until next time! Goodbye ππ»
Subscribe to my newsletter
Read articles from Anirudh Singh Bhadauria directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by

Anirudh Singh Bhadauria
Anirudh Singh Bhadauria
Hello world!, I am a software engineer, I integrate Data engineering and software engineering together to make beautiful software solutions that actually solves problem.