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.
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.yml2.2 Start the Service
Run: docker-compose up -d Check container status with:
docker compose ps2.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.
Signed-in readers can open the original source through BestHub's protected redirect.
This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactand we will review it promptly.
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.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.
