How to Install MinIO on Linux: Your Private S3-Compatible Object Storage
Spoiler alert: You don’t have to sell your soul to AWS to get an S3 bucket. Espcially if you want to practice ETCD backups to S3 in your homelab
MinIO is a lightweight, blazing-fast object storage server that speaks S3 API fluently. Perfect for backing up your cat photos or running serious enterprise workloads. Let’s get it installed on Linux.
🚀 Prerequisites#
- A Linux server (Ubuntu, CentOS, Rocky, Debian…pick your flavor)
curl
installedsystemd
(unless you like living dangerously)
🛠️ Step 1: Create a MinIO User#
Let’s avoid running everything as root (because root is overworked and grumpy).
sudo useradd -r minio-user -s /sbin/nologin
Create Directories#
sudo mkdir -p /usr/local/bin
sudo mkdir -p /etc/minio
sudo mkdir -p /var/minio
sudo chown minio-user:minio-user /var/minio
Download the MinIO Binary#
Using the offical Release:#
curl -O https://dl.min.io/server/minio/release/linux-amd64/minio
Make it executable:#
chmod +x minio
sudo mv minio /usr/local/bin/
Create systemd service#
sudo nano /etc/systemd/system/minio.service
Paste the following in:#
[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 /var/minio --console-address ":9001"
Restart=always
LimitNOFILE=65536
Environment="MINIO_ROOT_USER=minioadmin"
Environment="MINIO_ROOT_PASSWORD=supersecretpassword"
[Install]
WantedBy=multi-user.target
Tip: Change the credentials to something better than supersecretpassword, unless you want your neighbors hosting their pirated movies on your box.#
Reload Systemd and Start MinIO#
sudo systemctl daemon-reload
sudo systemctl enable minio
sudo systemctl start minio
Check Status#
sudo systemctl status minio
Open with your fav browser#
http://<your-server-ip>:9001
Of course this is not as fun as having it secured with SSL#
Lets create a cert directory#
sudo mkdir -p /etc/minio/certs
Make sure your certs end up in the below directory and named exactly as below, or you’ll be in for a fun evening.#
/etc/minio/certs/public.crt
/etc/minio/certs/private.key
Restart MinIO#
sudo systemctl restart minio
Lets test it out#
http://<your-server-ip>:9001
🎉 Conclusion#
That’s it! You’ve got your own S3-compatible object storage server humming along on Linux. Use it for:#
-
Backups
-
Docker Registry storage
-
Kubernetes persistent volumes
-
Archiving your questionable memes
Read other posts