πŸš€ Panduan Lengkap Deploy MinIO di VPS dengan Docker (dengan Spesifikasi Server)

Ariska HidayatAriska Hidayat
3 min read

MinIO adalah sistem penyimpanan objek (object storage) berperforma tinggi yang kompatibel dengan API AWS S3.
Dengan MinIO, Anda bisa menyimpan file dalam jumlah besar dengan efisien dan aman, baik untuk aplikasi internal, backup, maupun publik.


2. Spesifikasi Server yang Diperlukan

Minimum untuk Testing atau Development

  • CPU: 1 vCPU

  • RAM: 1 GB

  • Storage: 20 GB (HDD/SSD)

  • Koneksi Internet: 10 Mbps (upload/download)

  • OS: Ubuntu 20.04+, Debian 11+, atau CentOS 8+

Cocok untuk uji coba, projek kecil, atau pengembangan lokal.


Rekomendasi untuk Production Skala Kecil

  • CPU: 2 vCPU (atau lebih)

  • RAM: 4 GB

  • Storage: Minimal 50 GB SSD/NVMe (lebih cepat aksesnya)

  • Koneksi Internet: 50 Mbps simetris (upload & download)

  • Backup: Sistem backup otomatis ke lokasi lain

  • OS: Ubuntu LTS (disarankan)

Cocok untuk aplikasi web dengan file hingga 500GB, atau pengguna aktif ratusan orang.


Rekomendasi untuk Production Skala Menengah

  • CPU: 4+ vCPU

  • RAM: 8 GB atau lebih

  • Storage: 200 GB SSD/NVMe (support disk expansion)

  • Koneksi Internet: 100 Mbps simetris atau lebih

  • Keamanan:

    • Firewall aktif

    • SSL/TLS untuk API dan Console

  • Redundansi:

    • Bisa cluster MinIO

    • Backup harian otomatis

Cocok untuk SaaS atau layanan publik yang banyak menangani upload/download.


Catatan Penting

  • RAM mempengaruhi kecepatan caching metadata dan performa upload/download.

  • SSD/NVMe jauh lebih cepat daripada HDD, sangat terasa saat mengelola banyak file kecil.

  • Jika file sangat besar (video, backup database), kecepatan internet dan IO disk menjadi faktor kritis.

  • Untuk cluster MinIO, minimal 4 node dan storage disk terpisah.


3. Instalasi Docker & Docker Compose

sudo apt update
sudo apt install docker.io docker-compose -y
sudo systemctl enable --now docker

4. Struktur Direktori

mkdir -p ~/minio/data
mkdir -p ~/minio/config
cd ~/minio

5. File docker-compose.yml

version: '3.8'

services:
  minio:
    image: minio/minio:latest
    container_name: minio
    ports:
      - "9000:9000"   # API S3
      - "9001:9001"   # Console Web
    environment:
      MINIO_ROOT_USER: admin
      MINIO_ROOT_PASSWORD: supersecretpassword
    volumes:
      - ./data:/data
      - ./config:/root/.minio
    command: server /data --console-address ":9001"
    restart: unless-stopped

6. Menjalankan MinIO

docker-compose up -d

Akses:

  • Console: http://<IP-VPS>:9001

  • API S3: http://<IP-VPS>:9000


7. Domain & SSL

  1. Arahkan DNS ke IP VPS:

     s3.domainanda.com β†’ <IP VPS>
     minio.domainanda.com β†’ <IP VPS>
    
  2. Gunakan Nginx Proxy Manager untuk SSL Let’s Encrypt.


8. Testing Upload

  1. Login ke console.

  2. Buat bucket.

  3. Upload file.

  4. Coba akses via API S3.


9. Best Practice

  • Gunakan password kuat dan simpan di password manager.

  • Backup data secara rutin (data/).

  • Gunakan firewall untuk membatasi akses.

  • Gunakan SSD/NVMe untuk performa optimal.

0
Subscribe to my newsletter

Read articles from Ariska Hidayat directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Ariska Hidayat
Ariska Hidayat

I am an enthusiastic researcher and developer with a passion for using technology to innovate in business and education.