Amazon AWS’deki popüler servislerden birisi olan S3, projelerimizin statik dosya barındırmasına büyük yardımı dokunan bir servistir. AWS S3’te dosyalara yapılan sorgu sayısına ve kapladığı alana göre fiyatlandırma uygulanmaktadır. Neredeyse her dil için kütüphanesi bulunduğundan, her yere kolaylıkla entegre edilebiliyor. Minio ise, S3’ün protokolünü kullanarak tıpkı S3 gibi davranan bir yazılımdır. Bu yüzden entegre etmek için herhangi bir S3 kütüphanesini kullanabiliyorsunuz. Böylece AWS’ye gerek kalmadan S3 protokolü ile geliştirme yapabilirsiniz veya dosya barındırma sistemini kendi altyapınız üzerinden canlı ortamda kullanabilirsiniz.

Minio Go diliyle yazılmıştır ve çalıştırmak sadece Minio’nun derlenmiş binary dosyasına ihtiyaç duyarsınız. Önce environment değişkenleri ile bir kullanıcı adı ve şifre tanımlayacağız sonra Minio’yu çalıştırabileceğimiz farklı yöntemlere bakacağız.

Birinci yöntemde, bu sayfadan Minio’nun platformlara göre derlenmiş binary dosyalasını indirebilirsiniz. Mesela Linux 64-bit için linux-amd64/ klasörü içerisindeki minio dosyasını platformunuza indirip dosyaya çalıştırma izni veriyoruz.

wget https://dl.min.io/server/minio/release/linux-amd64/minio
sudo chmod +x minio

İndirdiğiniz dosyayı uygun bir yere taşıdıktan sonra artık tek bir komutla başlatabiliriz.

export MINIO_ROOT_USER=GCRNJICPDEZDNESBERKB
export MINIO_ROOT_PASSWORD=Oc2ybWuKa6AduzWtHeIkXpXwJWse9HyubcvYldJf
minio server --address :9000 /var/minio

Bu komutta Minio TCP üzerinden 9000 portundan başlatılıp, dosyalar da /var/minio yoluna kaydedilir. Minio’yu başlatmadan önce /var/minio yolunu oluşturduğunuzdan ve gerekli yazma yetkilerinin verildiğinden emin olun.

Minio’yu arkaplanda sürekli çalışan bir servis olarak başlatmak için bu yazıda systemd’nin kullanımı hakkındaki bilgilere ulaşabilirsiniz.

Linux için kullanabileceğiniz örnek bir systemd config dosyası:

# /etc/systemd/system/minio.service
[Unit]
Description=Minio
After=network.target

[Service]
Type=simple
Restart=always
Environment="MINIO_ROOT_USER=GCRNJICPDEZDNESBERKB"
Environment="MINIO_ROOT_PASSWORD=Oc2ybWuKa6AduzWtHeIkXpXwJWse9HyubcvYldJf"
ExecStart=/opt/minio server --address :9000 /var/minio

[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable minio.service
sudo service minio start

İkinci yöntemde, benim de tercih edeceğim Docker’ı kullanabilirsiniz.

sudo docker run -d \
  -p 9000:9000 \
  -p 9001:9001 \
  --network host \
  --name minio1 \
  -v /var/minio:/data \
  -e "MINIO_ROOT_USER=GCRNJICPDEZDNESBERKB" \
  -e "MINIO_ROOT_PASSWORD=Oc2ybWuKa6AduzWtHeIkXpXwJWse9HyubcvYldJf" \
  quay.io/minio/minio server /data --console-address ":9001"

Minio sunucusu başlatıldıktan sonra :9000 portuna sahip endpoint adresini, ister web tarayıcınızdan Minio’nun built-in web arayüzüne girmek için, isterseniz herhangi bir S3 destekleyen kühüphaneden veya istemciden bağlantı kurabilmek için kullanabilirsiniz.

Minio’nun built-in web arayüzüne siz MINIO_BROWSER environment değişkenini off yapmadıktan sonra :9000 portundan ulaşabilirsiniz. Burası yeni bucket’lar oluşturabilmenizi ve tüm dosyaları yönetebilmenize imkan sağlar.

Kaynak: https://docs.min.io/docs/