Dhanman MinIO Production + QA Setup Documentation¶
This document provides the complete setup process for running dual MinIO instances (Production + QA) on a single VPS server for Dhanman.
✅ Prerequisites¶
- Ubuntu 22.04 VPS (OVH or similar)
- Domain names:
files.dhanman.com,qa.files.dhanman.com - Public server IP:
51.79.156.217 - Ubuntu user with
sudorights
✅ Step 1: Prepare folders¶
sudo mkdir -p /opt/minio
sudo mkdir -p /opt/minio-data-prod
sudo mkdir -p /opt/minio-data-qa
sudo chown -R ubuntu:ubuntu /opt/minio-data-prod
sudo chown -R ubuntu:ubuntu /opt/minio-data-qa
✅ Step 2: Download MinIO¶
cd /opt/minio
wget https://dl.min.io/server/minio/release/linux-amd64/minio
chmod +x minio
✅ Step 3: Create MinIO systemd services¶
🎯 minio-prod.service¶
sudo nano /etc/systemd/system/minio-prod.service
Content:
[Unit]
Description=MinIO Production Instance
Wants=network-online.target
After=network-online.target
[Service]
ExecStart=/opt/minio/minio server /opt/minio-data-prod --console-address ":9001"
Environment="MINIO_ROOT_USER=prodadmin"
Environment="MINIO_ROOT_PASSWORD=YourProdStrongPassword"
User=ubuntu
Group=ubuntu
Restart=always
LimitNOFILE=65536
[Install]
WantedBy=multi-user.target
🎯 minio-qa.service¶
sudo nano /etc/systemd/system/minio-qa.service
Content:
[Unit]
Description=MinIO QA Instance
Wants=network-online.target
After=network-online.target
[Service]
ExecStart=/opt/minio/minio server /opt/minio-data-qa --console-address ":9003"
Environment="MINIO_ROOT_USER=qaadmin"
Environment="MINIO_ROOT_PASSWORD=YourQaStrongPassword"
User=ubuntu
Group=ubuntu
Restart=always
LimitNOFILE=65536
[Install]
WantedBy=multi-user.target
✅ Step 4: Enable and start services¶
sudo systemctl daemon-reload
sudo systemctl enable minio-prod
sudo systemctl enable minio-qa
sudo systemctl start minio-prod
sudo systemctl start minio-qa
Check:
sudo systemctl status minio-prod
sudo systemctl status minio-qa
✅ Step 5: Setup DNS¶
In DNS panel:
A record → files.dhanman.com → 51.79.156.217
A record → qa.files.dhanman.com → 51.79.156.217
✅ Step 6: Install NGINX + Certbot¶
sudo apt update
sudo apt install nginx certbot python3-certbot-nginx -y
✅ Step 7: NGINX reverse proxy configuration¶
🎯 Production¶
sudo nano /etc/nginx/sites-available/files.dhanman.com
server {
listen 80;
server_name files.dhanman.com;
location / {
proxy_pass http://127.0.0.1:9001;
proxy_set_header Host $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;
client_max_body_size 100M;
}
}
sudo ln -s /etc/nginx/sites-available/files.dhanman.com /etc/nginx/sites-enabled/
🎯 QA¶
sudo nano /etc/nginx/sites-available/qa.files.dhanman.com
server {
listen 80;
server_name qa.files.dhanman.com;
location / {
proxy_pass http://127.0.0.1:9003;
proxy_set_header Host $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;
client_max_body_size 100M;
}
}
sudo ln -s /etc/nginx/sites-available/qa.files.dhanman.com /etc/nginx/sites-enabled/
Reload NGINX:
sudo nginx -t
sudo systemctl reload nginx
✅ Step 8: SSL Certificates¶
sudo certbot --nginx -d files.dhanman.com -d qa.files.dhanman.com
Check auto-renewal:
sudo systemctl status certbot.timer
✅ Final Result¶
| Subdomain | Port | Instance |
|---|---|---|
| files.dhanman.com | 9001 | Production MinIO |
| qa.files.dhanman.com | 9003 | QA MinIO |
This completes the full MinIO dual-instance infrastructure for Dhanman.