Skip to content

Instantly share code, notes, and snippets.

@amanjuman
Last active August 15, 2024 03:30
Show Gist options
  • Save amanjuman/a25a8da56e0b61e1be8211abec99641e to your computer and use it in GitHub Desktop.
Save amanjuman/a25a8da56e0b61e1be8211abec99641e to your computer and use it in GitHub Desktop.
Minio API and Console setup with Nginx Reverse Proxy for Ubuntu

Install Nginx and Certbot

sudo apt install nginx python3-certbot-nginx -y

Download Minio for x64

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

Add Executable Permission to Minio Dir

sudo chmod +x ./minio

Add Minio User and Permission

sudo useradd -r minio-user -s /sbin/nologin

mv ./minio /usr/local/bin

sudo chown minio-user:minio-user /usr/local/bin/minio

sudo mkdir -p /usr/local/share/minio

sudo chown minio-user:minio-user /usr/local/share/minio

sudo mkdir -p /etc/minio

sudo chown minio-user:minio-user /etc/minio

Add Minio Env

sudo nano /etc/default/minio

MINIO_ACCESS_KEY="minioadmin"

MINIO_SECRET_KEY="miniopassword"

MINIO_VOLUMES="/usr/local/share/minio/"

MINIO_OPTS="-C /etc/minio --address 127.0.0.1:9000 --console-address 127.0.0.1:9090"

Download Minio Service File

sudo curl https://raw.githubusercontent.com/minio/minio-service/master/linux-systemd/minio.service -o /etc/systemd/system/minio.service

sudo systemctl daemon-reload

sudo systemctl enable minio

sudo systemctl start minio

sudo systemctl status minio

Issue Lets Encrypt SSL (Make sure you replace your domain)

sudo certbot --nginx --agree-tos --register-unsafely-without-email --no-redirect -d s3.domain.tld

sudo certbot --nginx --agree-tos --register-unsafely-without-email --no-redirect -d minio.domain.tld

Harden Nginx Default Config File

sudo wget -q https://gist.githubusercontent.com/amanjuman/8ad9e374cb970a352d08b950e3d3dbef/raw/ddf53d463c80dfe76f7594b3bb3a58df63cd2aad/default -O /etc/nginx/sites-available/default

Download Nginx Configuration for Minio and Minio Console (Make sure you replace your domain)

sudo curl https://gist.githubusercontent.com/amanjuman/800d81481634f296042457fa9fb21697/raw/f0045a39f5e8589d9ca2adf60463e0416c77e451/minio.conf -o /etc/nginx/conf.d/minio.conf

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment