Cloud Native 9 min read

Why MinIO Community Dropped Its Web UI and How to Deploy RustFS as a Replacement

The article explains that MinIO Community removed its web management console in February 2024, why the change was made, and provides a step‑by‑step guide to set up the Rust‑based RustFS object storage as a functional alternative, including deployment, HTTPS configuration, and a feature comparison.

Java Architect Handbook
Java Architect Handbook
Java Architect Handbook
Why MinIO Community Dropped Its Web UI and How to Deploy RustFS as a Replacement

1. MinIO Community Sacrifices Its Open‑Source Spirit for Commercial Gain

After deploying MinIO, the author discovered that the web console now shows only pure object storage. The change was caused by a PR merged on February 26 that deleted 114,736 lines of code under the justification of “simplifying the console.” The official statement says that users needing a graphical interface should migrate to the commercial product AiStor, while community users must use the mc CLI. This move was widely criticized by the community.

2. Looking for an Alternative – Trying RustFS

RustFS is a high‑performance distributed object storage system written in Rust, positioned as a replacement for MinIO. The author chose it because Rust offers safety and performance, and RustFS is released under the permissive Apache 2.0 license.

Because RustFS is a newer project, the official Docker deployment command needed adjustments. The author followed an issue‑based solution and recorded the successful deployment steps.

2.1 Prepare the Directory Structure

/mnt/rustfs/
├── data/
└── docker-compose.yml

2.2 Start the Service

Run: docker-compose up -d Check container status with:

docker compose ps

2.3 Open Security Group Ports

If the service is unreachable, add inbound rules for ports 9000 (API) and 9001 (Console).

2.4 Test Access

Open the console at http://<em>host</em>:9001. The default credentials are rustfsadmin/rustfsadmin.

2.5 Configure HTTPS via Nginx

To enforce HTTPS, modify docker-compose.yml to bind the API and console ports to 127.0.0.1 only, then create DNS records such as rustfs.yourdomain.cn pointing to yourdomain.cn:9001. The following Nginx configuration proxies HTTPS traffic to the internal ports and handles WebSocket upgrades.

upstream rustfs_console {
    server localhost:9001;
}
upstream rustfs_api {
    server localhost:9000;
}
# RustFS Console (Web UI)
server {
    listen 443 ssl;
    server_name rustfs.yourdomain.cn;
    ssl_certificate /etc/letsencrypt/live/yourdomain.cn-0001/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/yourdomain.cn-0001/privkey.pem;
    include /etc/letsencrypt/options-ssl-nginx.conf;
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
    location / {
        proxy_pass http://rustfs_console;
        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;
        proxy_set_header X-Forwarded-Host $host;
        proxy_set_header X-Forwarded-Port $server_port;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }
}
# RustFS API
server {
    listen 443 ssl;
    server_name rustfsapi.yourdomain.cn;
    ssl_certificate /etc/letsencrypt/live/yourdomain.cn-0001/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/yourdomain.cn-0001/privkey.pem;
    include /etc/letsencrypt/options-ssl-nginx.conf;
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
    location / {
        proxy_pass http://rustfs_api;
        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;
    }
}
# HTTP to HTTPS redirect
server {
    listen 80;
    server_name rustfs.yourdomain.cn rustfsapi.yourdomain.cn;
    return 301 https://$server_name$request_uri;
}

After configuring Nginx, the HTTPS endpoint works as expected.

3. Summary and Comparison

Since February 2024, MinIO Community has completely removed its web management UI, signaling a shift toward a commercial, closed‑source model that many users view as a “backstab.” While MinIO claims the CLI ( mc) is more professional, a graphical interface remains essential for small businesses, individual developers, and beginners.

RustFS, a domestically developed, open‑source object storage written in Rust, shows promise as a MinIO alternative due to its permissive license, built‑in web console, and Rust‑level safety and performance. However, it is still early‑stage and requires additional validation before production use.

Open‑source license : MinIO – AGPL v3 (restrictive); RustFS – Apache 2.0 (permissive)

Management UI : MinIO – removed (paid only); RustFS – includes web console

CLI support : MinIO – mc; RustFS – REST API + future tools

Deployment complexity : MinIO – simple; RustFS – relatively simple, supports Docker Compose

Performance & security : MinIO – high but closed; RustFS – Rust architecture, inherently safe and efficient

Chinese community support : MinIO – limited, commercial‑oriented; RustFS – community still growing

Note: RustFS is in an early development stage; features are evolving, and production deployments should be thoroughly tested.

Original Source

Signed-in readers can open the original source through BestHub's protected redirect.

Sign in to view source
Republication Notice

This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactadmin@besthub.devand we will review it promptly.

Open SourceMinIOobject storageDocker ComposeWeb UIRustFS
Java Architect Handbook
Written by

Java Architect Handbook

Focused on Java interview questions and practical article sharing, covering algorithms, databases, Spring Boot, microservices, high concurrency, JVM, Docker containers, and ELK-related knowledge. Looking forward to progressing together with you.

0 followers
Reader feedback

How this landed with the community

Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.