Cloud Native 7 min read

Why MinIO Community Dropped Its Web UI and How RustFS Can Fill the Gap

The article explains how MinIO's community edition removed its web console via a large PR, outlines the official push toward a commercial product, and provides a step‑by‑step guide to deploying the Rust‑based RustFS as an open‑source alternative with Docker Compose and Nginx HTTPS configuration, concluding with a feature comparison.

Java Companion
Java Companion
Java Companion
Why MinIO Community Dropped Its Web UI and How RustFS Can Fill the Gap

MinIO UI removal

On 26 February a pull request titled “simplify console” deleted 114,736 lines of code, removing the web management console from the MinIO community edition. The official response states that users requiring a graphical interface should migrate to the commercial product AiStor, while community users can manage objects with the mc CLI.

RustFS as a MinIO replacement

RustFS is a high‑performance distributed object storage system written in Rust and released under the Apache 2.0 license. The author selected it because Rust provides memory safety and low‑level performance, and the permissive license avoids the restrictions of MinIO’s AGPL v3.

Docker‑Compose deployment

Prepare the following directory layout:

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

Content of docker-compose.yml:

services:
  rustfs:
    image: rustfs/rustfs:latest
    container_name: rustfs
    ports:
      - "9000:9000"   # API port
      - "9001:9001"   # Console port
    volumes:
      - ./data:/data   # data storage
    environment:
      - RUSTFS_ROOT_USER=rustfsadmin
      - RUSTFS_ROOT_PASSWORD=rustfsadmin
      - RUSTFS_ADDRESS=:9000
      - RUSTFS_CONSOLE_ADDRESS=:9001
      - RUSTFS_CONSOLE_ENABLE=true
      - RUSTFS_LOG=warn
    restart: unless-stopped

Start the service: docker-compose up -d Check container status: docker compose ps Ensure the security group allows inbound traffic on ports 9000 and 9001. The web console is reachable at http://HOST:9001 with default credentials rustfsadmin/rustfsadmin.

HTTPS access via Nginx

To expose RustFS only through HTTPS, modify the compose file to bind the ports to the loopback interface:

ports:
  - "127.0.0.1:9000:9000"   # API port
  - "127.0.0.1:9001:9001"   # Console port

Create a DNS A record such as rustfs.yourdomain.cn that points to the server’s public IP (or to yourdomain.cn:9001 when using a reverse proxy). Add the following Nginx configuration (replace the certificate paths with the actual ones issued for yourdomain.cn).

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 → HTTPS redirect
server {
    listen 80;
    server_name rustfs.yourdomain.cn rustfsapi.yourdomain.cn;
    return 301 https://$server_name$request_uri;
}

After reloading Nginx, access the console via https://rustfs.yourdomain.cn and verify the HTTPS connection.

Feature comparison

License : MinIO Community – AGPL v3 (restrictive); RustFS – Apache 2.0 (permissive).

Management UI : MinIO – removed from community edition (commercial only); RustFS – built‑in web console.

CLI/API : MinIO – mc CLI; RustFS – REST API (future tooling planned).

Deployment complexity : Both support Docker Compose; RustFS adds optional HTTPS reverse‑proxy step.

Performance & safety : RustFS leverages Rust’s memory‑safe design for inherent safety and high performance.

Community ecosystem : MinIO – larger but increasingly commercial; RustFS – Chinese‑origin project, community still growing.

Current status

RustFS is an early‑stage project; features are being added continuously. Deployments in production should be validated with additional testing.

NginxMinIOObject StorageDocker ComposeApache 2.0RustFS
Java Companion
Written by

Java Companion

A highly professional Java public account

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.