Cara Install MinIO pada Linux Debian NAT VPS

Cara Install MINIO pada Linux Debian NAT VPS

NATVPS.id – MinIO adalah Sebuah Cloud Storage Server dengan performa tinggi yang fokus pada kompatibilitas integrasi dengan Amazon S3. MinIO sendiri sebenarnya dibangun untuk tujuan skala besar pada kategori AI / ML. Walaupun didesain untuk skala besar. Anda tetap bisa menjalankan MinIO dengan skala kecil menggunakan Skema Single-Node Single-Drive (SNSD) pada Instalasi MinIO. Pada artikel kali ini Anda akan belajar Cara Install MinIO pada Linux Debian NAT VPS.

Prerequiresites

Pada Kasus ini IPv4 NAT yang digunakan, Protokol yang digunakan, Spesifikasi Mapping Port Forwading yang digunakan, tujuan port yang dipilih adalah sebagai berikut:

      • IPv4 NAT: 104.156.46.123
      • IPv6 Dedicated: 2004:aaf:dafe:444:beef:feed:fe1d:1
      • Domain Forwading Protocol: HTTP
      • Domain Record #1: minio.rotan.id
      • Domain Record #2: console-minio.rotan.id
      • Port Target: 80 ( manfaatkan proxy cloudflare untuk https )

Menambahkan DNS Record subdomain minio pada Cloudflare DNS

Pada Minio ini terdapat 2 domain yang bakal dialokasikan. Pertama,domain untuk minio api. Terakhir, domain untuk minio panel. Pada kasus ini digunakan subdomain sebagai berikut:

  • console-minio.rotan.id – untuk panel minio.
  • minio.rotan.id – untuk api minio.

Anda dapat gunakan Cloudflare sebagai DNS Nameservernya, Namun sebelumnya pastikan anda sudah memindahkan DNS Managementnya pada Cloudlfare. Apabila sudah melakukan DNS Management pada Cloudflare. Anda dapat masukkan DNS A Record dengan server name console-minio dan minio. pastikan IP Address yang dimasukkan adalah IP Address NAT VPS

menambahkan subdomain minio pada debian nat vps
menambahkan subdomain minio pada debian nat vps
penambahan subdomain part 2
penambahan subdomain part 2

Melakukan Domain Forwading HTTP ke NAT VPS

Anda perlu melakukan Domain Forwading http ke NAT VPS agar dapat diakses. Untuk melakukannya cukup tambahkan domain forwading dengan protokol http dan domain pada domain minio dan console-minio.

Hasil Konfigurasi kurang lebih seperti berikut

Goals

setelah mengikuti Tutorial Ini, Anda diharapkan berhasil:

  • melakukan konfigurasi Domain Forwading NAT VPS
  • melakukan Instalasi Minio
  • melakukan Instalasi Nginx sebagai reverse proxy untuk minio
  • melakukan manual define dns record pada linux
  • memodifikasi systemd service minio untuk konfigurasi sesuai kebutuhan
Baca Juga:  Tunnel Route48 Untuk Akses IPv6 di NAT VPS HostData

Cara Install MinIO pada Linux Debian NAT VPS

Login Client Area NAT VPS

Untuk mengakses NAT VPS, harap login terlebih dahulu ke Client Area NAT VPS. Panduan login ke NAT VPS dapat ditemukan di artikel yang berjudul “Cara Membeli dan Login NAT VPS“. Setelah berhasil login, Anda akan otomatis diarahkan ke halaman Client Area NAT VPS dengan tampilan sebagai berikut:

dashboard summary nat vps
dashboard summary nat vps

Bagi pelanggan hostdata.id yang belum mengetahui kredensial yang digunakan di Client Area, harap periksa email yang Anda terima setelah menyelesaikan pemesanan NAT VPS. Informasi kredensial yang telah dikirimkan meliputi username, password, dan tautan login ke Client Area. format email kurang lebih seperti berikut:

contoh kredensial yang diberikan setelah proses order nat vps selesai
contoh kredensial yang diberikan setelah proses order nat vps selesai

Masuk Terminal NAT VPS melalui SSH

Anda dapat gunakan aplikasi SSH client seperti cmd, Termius, Terminal, Termux, Putty, Tabby, atau sejenisnya untuk mengakses terminal NAT VPS melalui SSH. Kemudian Untuk Kasus ini, kami gunakan SSH hasil NAT dengan PORT ssh yang telah kami lakukan domain forwarding dari port 22922 ke port 22:

ssh [email protected] -p 22922

Atau bila mau melakukan Koneksi ssh melalui IPv6. Bisa gunakan command seperti ini:

ssh root@2004:aaf:dafe:444:beef:feed:fe1d:1

Kemudian, Ada interaksi masukkan Password SSH root. BIla kredensial yang dimasukkan benar, Anda akan dapatkan pesan selamat datang pada shell terminal:

Update dependecy linux dan Install aplikasi Essensial

sebelum lakukan instalasi. pastikan untuk memperbarui definisi apt repository dan melakukan instalasi aplikasi yang essential pada linux

sudo apt update && sudo apt install git nano curl wget software-properties-common ca-certificates lsb-release apt-transport-https -y

Menambahkan DNS local record pada /etc/hosts

Pada Step ini diperlukan untuk mendefinisikan resolve domain ke IP Address tanpa menambahkan DNS Record pada Cloudlfare untuk internal minio. Gunakan Command berikut untuk masuk ke /etc/hosts:

sudo nano /etc/hosts

Tambahkan string minio-01.internal.rotan.id setelah string localhost menjadi berikut:

mendefinisikan dns record secara manual pada /etc/hosts
mendefinisikan dns record secara manual pada /etc/hosts

save kemudian coba ping menuju domain tersebut melalui ipv4 dan ipv6:

berhasil melakukan dns record
berhasil melakukan dns record

Melakukan Install NGINX

Untuk melakukan Instalasi NGINX, Anda dapat eksekusi command berikut untuk melakukannya:

sudo apt install nginx

setelah Instalasi selesai Anda dapat periksa status nginx command cek service nginx melalui systemd

systemctl status nginx.service

service nginx pada minio

Instalasi MinIO

Pada step ini Instalasi dilakukan melalui deb file. Anda bisa download melalui URL berikut:

wget https://dl.min.io/server/minio/release/linux-amd64/minio_20240212210227.0.0_amd64.deb

Selanjutnya anda mendapatkan file bernama minio_20240212210227.0.0_amd64.deb . Selanjutnya install deb file minio tersebut:

sudo dpkg -i minio_20240212210227.0.0_amd64.deb

Instalasi Selesai dilakukan, pada instalasi melalui deb file, secara otomatis minio membuat service system . periksa service dengan cara ketik command berikut:

systemctl status minio.service

<yoastmark class=

Konfigurasi MinIO

Pada step ini Anda perlu membuat user dan group baru yang ditujukan untuk minio. gunakan command berikut untuk melakukannya:

sudo groupadd -r minio-users

Selanjutnya tambahkan user baru dengan group yang digunakan adalah minio-users

sudo useradd -M -r -g minio-users minio-nat

Kemudian adalah membuat folder pada /mnt, gunanya untuk digunakan sebagai minio mount. Pada command ini membuat folder dengan nama minio-01

sudo mkdir /mnt/minio-01

Selanjutnya ubah folder minio-01 menjadi milik minio-nat dan group minio-users

sudo chown minio-nat:minio-users /mnt/minio-01

Setelah itu Anda sudah bisa memulai menyesuaikan konfigurasi enviroment untuk minio systemd service pada file /etc/default/minio

sudo nano /etc/default/minio

Lalu tambahkan beberapa Enviroment variable berikut, khusus untuk MINIO_ROOT_USER dan MINIO_ROOT_PASSWORD dapat anda sesuaikan dengan keinginan:

MINIO_OPTS="--console-address :9001"
MINIO_VOLUMES="/mnt/minio-01"
MINIO_ROOT_USER=admin 
MINIO_ROOT_PASSWORD=natvpsid

Penyebab menaruh env value pada /etc/default/minio dikarenakan secara default systemd service minio melakukan import Enviroment file pada file tersebut. Anda dapat periksa pada file /lib/systemd/system/minio.service

systemd service minio pada debian nat vps menunjukkan default file enviroment
systemd service minio pada debian nat vps menunjukkan default file enviroment

Setelah Konfigurasi selesai Anda dapat lakukan start service dengan command berikut:

systemctl start minio.service

cek status service minio dengan command cek status service melalui systemd

systemctl status minio.service

Melakukan Konfigurasi MinIO untuk Nginx

Setelah selesai memastikan minio berjalan Anda dapat melanjutkan untuk konfigurasi Minio Behind Nginx Proxy, fungsinya untuk membuat minio lebih aman tanpa harus perlu ter ekspos pada port asli. langkah pertama anda perlu membuat file konfigurasi nginx-minio pada /etc/nginx/conf.d/ dengan file bernama minio-s3-console.conf .

touch /etc/nginx/conf.d/minio-s3-console.conf && nano /etc/nginx/conf.d/minio-s3-console.conf

