> ## Content Index
> Fetch the complete content index at: https://blog.alphavps.com/llms.txt
> Use this file to discover other available public pages before exploring further.

# How to Install MinIO on a Linux VPS (S3-Compatible Storage)
- URL: https://blog.alphavps.com/how-to-install-minio-on-a-linux-vps-s3-compatible-storage/
- Published: 2026-01-26T09:14:35.000Z
- Updated: 2026-09-08T15:18:10.000Z
- Author: Karim Buzdar
- Tags: Tutorials, Self-Hosting, Backups & Storage

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.

```bash
sudo useradd -r minio-user -s /sbin/nologin
```

![](https://blog.alphavps.com/content/images/2025/11/data-src-image-90006a50-f2a9-4859-8f07-a878b8ced4e5.png)

### 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.

```bash
wget https://dl.min.io/server/minio/release/linux-amd64/minio
```

![](https://blog.alphavps.com/content/images/2025/11/data-src-image-6ca28159-cabc-468f-8e57-fb4d4e9f3862.png)

Make it executable:

```bash
chmod +x minio
```

![](https://blog.alphavps.com/content/images/2025/11/data-src-image-fe10e527-f916-4c09-a924-ff95a44d3480.png)

Move it to a global executable path:

```bash
sudo mv minio /usr/local/bin/
```

![](https://blog.alphavps.com/content/images/2025/11/data-src-image-7d69fb35-f93f-4989-bd4f-8c1704012097.png)

### Step 3: Create Storage and Configuration Directories

Set up directories to store MinIO configuration and data:

```bash
sudo mkdir -p /usr/local/share/minio
sudo mkdir -p /etc/minio
```

![](https://blog.alphavps.com/content/images/2025/11/data-src-image-f5b725b9-4988-4168-9903-7ee53c837f45.png)

Set the MinIO user as owner:

```bash
sudo chown -R minio-user:minio-user /usr/local/share/minio /etc/minio
```

![](https://blog.alphavps.com/content/images/2025/11/data-src-image-fdd4726c-c6cf-4bce-8cc0-e41d2b99305a.png)

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:

```bash
sudo nano /etc/default/minio
```

Add the following lines:

```bash
MINIO_ROOT_USER=admin
MINIO_ROOT_PASSWORD=Password
MINIO_VOLUMES="/usr/local/share/minio/"
MINIO_OPTS="--address :9000 --console-address :9001"
```

![](https://blog.alphavps.com/content/images/2025/11/data-src-image-3fee82eb-5088-4de6-899f-067c692dee17.png)

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:

```bash
sudo nano /etc/systemd/system/minio.service
```

Copy the configuration below:

```ini
[Unit]
Description=MinIO Object Storage
Documentation=https://docs.min.io
Wants=network-online.target
After=network-online.target
[Service]
User=minio-user
Group=minio-user
EnvironmentFile=/etc/default/minio
ExecStart=/usr/local/bin/minio server $MINIO_OPTS $MINIO_VOLUMES
Restart=always
LimitNOFILE=65536
[Install]
WantedBy=multi-user.target
```

![](https://blog.alphavps.com/content/images/2025/11/data-src-image-044c33c3-b8cd-48ed-9ad3-580e90f422ba.png)

Save, exit, and then reload the systemd daemon.

```bash
sudo systemctl daemon-reload
sudo systemctl enable minio
sudo systemctl start minio
```

![](https://blog.alphavps.com/content/images/2025/11/data-src-image-c86cbb04-65ff-4062-9351-c797e38316aa.png)

Check the service status:

```bash
sudo systemctl status minio
```

![](https://blog.alphavps.com/content/images/2025/11/data-src-image-6ae263d6-ea72-4a04-8460-37183f4d2d8d.png)

### 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

```bash
sudo ufw allow 9000
sudo ufw allow 9001
sudo ufw reload
```

![](https://blog.alphavps.com/content/images/2025/11/data-src-image-2d4da147-5eb6-4ff8-8164-a50856355769.png)

### 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:

```text
http://<your-server-ip>:9001
```

![](https://blog.alphavps.com/content/images/2025/11/data-src-image-bee11438-d87e-458e-bec1-b194a91fa31a.png)

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.

![](https://blog.alphavps.com/content/images/2025/11/data-src-image-c720678e-52db-4623-9e7e-b094ae67170b.png)

### 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.

```bash
sudo snap install aws-cli --classic
```

![](https://blog.alphavps.com/content/images/2025/11/data-src-image-7f8dc7cd-0eca-45c4-8f3e-f0a64af8da1f.png)

Configure AWS CLI using your MinIO credentials.

```bash
aws configure
```

![](https://blog.alphavps.com/content/images/2025/11/data-src-image-606b5587-6db5-4764-a22c-c753f7154a3a.png)

Enter:

AWS Access Key ID: admin

AWS Secret Access Key: Password

Default region name: us-east-1

Default output format: json

Test the connection:

```bash
aws --endpoint-url http://<your-server-ip>:9000 s3 ls
```

![](https://blog.alphavps.com/content/images/2025/11/data-src-image-d2b203cb-8504-41a2-ae32-93ca4c17e88c.png)

## 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**](https://alphavps.com/storage-vps.html?ref=blog.alphavps.com) for your project? Consider our hosting solution tailored to meet your expectations.