Modern cloud applications require reliable and efficient object storage. MinIO is a leading alternative to Amazon S3 that offers lightning-fast storage, which can be used on-premises and in the cloud. MinIO is a simple solution for enterprise-grade performance, whether you are hosting backups, managing containerized workloads, or serving media files.
This tutorial will show you how to configure and install MinIO on your Linux VPS. This guide will help you to set up an S3-compatible solution quickly and easily.
What Is MinIO?
MinIO is an open-source, high-performance object storage server that's fully compatible with the Amazon S3 API. It is a high-performance, open-source object storage server that can store unstructured data like photos, videos, and logs.
Key Features of MinIO:
- S3 API compatibility: Easily integrates AWS SDKs, CLI tools, and SDKs.
- High performance: Optimized for large-scale and cloud-native workloads.
- Scalable: Supports clustering, replication, and distributed mode.
- Secure: Supports TLS, encryption, and identity-based access.
- Lightweight: Simple binary deployment that requires minimal dependencies.
How to Install MinIO on a Linux VPS (S3-Compatible Storage)
MinIO is an S3-compatible object store that can be installed on Linux VPSs. It's fast, reliable, and secure. MinIO is a flexible and scalable cloud service that can be used to host backups, manage static files, or manage containers.
Prerequisites
- Install MinIO only after you have installed the following:
- Linux VPS (Ubuntu, CentOS o Debian).
- The root or sudo privilege
- Firewall access to port 9000 (MinIO API), and 9001 (Web console)
- Minimum 1 GB RAM, 2 GB of disk space
Step 1: Create a Dedicated MinIO User
This creates a user system called minio-user, without login rights. It improves security by isolating MinIO from root access.
It is best to use a user other than root for MinIO.

Step 2: Download and Install MinIO
Install the MinIO Server binary on your computer, allowing it to be accessed by all users.
Download the latest stable MinIO binary by using wget.

Make it executable:

Move it to a global executable path:

Step 3: Create Storage and Configuration Directories
Set up directories to store MinIO configuration and data:

Set the MinIO user as owner:

Separated from the system directories, these directories contain MinIO's object files and configuration files.
Step 4: Set Environment Variables for Access
You've now configured MinIO to use admin credentials, and you've also designated ports for the API and web interface.
Create a configuration file to define MinIO's access credentials:
Add the following lines:

Save and close the file.
Step 5: Create a Systemd Service for MinIO
It will start MinIO automatically at boot-up, and you can manage it using systemd commands.
Create a service file to manage MinIO as a system service:
Copy the configuration below:

Save, exit, and then reload the systemd daemon.

Check the service status:

Step 6: Configure Firewall Access
This step allows external access to the MinIO dashboard, API endpoints, and secure storage. Allow MinIO API ports and web console through the firewall

Step 7: Access MinIO Web Console
The web console is a simple graphical interface that allows you to manage your object-storage system without having to use command-line tools.
Navigate to the following URL in your browser:

Log in with the credentials that you have set in /etc/default/minio
- Username: admin
- Password: Password
Now you should see the MinIO Web console, where you can upload files, create buckets, and manage permissions.

Step 8: Test S3 Compatibility with AWS CLI
Install the AWS command line to test MinIO S3 compatibility. This confirms that MinIO can be integrated with AWS tools and SDKs.

Configure AWS CLI using your MinIO credentials.

Enter:
AWS Access Key ID: admin
AWS Secret Access Key: Password
Default region name: us-east-1
Default output format: json
Test the connection:

Conclusion
To install MinIO on a Linux VPS, start by updating your system using sudo apt update && sudo apt upgrade -y, then download the MinIO binary with wget https://dl.min.io/server/minio/release/linux-amd64/minio and move it to /usr/local/bin/ after making it executable. Create storage directories using sudo mkdir -p /usr/local/share/minio /etc/minio and assign ownership to a dedicated MinIO user. Set environment variables in the /etc/default/minio file to define storage paths, access credentials, and ports.
Create a systemd service file at /etc/systemd/system/minio.service to manage MinIO, then enable and start it using sudo systemctl enable --now minio. Allow ports 9000 & 9001 to pass through your firewall, and you can access the web-based console at http://server-address:9001 with the credentials that you have set. Finally, you can test S3 compatibility using the AWS CLI. This will confirm that your MinIO instance runs as a fully-functional, S3-compatible object storage solution on a Linux VPS.
Do you need Storage VPS for your project? Consider our hosting solution tailored to meet your expectations.