edit minio-s3-console.conf dengan text editor seperi nano. lalu tambahkan string berikut

upstream minio_s3 {
   least_conn;
   server minio-01.internal.rotan.id:9000;
}

upstream minio_console {
   least_conn;
   server minio-console-01.internal.rotan.id:9001;
}

Fungsi disini adalah mendeklarasikan upstream server untuk s3 dan console yang akan digunakan oleh nginx pada site config (virtual host). Saatnya buat file untuk konfigurasi minio. pertama buat konfigurasi untuk domain console-minio.rotan.id . buat file dengan nama yang sama dengan domain pada folder /etc/nginx/sites-available/

touch /etc/nginx/sites-available/console-minio.rotan.id

edit file tersebut menggunakan nano dan masukkan config berikut

# console-minio.rotan.id
server {

   listen       80;
   listen  [::]:80;
   server_name  console-minio.rotan.id;

   # Allow special characters in headers
   ignore_invalid_headers off;

   # Allow any size file to be uploaded.
   # Set to a value such as 1000m; to restrict file size to a specific value
   client_max_body_size 0;

   # Disable buffering
   proxy_buffering off;
   proxy_request_buffering off;

   location / {
      proxy_set_header Host $http_host;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header X-Forwarded-Proto $scheme;
      proxy_set_header X-NginX-Proxy true;

      # This is necessary to pass the correct IP to be hashed
      real_ip_header X-Real-IP;
      proxy_connect_timeout 300;

      # To support websocket
      proxy_http_version 1.1;
      proxy_set_header Upgrade $http_upgrade;
      proxy_set_header Connection "upgrade";

      chunked_transfer_encoding off;

      proxy_pass http://minio_console/; # This uses the upstream directive definition to load balance
   }
}

Lakukan save. setelah itu buat file baru lagi untuk minio instance pada folder yang sama dengan console-minio.

touch /etc/nginx/sites-available/minio.rotan.id

edit file tersebut menggunakan nano dan tambahkan konfigurasi berikut:

server {
   listen       80;
   listen  [::]:80;
   server_name  minio.rotan.id;

   # Allow special characters in headers
   ignore_invalid_headers off;

   # Allow any size file to be uploaded.
   # Set to a value such as 1000m; to restrict file size to a specific value
   client_max_body_size 0;

   # Disable buffering
   proxy_buffering off;
   proxy_request_buffering off;

   location / {
      proxy_set_header Host 127.0.0.1:9000;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header X-Forwarded-Proto $scheme;

      proxy_connect_timeout 300;

      # Default is HTTP/1, keepalive is only enabled in HTTP/1.1
      proxy_http_version 1.1;
      proxy_set_header Connection "";
      chunked_transfer_encoding off;

      proxy_pass http://minio_s3; # This uses the upstream directive definition to load balance
   }
}

untuk server_name baik console maupun minio dapat anda sesuaikan dengan kebutuhan Anda. Lakukan save. Selanjutnya lakukan link file console dan minio pada folder /etc/nginx/sites-available/ ke /etc/nginx/sites-enabled/

ln -s /etc/nginx/sites-available/console-minio.rotan.id  /etc/nginx/sites-enabled/console-minio.rotan.id
ln -s /etc/nginx/sites-available/minio.rotan.id  /etc/nginx/sites-enabled/minio.rotan.id

Kemudian verifikasi apakah konfigurasi sudah benar pada nginx dengan menggunakan command berikut

nginx -t

response OK akan diberikan bila Konfigurasi sudah benar tanpa typo. Selanjutnya Restart Service nginx untuk agar konfigurasi ter apply dengan command berikut:

nginx -s reload

Kemudian Akses url link console-minio.rotan.id

Baca Juga:  Cara Onlinekan Home Web Server lewat Private Network Wireguard NAT VPS
berhasil install minio pada debian natvps
berhasil install minio pada debian natvps

selanjutnya login menggunakan username password yang sudah dikonfigurasi sebelumnya. Apabila kredensial cocok Anda diarahkan menuju Dashboard Minio.

berhasil login minio
berhasil login minio

Pada Titik Ini Anda sudah berhasil mengikut Artikel, Selanjutnya Anda dapat melakukan Integrasi MINIO dengan SDK ataupun Grafana untuk monitoring minio.

Penutup

Itu Adalah Langkah Langkah Cara Install MinIO pada Linux Debian NAT VPS. Jika ada pertanyaan atau kesulitan, silahkan bertanya di grup Telegram @IPv6Indonesia. Kami sangat mengapresiasi Feedback dari Pembaca.

You May Also Like

About the Author: Naufal