Skip to content

Deployment Overview of Minio on Server

Prerequisites and Basic Requirements

To ensure a successful deployment, the following requirements must be met:

  • Operating System: A Linux-based system with Docker installed.

  • Privileges: Root or sudo access is required for installation and service management.

  • Ports: The following ports must be open in the firewall to allow traffic:

  • 9000: MinIO API service.

  • 9001: MinIO Console (Web UI).

  • 443: HTTPS access via Nginx proxy.

FQDN of the final panel on the hostkey.in domain

The application is accessible through a specific subdomain generated based on the server ID.

Parameter Value
Prefix minio
Domain hostkey.in
Full template minio{Server_ID}.hostkey.in

File and Directory Structure

The deployment utilizes the following directory structure for configuration and data persistence:

  • /mnt/data: Main storage location for MinIO data.

  • /root/nginx: Contains the Nginx Docker Compose configuration files.

  • /data/nginx/user_conf.d: Stores Nginx virtual host configuration files.

  • /data/nginx/nginx-certbot.env: Environment file for SSL certificate management.

Application Installation Process

The installation is performed using a combination of package management and Docker:

  1. System Dependencies: The system installs the Docker engine and Python packages (docker and requests==2.31.0) to facilitate container orchestration.

  2. Container Deployment: The MinIO service is deployed as a Docker container using the official image from quay.io/minio/minio.

  3. Proxy Setup: An Nginx proxy with Certbot integration is configured in /root/nginx to handle SSL termination and routing.

Access Rights and Security

  • Firewall: Only necessary ports (9000, 9001, and 443) should be exposed to the public network.

  • SSL/TLS: Secure access is provided via Nginx using Let's Encrypt certificates managed through Certbot.

  • Container Isolation: The MinIO container runs with a restart policy of unless-stopped to ensure high availability.

Docker Containers and Their Deployment

The deployment consists of two primary containers:

MinIO Container

  • Image: quay.io/minio/minio

  • Ports:

  • 9000:9000 (API)

  • 9001:9001 (Console)

  • Volumes: /mnt/data:/data

  • Command: server /data --console-address ':9001'

  • Restart Policy: unless-stopped

Nginx Container

  • Image: jonasal/nginx-certbot:latest

  • Network Mode: host

  • Volumes:

  • nginx_secrets:/etc/letsencrypt (External volume for SSL certificates)

  • /data/nginx/user_conf.d:/etc/nginx/user_conf.d (Configuration directory)

  • Environment Variables: [email protected]

  • Restart Policy: unless-stopped

Application Update Instructions

To update the MinIO application, perform the following steps:

  1. Navigate to the deployment directory.

  2. Pull the latest images and restart the services:

    docker compose pull && docker compose up -d
    

Location of Configuration Files and Data

  • MinIO Data Storage: /mnt/data

  • Nginx Configurations: /data/nginx/user_conf.d/

  • SSL Certificates: Managed via the nginx_secrets Docker volume.

Available Ports for Connection

Service Port Protocol
MinIO API 9000 TCP
MinIO Console (Internal) 9001 TCP
HTTPS (External Proxy) 443 TCP

Starting and Stopping the Application

The application is managed via Docker. Use the following commands:

  • Start/Restart Services:

    docker compose up -d
    

  • Stop Services:

    docker compose down
    

question_mark
Is there anything I can help you with?
question_mark
AI Assistant ×