How I revived a 128MB RAM NAS by building my own control panel
It all started with boredom and old hardware
I had an old Netgear Stora MS2000 sitting around — a box with just 128 MB of RAM. I had installed Debian 7 and OpenMediaVault on it once. Then the disk died, I reinstalled Debian 9, but OMV turned out to be way too heavy for this hardware.
Editing Samba and NFS configs in the console every time was a pain. All I needed was two simple pages to create shares. I thought, "I'll just write a couple of PHP scripts and be done with it."
That's how Mini Bucket was born.
⚠️ Fair warning: I'm not a programmer. The code could be more beautiful, the architecture more elegant. But my goal was different — to build a useful tool for myself as a sysadmin on old hardware.
How "two pages" turned into 20+
The first two pages were quick. Shares were being created.
Then I thought: "It'd be nice to see some stats." So I added a dashboard with graphs.
Then: "Since SMB and NFS are already there, let's add rsync and FTP." And I did.
Day by day, my "two-page panel" grew into a project now called Mini Bucket — NAS Control Panel.
Where it actually runs:
- Raspberry Pi 1 (256 MB RAM) — yes, the very first one
- Netgear Stora MS2000 (128 MB RAM)
- Debian 9 on old laptops and VMs
What it can do (short version):
- Live dashboard with CPU, RAM, network, disk graphs
- Firewall (UFW) with CRUD and ready-made rules
- System monitor + diagnostics (ping, traceroute, speedtest)
- Web console (SSH through the browser)
- Cron scheduler with logs
- User management
- Disks, RAID (0,1,5,6,10), LVM, SMART
- Two-panel file manager
- SMB, NFS, FTP, Rsync
- System checker ("Check everything" button)
- API key rotation for multiple servers
Full list — 12 sections, 20+ pages.
The first beta: critical mistakes I made
In the first version (beta), I made some silly mistakes, and the Habr community rightly criticized me for them:
- Worker files, cron scripts, and temporary files were stored inside the web server's document root
- You could technically send a request to an executable file without authentication
- Everything was in a single SQLite database, so under load you'd get "database is locked"
I'm not denying it. I'm learning.
What was fixed in version 3.6.2:
- All critical files moved outside the website folder (
/var/www/minib/) - Apache configuration reviewed
- Temporary files and logs are no longer accessible from the outside
- Databases split across multiple SQLite files + request queuing
Takeaway: A beta is a beta. But now it's a stable release.
HTTPS and a self-signed certificate in 5 minutes
Many asked: "What about security?"
The whole process is documented, but here's the short version:
- Host Manager → set the FQDN (e.g.,
minib.local) - Security → SSL Manager → Create → Self-Signed Certificate
- System → Mini-B Settings → Enable HTTPS
- Apply & test config
Yes, your browser will complain about the self-signed certificate. But the traffic is encrypted. For a home NAS — that's enough.
Now with plugins (version 3.6.4)
I realized that in any "out of the box" system, you get 80% of what you need — and the remaining 20% is whatever you personally miss.
That's why from version 3.6.4, Mini Bucket becomes a plugin platform.
First plugins:
-
Log Manager — real-time log viewer, search, export, cleanup. No more SSH and remembering paths to
/var/log. - Plugin Template — a ready-made skeleton for your own plugins with built-in authentication, API, and SQLite support.
Anyone can write their own plugin (backup to S3, Telegram bot, disk temperature monitoring) and share it with the community.
What I learned (this is the most important section)
- Never store executables in the webroot — this is basic security, and I missed it.
- Split your databases — a single SQLite for everything is a pain under load.
- Listen to criticism — On Habr, people downvoted me for the donation requests and rookie mistakes. I fixed the mistakes. I kept the donations, but moved them out of the spotlight.
- You can't please everyone — my project is niche. It's for people with old hardware and a "let's just get it done" attitude.
- Open Source is not just code — it's the community. Forum, wiki, docs, plugins.
What's next?
- A marketplace for plugins inside the panel
- Support for more languages (currently mixed Russian/English)
- Integration with popular backup tools (S3, Borg, Restic)
Links
- GitHub: github.com/itprogresscorp/Mini-Bucket
- Demo & documentation: mini-bucket.ru
- Forum: see the website
If you'd like to support the project
The project lives on donations from people who've found it genuinely useful. If you revived your old NAS with Mini Bucket — I'd appreciate any support. Links are on GitHub and the website.
P.S. Installation on a clean Debian 9 — one command. Everything is described in the README on GitHub.
P.P.S. I'm not a programmer. But it works. And it's Open Source.
Top comments (0)