If you want to run a lightweight, self-hosted object storage server on a low-resource system — such as a single-core CPU and 1 GB RAM — MinIO is a perfect choice. This guide walks you through installing MinIO natively on Ubuntu, without using Docker.
🧩 What Is MinIO?
MinIO is an open-source, high-performance object storage system compatible with the Amazon S3 API. It’s often used for managing unstructured data such as photos, videos, logs, and backups. While many tutorials use Docker for deployment, running MinIO directly on Ubuntu is more efficient for small servers.
⚙️ System Requirements
| Resource | Minimum |
|---|---|
| CPU | 1 Core |
| Memory | 1 GB RAM |
| Disk Space | 1 GB+ free |
| OS | Ubuntu 20.04 or newer |
| Access | sudo privileges |
🪜 Step-by-Step Installation
1. Update and Prepare the System
Run the following commands to update the package index and install required tools:
sudo apt update && sudo apt upgrade -y
sudo apt install wget -y
2. Download and Install MinIO Binary
Download the latest MinIO server binary:
wget https://dl.min.io/server/minio/release/linux-amd64/minio
Make it executable and move it to the system path:
chmod +x minio
sudo mv minio /usr/local/bin/
3. Create Data and Config Directories
sudo mkdir -p /usr/local/share/minio
sudo mkdir -p /etc/minio
sudo useradd -r minio-user -s /sbin/nologin
sudo chown -R minio-user:minio-user /usr/local/share/minio /etc/minio
This ensures MinIO runs under a dedicated non-root user for better security.
4. Create a Systemd Service File
Create the MinIO service configuration:
sudo nano /etc/systemd/system/minio.service
Paste the following content:
[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
ExecStart=/usr/local/bin/minio server /usr/local/share/minio --console-address ":9001"
EnvironmentFile=-/etc/default/minio
Restart=always
LimitNOFILE=65536
[Install]
WantedBy=multi-user.target
5. Set MinIO Access Credentials
Create a default environment file to store your root credentials:
sudo nano /etc/default/minio
Add the following lines:
MINIO_ROOT_USER=minioadmin
MINIO_ROOT_PASSWORD=minioadmin123
You can change these to more secure credentials.
6. Enable and Start MinIO
Reload the systemd daemon and start the service:
sudo systemctl daemon-reload
sudo systemctl enable minio
sudo systemctl start minio
Check the service status:
sudo systemctl status minio
7. Access the MinIO Console
Open your web browser and navigate to:
http://<your-server-ip>:9001
Log in using:
-
Username:
minioadmin -
Password:
minioadmin123
You’ll now have access to the MinIO management console.
🧠 Tips for Low-Resource Systems
Since you’re running on only 1 GB RAM, consider these optimizations:
- Avoid uploading large files.
- Disable the web console if not needed:
ExecStart=/usr/local/bin/minio server /usr/local/share/minio --console-address ":0"
- Use a reverse proxy (like Nginx) to limit request load.
- Regularly clean up unused data.
🧩 Useful Commands
Stop MinIO:
sudo systemctl stop minio
Restart MinIO:
sudo systemctl restart minio
View logs:
sudo journalctl -u minio -f
✅ Conclusion
You now have a fully functional MinIO server running natively on Ubuntu — lightweight, efficient, and perfect for low-spec environments. With its S3 compatibility, you can integrate it easily into applications.
Reference: https://www.min.io/

Top comments (0)