How to self-host S3 storage with MinIO
Updated 7/20/2026
Many apps store files through an S3 API (from Amazon). MinIO gives you exactly that API, but on your own server, with control and a fixed cost.
1. Start MinIO with Docker
docker run -d -p 9000:9000 -p 9001:9001 --name minio \
-e "MINIO_ROOT_USER=admin" \
-e "MINIO_ROOT_PASSWORD=strong_password" \
-v minio_data:/data \
minio/minio server /data --console-address ":9001"
2. Access the console
The web interface is on port 9001, the S3 API on 9000. Create a "bucket" from the console.
3. Connect an application
The app uses standard S3 settings, just with your endpoint:
S3_ENDPOINT=https://s3.example.com
S3_KEY=admin
S3_SECRET=strong_password
S3_BUCKET=files
4. Securing it
Put MinIO behind a reverse proxy with HTTPS, see Nginx as a reverse proxy, and create users with limited rights instead of the admin account.
Backup
The minio_data volume holds all your files. Back it up regularly to a Backup Box, see backing up Docker volumes.
Put this guide into practice on your own VPS
EU cloud servers, billed hourly, ready in minutes, with one-click installs for dozens of apps.
See pricingRelated tutorials
How to encrypt files and backups
Protect sensitive data by encrypting files and backups before storing or transferring them.
Updated 7/20/2026Storage & filesHow to sync files automatically with Syncthing
Syncthing syncs files in real time between servers and devices, encrypted and without an external cloud.
Updated 7/20/2026Storage & filesHow to manage disk space and partitions
See how your disks are organized, mount a new disk and expand space when you need it.
Updated 7/20/2026