MinIO·

Installing MinIO on Linux Server

This guide explains step by step how to install MinIO directly on your Linux server.
50$

Introduction

When you stand up the Logger software, the MinIO container that comes by default will also stand up. In this scenario, you can export your logs exported by the Logger software to your MinIO system in an external cloud environment or in your local environment. At this point, I will try to explain how to build a MinIO installation from scratch in my blog post.

✨ Prerequisites

  • Linux server (Ubuntu, Debian, CentOS, etc.)
  • A user with sudo privileges
  • Minimum 1GB RAM
  • Minimum 20GB disk space
  • Internet connection

😌 Installation Steps

  1. Download MinIO Binary
# Download MinIO server binary
wget https://dl.min.io/server/minio/release/linux-amd64/minio
# Make it executable
chmod +x minio
# Move binary to system path
sudo mv minio /usr/local/bin/
# Check version
minio --version
  1. Create MinIO User
# Create user for MinIO
sudo useradd -r minio-user -s /sbin/nologin
# Create MinIO directory
sudo mkdir /usr/local/share/minio
# Create data directory
sudo mkdir /usr/local/share/minio/data
# Set permissions
sudo chown minio-user:minio-user /usr/local/share/minio/data
  1. Create System Service
# Create service file
sudo nano /etc/systemd/system/minio.service

Add the following content:

ini
[Unit]
Description=MinIO
Documentation=https://min.io/docs
Wants=network-online.target
After=network-online.target

[Service]
User=minio-user
Group=minio-user
Environment="MINIO_ROOT_USER=admin"
Environment="MINIO_ROOT_PASSWORD=your-strong-password"
ExecStart=/usr/local/bin/minio server /usr/local/share/minio/data --console-address ":9001"
Restart=always
LimitNOFILE=65536

[Install]
WantedBy=multi-user.target
  1. Start the Service
# Reload systemd
sudo systemctl daemon-reload
# Start MinIO service
sudo systemctl start minio
# Enable auto-start on boot
sudo systemctl enable minio
# # Check service status
sudo systemctl status minio
  1. Firewall Settings

If using UFW

# API Port
sudo ufw allow 9000/tcp
# Console Port
sudo ufw allow 9001/tcp

If using FirewallD

# Check service status
sudo firewall-cmd --permanent --add-port=9000/tcp
# Check service status
sudo firewall-cmd --permanent --add-port=9001/tcp
# Check service status
sudo firewall-cmd --reload

Access

Default credentials:

  • Username: admin
  • Password: (the password you set in the service file)

Important Security Notes

  1. SSL/TLS Configuration
  • Always use SSL certificates in production
  • You can obtain certificates from Let's Encrypt or another CA
  1. Access Policies
  • Change default passwords
  • Configure IAM policies
  • Set up bucket policies
  1. Backup
  • Create regular backup plan
  • Consider data replication
You should remove them from your modules and dependencies if you've previously installed them.

Troubleshooting

  1. Service Start Issues
# Check logs
sudo journalctl -u minio.service
  1. Permission Issues
# Check directory permissions
ls -la /usr/local/share/minio/data
  1. Port Conflicts
# Check port usage
sudo netstat -tulpn | grep -E '9000|9001'

Performance Optimizations

  1. Disk Configuration
  • XFS filesystem is recommended
  • Use noatime mount option
  1. System Limits
# Add to /etc/security/limits.conf
minio-user soft nofile 65536
# Check port usage
minio-user hard nofile 65536
  1. Memory Management
  • Minimize swap usage
  • Allocate sufficient RAM

Maintenance Tasks

  1. Regular Updates
# Stop MinIO
sudo systemctl stop minio
# Download latest binary
wget https://dl.min.io/server/minio/release/linux-amd64/minio
chmod +x minio
sudo mv minio /usr/local/bin/
# Start MinIO
sudo systemctl start minio
  1. Backup Verification
  • Regularly test backup restoration
  • Verify data integrity
  • Document recovery procedures
  1. Monitoring
  • Set up monitoring for disk usage
  • Monitor system resources
  • Keep track of access logs

Conclusion

With this installation guide, you can set up MinIO directly on your Linux server without Docker. Remember to implement security settings and create a regular backup plan.

Post-Installation Recommendations

  1. Security
  • Implement role-based access control
  • Enable encryption at rest
  • Set up audit logging
  1. Performance
  • Monitor system metrics
  • Optimize based on usage patterns
  • Consider distributed setup for scaling
  1. Maintenance
  • Keep the system updated
  • Regular security audits
  • Monitor storage capacity

Here are some blogs you can read... but there are many others !

Docker On Windows

Display togglable accordion panels.

Docker On Ubuntu

Display images or content in a scrollable area.

Fortigate Syslog Configuration

Add a customizable command palette to your app.

Sophos Syslog Configuration

Display a non-modal dialog that floats around a trigger element.

Load Balance Using Docker Swarm

Display a range field

Enable Web URL Logging on Fortigate

Display data in a table.