Why MinIO Dropped Its Console and How RustFS Can Fill the Gap
The article explains MinIO's removal of its open‑source console in May 2025, introduces the RustFS distributed object storage as an alternative, and provides step‑by‑step Docker deployment, log inspection, and basic mc commands to verify functionality.
As a long‑time MinIO operations engineer, I was forced to switch to command‑line management when the familiar Console suddenly became inaccessible; MinIO removed the Console feature from the open‑source version in May 2025 (the 20250422 release still had full console functionality). This means users of the open‑source MinIO must now either manage without a UI or look for alternatives.
RustFS Overview
RustFS is a distributed object storage system that is 100% S3‑compatible and designed for commercial use under the Apache v2.0 license.
S3 Compatibility: Fully compatible with the S3 protocol, suitable for big data, data lakes, backup software, image processing, and industrial applications.
Distributed: Scales across multiple nodes to meet various storage needs.
Commercial‑Friendly: Open‑source under Apache v2.0, allowing unrestricted commercial use.
Performance: Written in Rust, offering performance close to C.
Safety: Memory‑safe Rust code makes RustFS inherently secure.
Cross‑Platform: Works on Windows, macOS, and Linux.
Extensible: Supports custom plugins for diverse requirements.
Customizable: Open‑source nature enables deep customization.
Cloud‑Native: Deployable via Docker and other container runtimes for rapid cloud‑native installations.
Deploy RustFS Storage
1. Docker deployment
$ docker run -d \
--name rustfs_container \
-p 9000:9000 \
-v /mnt/rustfs/data:/data \
-e RUSTFS_ADDRESS=:9000 \
-e RUSTFS_ACCESS_KEY=jiaxzeng \
-e RUSTFS_SECRET_KEY=xxxx \
-e RUSTFS_CONSOLE_ENABLE=true \
-e RUSTFS_VOLUMES=/data \
rustfs/rustfs:latest
be9c6f2369c15008cbf562502c99cbc184c6cc08c9ae3b8981d8d6ff12b1c6d3Tip: No official Kubernetes deployment guide is available yet; a RustFS operator repository exists but is not yet usable.
2. View logs
$ docker logs rustfs_container -f
Initializing mount directories: /data /logs
Updating UID of rustfs to 0
usermod: UID '0' already exists
groupmod: GID '0' already exists
Updating GID of rustfs to 0
Fixing ownership for: /data → rustfs:rustfs
Applying ownership fix recursively (full depth)
Starting application: /usr/bin/rustfs
Log directory permissions set to 755: /logs
Flexi logger initialized with file logging to /logs/rustfs.log.log
Log rotation configured for: every day or when size exceeds 100MB, keeping 30 files
[2025-08-21 09:17:30.261186 +00:00] WARN ... Configuration not found, start to init
Log is written to /logs/rustfs.log_r2025-08-21_09-17-30.log
[2025-08-21 09:17:30.264143 +00:00] WARN ... Configuration initialization complete
[2025-08-21 09:17:30.280081 +00:00] WARN ... init bucket replication pool
...3. Access the console
Simple Usage Verification
1. Create a bucket with
mc # Set alias for RustFS
$ ./mc alias set rustfs http://172.139.20.170:9000 A5anvU9uZOpCLKB7PVw4 VoFnUfAuH40ypkim1BQNL3wPt56RXZrhjeMgJDlz
mc: Successfully migrated /home/ops/.mc/config.json from version `9` to version `10`.
Added `rustfs` successfully.
# Create bucket "jiaxzeng"
$ ./mc mb rustfs/jiaxzeng
Bucket created successfully `rustfs/jiaxzeng`.2. Upload a file
$ ./mc cp helm-v3.12.3-linux-amd64.tar.gz rustfs/jiaxzeng
...v3.12.3-linux-amd64.tar.gz: 15.29 MiB / 15.29 MiB ┃▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓┃ 45.79 MiB/s 0sTip: Many more features are available; feel free to explore and contribute.
Conclusion
RustFS is still young but worth trying, testing, and contributing. It may not replace MinIO immediately, yet it offers an open‑source alternative that isn’t tied to commercial strategies.
Linux Ops Smart Journey
The operations journey never stops—pursuing excellence endlessly.
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.
