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:
-
System Dependencies: The system installs the Docker engine and Python packages (
dockerandrequests==2.31.0) to facilitate container orchestration. -
Container Deployment: The MinIO service is deployed as a Docker container using the official image from
quay.io/minio/minio. -
Proxy Setup: An Nginx proxy with Certbot integration is configured in
/root/nginxto handle SSL termination and routing.
Access Rights and Security¶
-
Firewall: Only necessary ports (
9000,9001, and443) 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-stoppedto 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:
-
Navigate to the deployment directory.
-
Pull the latest images and restart the services:
Location of Configuration Files and Data¶
-
MinIO Data Storage:
/mnt/data -
Nginx Configurations:
/data/nginx/user_conf.d/ -
SSL Certificates: Managed via the
nginx_secretsDocker 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:
-
Stop Services: